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