XL 2016 Nom de Colonne dans VBA

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

Eric4709

XLDnaute Nouveau
Bonjour la communauté,

Je reviens une nouvelle fois vers vous avec un nouveau conseil à vous demander.

Je construis un tableau plutôt complexe avec pas moins de 120 colonnes et plus de 6000 lignes. J'ai donc construit un certain nombre de recherches via VBA. Mon problème réside dans le "Field" de filtre automatique. En effet, ma macro s'exécute aujourd'hui en fonction du numéro de la colonne et non de son nom. Or à chaque évolution de mon fichier, je suis susceptible d'ajouter ou retirer des colonnes, ce qui me pose des soucis dans l'exécution des macro.

L'un de vous aurait-il une solution pour remplacer le numéro (ici le "52" de colonne par le nom de cette dernière (qui s'appelle dans mon tableau "Ordre de Transport" ? Vous trouverez ci-dessous le code que j'ai construit.

Sub Colis() ' Rechercher par n° de Colis
On Error Resume Next
Rows("2:2").Select
ActiveSheet.ShowAllData
Dim Filtre As String
Filtre = InputBox("Recherche :", "FILTRE", "*")
ActiveSheet.ListObjects("Suivi_des_Livraison_M53").Range.AutoFilter Field:=52, Criteria1:=Filtre, Operator:=xlAnd
Range("AY1").Select
End Sub

Merci d'avance pour vos retour. Je suis désolé de ne pouvoir vous mettre le fichier à disposition mais je suis tenu par la confidentialité.
 
Bonjour Eric,
Peut être en faisant une recherche de Ordre de Transport dans la ligne 1 et utiliser cet index dans la recherche :
VB:
Sub Colis() ' Rechercher par n° de Colis
On Error Resume Next
Rows("2:2").Select
ActiveSheet.ShowAllData
Dim Filtre As String
NoCol = Application.Match("Ordre de Transport", Range("1:1"), 0)    ' recherche de la bonne colonne
Filtre = InputBox("Recherche :", "FILTRE", "*")
ActiveSheet.ListObjects("Suivi_des_Livraison_M53").Range.AutoFilter Field:=NoCol, Criteria1:=Filtre, Operator:=xlAnd
Range("AY1").Select
End Sub
 

Pièces jointes

- 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
290
Réponses
18
Affichages
738
Réponses
3
Affichages
518
Retour