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

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

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

  • mystère.xlsm
    17.4 KB · Affichages: 2

Phillip

XLDnaute Occasionnel
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
 

Phillip

XLDnaute Occasionnel
Désolé de la confusion...Cela ne marche PAS sur mon fichier de tests...Ni sur mon fichier principal, que j'inverse OU PAS mes set balise1 et 2...erreur de syntaxe dans mon set colA ?

merci de votre compréhension...

Cordialement
 

Phillip

XLDnaute Occasionnel
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
 

Discussions similaires

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