Bonjour à tous,
Après plusieurs années sans poster ici, je me retrouve confronté à un problème où mon cerveau n'est plus apte à fonctionner...
Je suis en train de créer une macro qui met en forme un document après avoir copié les données d'un autre document. A un moment donné je crée une première Liste (Validation) et je crée une seconde Liste (Validation) basée sur la première. Donc tout ceci fonctionne parfaitement quand je le fais manuellement mais pas dans la macro. Voici une partie du code:
Dans cette première partie, la liste est créée en colonne AL et est basée sur une liste nommée Criteria. Cette partie ne pose pas de problème
Dans cette deuxième partie, la seconde liste est créée en colonne AM. Si la cellule de la colonne AL est vide, alors on utilise la liste "Blank", si elle n'est pas vide, alors on utilise INDIRECT pour créer nos listes dépendantes de ce qui est sélectionné dans la liste "Criteria" créée ci-dessus.
L'erreur survient sur cette partie du code:
Et le je sèche... je ne sais plus quoi faire. Quelqu'un aurait une idée? 🙂
Merci d'avance et excellente journée
YeTi
Après plusieurs années sans poster ici, je me retrouve confronté à un problème où mon cerveau n'est plus apte à fonctionner...
Je suis en train de créer une macro qui met en forme un document après avoir copié les données d'un autre document. A un moment donné je crée une première Liste (Validation) et je crée une seconde Liste (Validation) basée sur la première. Donc tout ceci fonctionne parfaitement quand je le fais manuellement mais pas dans la macro. Voici une partie du code:
Dans cette première partie, la liste est créée en colonne AL et est basée sur une liste nommée Criteria. Cette partie ne pose pas de problème
Code:
'CREATE DROP DOWN LISTS FOR CRITERIA
With Range("AL5:AL" & LastRow).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Criteria"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Dans cette deuxième partie, la seconde liste est créée en colonne AM. Si la cellule de la colonne AL est vide, alors on utilise la liste "Blank", si elle n'est pas vide, alors on utilise INDIRECT pour créer nos listes dépendantes de ce qui est sélectionné dans la liste "Criteria" créée ci-dessus.
Code:
'CREATE DROP DOWN LISTS FOR SUB-CRITERIA
With Range("AM5").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=IF(ISBLANK(AL5);Blank;INDIRECT(AL5))"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Range("AM5").AutoFill Destination:=Range("AM5:AM" & LastRow), Type:=xlFillDefault
L'erreur survient sur cette partie du code:
Code:
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=IF(ISBLANK(AL5);Blank;INDIRECT(AL5))"
Et le je sèche... je ne sais plus quoi faire. Quelqu'un aurait une idée? 🙂
Merci d'avance et excellente journée
YeTi