Erreur execution 91

Bonjour à tous,

Pour un projet de macro de tri sur plusieurs feuilles d'un classeur, j'ai besoin de faire une recherche dans des tableaux.

Pour cela j'ai créé le code suivant :

Dim ws As Worksheet
Dim Critère As String
Dim ListObj As ListObject
Dim Colonne As Integer

Critère = Worksheets("Critère Tri").Range("B1").Value

For Each ws In Worksheets
    For Each ListObj In ws.ListObjects

        Colonne = ListObj.Range.Find(What:=Critère, LookIn:=xlValues, lookat:=xlWhole).Column

            ListObj.Sort.SortFields. _
                Clear
            ListObj.Sort.SortFields. _
                Add2 Key:=Columns(Colonne), SortOn:=xlSortOnValues, Order:=xlAscending, _
                DataOption:=xlSortNormal
            With ListObj.Sort
                .Header = xlYes
                .MatchCase = False
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
                .Apply
            End With

Ma macro fonctionne à merveille tant que le critère de tri existe sur chaque feuille. Par contre, quand le critère n'existe pas, j'ai une erreur 91, variable objet ou with non définie.

En voyant, ça, je me suis dit que ça venait du fait que s'il ne trouve rien, Colonne = Nothing. Du coup il y a un problème de compatibilité avec Dim Colonne = Integer

J'ai essayé en enlevant Dim Colonne = Integer mais ça ne marche pas non plus.

Auriez vous des pistes à me suggérer ?

Je vous remercie d'avance pour votre aide

C'est bon ! J'ai compris mon erreur. Je mets la charrue avant les boeufs avec le .column

Je ne peux le faire que si il y a quelque chose de trouvé !

Je mets If Not ..... Is Nothing Then

et après le .column

Rechercher des sujets similaires à "erreur execution"