J'ai un programme VBA qui créé notamment une liste de validation avec les possibilité 1,2,3 sur la colonne AB.
Mais je ne comprends pas car cette liste de validation se créé sur un ensemble de colonnes (colonnes Z à AG)
Ci-dessous le code VBA et je vous joints le fichier avec un extrait de la macro (qui exécute d'autres actions par ailleurs) pour que cela soit plus clair.
Range("AB2:AB1000").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="1,2,3"
End With
Pourriez-vous m'aider SVP à résoudre ce problème ?
Par ailleurs, si je veux créer cette même liste sur 4 colonnes Z, AA, AB, AE? est il possible SVP de simplifier le code VBA, sans répéter la même opération ?
C'est une matrice que j'ai récupéré de mon prédécesseur.
Et pourquoi la liste de validation ne se crée pas dans tout les colonnes ?
Cela signifie que je ne peux pas créer de liste de validation sur les seules colonnes souhaitées en VBA ? Car cela fonctionne bien quand on le fait directement, sans programmation ?
franchement je l'ignore mais c'est le cas avec les formules dans les TS elle se reproduisent automatiquement je ne serais pas étonné que ca soit pareil pour les LDV
regarde l'effet de ton Range("AB2:AB1000").Select
Tu inclues la cellule AB9 fusionnée avec Z9:AG9, toutes ces colonnes se retrouvent donc sélectionnées et concernées par ton ajout.
Restreint ta sélection à la colonne réelle du tableau en utilisant son nom :
VB:
With Range("TAB_RECAP_01[A26]").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="1,2,3"
End With
inutile d'aller au-delà du tableau jusqu'en ligne 1000. La validation s'étendra à chaque ajout de ligne.
eric
Sub test()
With Range("TAB_RECAP_01[A26],TAB_RECAP_01[A24],TAB_RECAP_01[B25],TAB_RECAP_01[B29]").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="1,2,3"
End With
End Sub
tu aura ta LDV uniquement sur les colonne "Z,AA,AB,AE" mais uniquement dans le tableau structuré