XL 2016 Nom de Colonne dans VBA

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é.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
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

  • Eric.xlsm
    14.9 KB · Affichages: 10

Discussions similaires

Statistiques des forums

Discussions
314 628
Messages
2 111 333
Membres
111 103
dernier inscrit
Maxime@mar