Problème dans utilisant la fonction Find

  • Initiateur de la discussion Initiateur de la discussion arnaud_garou
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

arnaud_garou

Guest
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à!
 
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:
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
 
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
 
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
 
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!!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
589
Réponses
28
Affichages
2 K
Réponses
12
Affichages
1 K
Retour