Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Problème dans utilisant la fonction Find

arnaud_garou

XLDnaute Nouveau
Bonjour,

Petit soucis concernant une macro qui devrait rechercher dans deux colonnes que je spécifie, mais qui parfois "sort" de ces deux colonnes...

Voici le code :
Private Sub MacroSearch()

With ActiveSheet.Range("E1:G65536")

If .Find(What:=ChampRecherche, LookIn:=xlValues) Is Nothing Then MsgBox "Pas trouvé" Else .Find(What:=ChampRecherche, LookIn:=xlValues).Activate

End With

End Sub


Comment puis-je limiter ma recherche aux colonnes E et G, ce qui pour l'instant n'est pas le cas?

Merci beaucoup si quelqu'un peut me tirer de là!
 

Spitnolan08

XLDnaute Barbatruc
Re : Problème dans utilisant la fonction Find

Bonsoir,

Le code que tu fournis limite bien la recherche aux colonnes E à G.
Qu'est ce qui te fait dire le contraire ?

Quelles valeurs peut contenir ChampRecherche ?

Cordialement
 
Dernière édition:

Cousinhub

XLDnaute Barbatruc
Re : Problème dans utilisant la fonction Find

Bonsoir,
ta recherche s'effectue des colonnes E à G
pour limiter aux colonnes E et G, mets ce bout de code :

Code:
With ActiveSheet.Range("E:E,G:G")
 

Spitnolan08

XLDnaute Barbatruc
Re : Problème dans utilisant la fonction Find

Re,

bhbh a raison...
Il n'y a pas écrit "E à G" mais "E et G"...
Et dire que je suis en train de me farcir des dizaines de questions de logique pour mon fils où tous les mots comptent... Un "à" lu à la place d'un "Et" et la réponse est fausse...

Cordialement
 

Staple1600

XLDnaute Barbatruc
Re : Problème dans utilisant la fonction Find

Bonsoir à tous


Une question en passant
Ici on traite l'intégralité des colonnes
With ActiveSheet.Range("E:E,G:G")


Quelle la syntaxe correcte pour traiter les colonnes
mais de la 1àre cellule à dernière cellule non vide?

With ActiveSheet.Range("E1:E" & [E65536].End(xlUP).Row),"G1:G" & [G65536].End(xlUp).Row)

ne fonctionnant évidemment pas
 

jp14

XLDnaute Barbatruc
Re : Problème dans utilisant la fonction Find

Bonsoir le fil

Pour traiter les deux colonnes il faut définir la plage "E1: D x "

x étant la dernière cellule dans l'une ou l'autre des deux colonnes.
Si les colonnes ne sont pas identiques on peut utiliser
x = Sheets("Feuil1").Cells.SpecialCells(xlCellTypeLastCell).Row
ce qui donnera la dernière ligne de la feuille

JP
 

arnaud_garou

XLDnaute Nouveau
Re : Problème dans utilisant la fonction Find

Merci beaucoup pour les suggestions.
Malheureusement ma recherche "sort" toujours des colonnes E et G, même avec le bout de code modifié :
With ActiveSheet.Range("E:E,G:G")

Je m'explique : Lorsque par exemple le ChampRecherche (vient d'un userform) contient la valeur "capital", ma macro va pointer la première cellule contenant "capital" dans les colonnes E et G. Mais lorsque j'utilise le bouton Suivant de mon Userform, il peut arriver que des cases hors colonnes E et G soient sélectionnées, si elles contiennent le mot "capital".

Code de mon bouton Suivant :
Private Sub ButtonSuivant_Click()

With ActiveSheet.Range("E:E,G:G")
Cells.FindNext(After:=ActiveCell).Activate
End With

End Sub​

J'espère avoir mieux explicité le problème, et serais très reconnaissant de voir vos suggestions pour le régler.

Merci!!
 

Discussions similaires

Réponses
2
Affichages
209
Réponses
12
Affichages
650
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…