XL 2016 excel VBA : recherche dans une colonne sans la sélectionner

  • Initiateur de la discussion Initiateur de la discussion Phillip
  • 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 !

Phillip

XLDnaute Occasionnel
Bonjour,

je cherche à faire une recherche dans la colonne A, et attribuer un nom à cette cellule trouvée.

Dans le code ci-dessous, je sélectionne colA (donc colonne A) et ça marche. Si je supprime la ligne colA.Select, cela ne marche PLUS ? Pourquoi ? Mystère ?

VB:
Sub cherche()
Dim colA As Range

Set colA = Columns("A:A")

colA.Select

Set Balise1 = colA.Find(What:="Balise1", After:=ActiveCell, LookIn:=xlFormulas2, LookAt:=xlPart, _
      SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
   If Not Balise1 Is Nothing Then ActiveWorkbook.Names.Add Name:="mystere", RefersTo:=Balise1


End Sub

Merci d'éclairer ma lanterne...Et si le code est à modifier, merci de m'indiquer où !

Cordialement

Phillip
 

Pièces jointes

Bon, alors, je ne sais pas si ma lanterne s'est éclairée tout de suite, mais cela MARCHE en fait sur mon fichier test "mystere". Cela ne marchait PAS sur mon fichier principal.

Sur mon fichier principal J'ai tenté d'inverser mes lignes set de Balise 2 et 1 (car j'en ai plusieurs), et cela MARCHE sans sélectionner la colonne A (colA.Select), et je n'ai même pas d'erreur sur la recherche balise 1 comme j'avais quand elle était en première position (incompatibilité de type). Le mystère s'épaissit cependant...
VB:
Set colA = Columns("A:A")
 
'colA.Select
 
    Set Balise2 = colA.Find(What:="Restaurants", After:=ActiveCell, LookIn:=xlFormulas2, LookAt:=xlPart, _
      SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
   If Not Balise2 Is Nothing Then ActiveWorkbook.Names.Add Name:="Restaurants", RefersTo:=Balise2
 
  
   Set Balise1 = colA.Find(What:="Mensuelles", After:=ActiveCell, LookIn:=xlFormulas2, LookAt:=xlPart, _
      SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
   If Not Balise1 Is Nothing Then ActiveWorkbook.Names.Add Name:="Mensuelles", RefersTo:=Balise1
 
Bon ! Cette fois-ci, je crois que j'ai trouvé. En fait find, tel que je l'ai écrit fait la recherche après la cellule active
VB:
After:=ActiveCell,

Et comme il n'y a PAS de cellule active, ça plante. en enlevant ce paramètre optionnel, cela marche !

Et j'espère que je ne reviendrais pas là-dessus !

merci aux lecteurs !

Cordialement
 
- 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

Discussions similaires

Réponses
3
Affichages
505
Réponses
2
Affichages
422
Réponses
12
Affichages
804
Retour