Soit une plage de cellules en colonne C nommée "base" dont la formule est la
"concatenération" (?) des cellules des colonnes A et B, comme suit :
=SI(A10="";"";SI(B10="";A10;CONCATENER(A10;" ";B10)))
(Exemple pour la ligne 10)
La ligne située sous cette plage (n'appartenant pas à la plage)
contient la même formule toujours en colonne C,
et toute cette ligne a le nom défini : "fin".
Je veux chercher au sein de la plage "base" une cellule dont le contenu est
EXACTEMENT celui de la celule en colonne C de la ligne "fin".
Si on ne trouve rien, alors la cellule A1 est sélectionnée.
La cellule de la colonne C de la ligne "fin" étant sélectionnée, j'ai donc
écrit cette macro :
---------------------------------
Sub recherche_negative()
Dim c As Range
Set c = Range("base").Find(ActiveCell.Value, LookIn:=xlValues)
If c Is Nothing Then
Range("A1").Select
End If
End Sub
--------------------------------
Tout fonctionne bien si la cellule A de la ligne "fin" ET la cellule B de la
ligne "fin" contiennent une valeur.
Si je mets en A de "fin" le texte "Coucou" et en B de "fin" le texte
"Bonjour" (concaténération en C => "Coucou Bonjour"), alors que dans la
plage "base" il existe le texte "Coucou Salut", la cellule A1 est
sélectionnée, témoignant que Excel n'a pas trouvé le texte EXACT.
Mais, toujours si dans la plage "base" il existe le texte "Coucou Salut",
mais non pas le texte "Coucou",
si en ligne "fin", j'ai "Coucou" en colonne A et rien en
colonne B (concaténération en C => "Coucou"), Excel fait comme si le texte
"Coucou" était déjà présent en colonne C de la plage, et donc ne sélectionne
pas A1.
Qu'est-ce qui ne va pas ?
Et comment rechercher la phrase exacte, pas simplement une qui ressemble ?
Soit une plage de cellules en colonne C nommée "base" dont la formule e st la "concatenération" (?) des cellules des colonnes A et B, comme suit : =SI(A10="";"";SI(B10="";A10;CONCATENER(A10;" ";B10))) (Exemple pour la ligne 10)
La ligne située sous cette plage (n'appartenant pas à la plage) contient la même formule toujours en colonne C, et toute cette ligne a le nom défini : "fin".
Je veux chercher au sein de la plage "base" une cellule dont le contenu e st EXACTEMENT celui de la celule en colonne C de la ligne "fin". Si on ne trouve rien, alors la cellule A1 est sélectionnée. La cellule de la colonne C de la ligne "fin" étant sélectionnée, j' ai donc écrit cette macro : --------------------------------- Sub recherche_negative() Dim c As Range Set c = Range("base").Find(ActiveCell.Value, LookIn:=xlValues) If c Is Nothing Then Range("A1").Select End If End Sub -------------------------------- Tout fonctionne bien si la cellule A de la ligne "fin" ET la cellule B de la ligne "fin" contiennent une valeur. Si je mets en A de "fin" le texte "Coucou" et en B de "fin" le texte "Bonjour" (concaténération en C => "Coucou Bonjour"), alors que dan s la plage "base" il existe le texte "Coucou Salut", la cellule A1 est sélectionnée, témoignant que Excel n'a pas trouvé le texte EXACT.
Mais, toujours si dans la plage "base" il existe le texte "Coucou Salut", mais non pas le texte "Coucou", si en ligne "fin", j'ai "Coucou" en colonne A et rien en colonne B (concaténération en C => "Coucou"), Excel fait comme si l e texte "Coucou" était déjà présent en colonne C de la plage, et donc ne sélectionne pas A1.
Qu'est-ce qui ne va pas ?
Et comment rechercher la phrase exacte, pas simplement une qui ressemble ?
Merci de votre aide.
-- Coriandre
Bonjour,
Il manque peut être : LookAt:= xlPart/XlWhole
Set c = Range("base").Find(ActiveCell.Value, LookIn:=xlValues,LookAt: =
XlWhole)
On 8 sep, 11:31, "Coriandre" <nospam-wat...@free.fr.invalid> wrote:
Bonjour à tous,
Soit une plage de cellules en colonne C nommée "base" dont la formule e st la
"concatenération" (?) des cellules des colonnes A et B, comme suit :
=SI(A10="";"";SI(B10="";A10;CONCATENER(A10;" ";B10)))
(Exemple pour la ligne 10)
La ligne située sous cette plage (n'appartenant pas à la plage)
contient la même formule toujours en colonne C,
et toute cette ligne a le nom défini : "fin".
Je veux chercher au sein de la plage "base" une cellule dont le contenu e st
EXACTEMENT celui de la celule en colonne C de la ligne "fin".
Si on ne trouve rien, alors la cellule A1 est sélectionnée.
La cellule de la colonne C de la ligne "fin" étant sélectionnée, j' ai donc
écrit cette macro :
---------------------------------
Sub recherche_negative()
Dim c As Range
Set c = Range("base").Find(ActiveCell.Value, LookIn:=xlValues)
If c Is Nothing Then
Range("A1").Select
End If
End Sub
--------------------------------
Tout fonctionne bien si la cellule A de la ligne "fin" ET la cellule B de la
ligne "fin" contiennent une valeur.
Si je mets en A de "fin" le texte "Coucou" et en B de "fin" le texte
"Bonjour" (concaténération en C => "Coucou Bonjour"), alors que dan s la
plage "base" il existe le texte "Coucou Salut", la cellule A1 est
sélectionnée, témoignant que Excel n'a pas trouvé le texte EXACT.
Mais, toujours si dans la plage "base" il existe le texte "Coucou Salut",
mais non pas le texte "Coucou",
si en ligne "fin", j'ai "Coucou" en colonne A et rien en
colonne B (concaténération en C => "Coucou"), Excel fait comme si l e texte
"Coucou" était déjà présent en colonne C de la plage, et donc ne sélectionne
pas A1.
Qu'est-ce qui ne va pas ?
Et comment rechercher la phrase exacte, pas simplement une qui ressemble ?
Soit une plage de cellules en colonne C nommée "base" dont la formule e st la "concatenération" (?) des cellules des colonnes A et B, comme suit : =SI(A10="";"";SI(B10="";A10;CONCATENER(A10;" ";B10))) (Exemple pour la ligne 10)
La ligne située sous cette plage (n'appartenant pas à la plage) contient la même formule toujours en colonne C, et toute cette ligne a le nom défini : "fin".
Je veux chercher au sein de la plage "base" une cellule dont le contenu e st EXACTEMENT celui de la celule en colonne C de la ligne "fin". Si on ne trouve rien, alors la cellule A1 est sélectionnée. La cellule de la colonne C de la ligne "fin" étant sélectionnée, j' ai donc écrit cette macro : --------------------------------- Sub recherche_negative() Dim c As Range Set c = Range("base").Find(ActiveCell.Value, LookIn:=xlValues) If c Is Nothing Then Range("A1").Select End If End Sub -------------------------------- Tout fonctionne bien si la cellule A de la ligne "fin" ET la cellule B de la ligne "fin" contiennent une valeur. Si je mets en A de "fin" le texte "Coucou" et en B de "fin" le texte "Bonjour" (concaténération en C => "Coucou Bonjour"), alors que dan s la plage "base" il existe le texte "Coucou Salut", la cellule A1 est sélectionnée, témoignant que Excel n'a pas trouvé le texte EXACT.
Mais, toujours si dans la plage "base" il existe le texte "Coucou Salut", mais non pas le texte "Coucou", si en ligne "fin", j'ai "Coucou" en colonne A et rien en colonne B (concaténération en C => "Coucou"), Excel fait comme si l e texte "Coucou" était déjà présent en colonne C de la plage, et donc ne sélectionne pas A1.
Qu'est-ce qui ne va pas ?
Et comment rechercher la phrase exacte, pas simplement une qui ressemble ?
Merci de votre aide.
-- Coriandre
Coriandre
Merci bien, cela fonctionne effectivement avec LookAt:=XlWhole.
Sur ta page (http://boisgontierjacques.free.fr/pages_site/cellules.htm#RechercherFind), il n'y a pas de précision : Si on met à LookAt:= xlPart, la recherche se fait-elle alors sur une partie du texte ? Coupe-t-elle les mots (si on cherche "Coucou" et que "Cou" existe, la recherche est-elle positive ? Peut-on faire une recherche sur des mots entiers en excluant les parties de mots ?
-- Coriandre
"JB" a écrit dans le message de news: Bonjour,
Il manque peut être : LookAt:= xlPart/XlWhole
Set c = Range("base").Find(ActiveCell.Value, LookIn:=xlValues,LookAt: XlWhole)
Merci bien, cela fonctionne effectivement avec LookAt:=XlWhole.
Sur ta page
(http://boisgontierjacques.free.fr/pages_site/cellules.htm#RechercherFind),
il n'y a pas de précision :
Si on met à LookAt:= xlPart, la recherche se fait-elle alors sur une partie
du texte ?
Coupe-t-elle les mots (si on cherche "Coucou" et que "Cou" existe, la
recherche est-elle positive ?
Peut-on faire une recherche sur des mots entiers en excluant les parties de
mots ?
--
Coriandre
"JB" <boisgontier@hotmail.com> a écrit dans le message de
news:1189246559.374387.184730@r34g2000hsd.googlegroups.com...
Bonjour,
Il manque peut être : LookAt:= xlPart/XlWhole
Set c = Range("base").Find(ActiveCell.Value, LookIn:=xlValues,LookAt: XlWhole)
Merci bien, cela fonctionne effectivement avec LookAt:=XlWhole.
Sur ta page (http://boisgontierjacques.free.fr/pages_site/cellules.htm#RechercherFind), il n'y a pas de précision : Si on met à LookAt:= xlPart, la recherche se fait-elle alors sur une partie du texte ? Coupe-t-elle les mots (si on cherche "Coucou" et que "Cou" existe, la recherche est-elle positive ? Peut-on faire une recherche sur des mots entiers en excluant les parties de mots ?
-- Coriandre
"JB" a écrit dans le message de news: Bonjour,
Il manque peut être : LookAt:= xlPart/XlWhole
Set c = Range("base").Find(ActiveCell.Value, LookIn:=xlValues,LookAt: XlWhole)