Résolu XL 2013 Création d'une liste de validation sou VBA

Chrystel01

XLDnaute Occasionnel
Bonjour,

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 ?

Je vous remercie par avance pour votre aide

Chrystel
 
Ce fil a été résolu! Aller à la solution…

Fichiers joints

Chrystel01

XLDnaute Occasionnel
Bonjour,

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 ?

Merci de votre aide
 

patricktoulon

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

patricktoulon

XLDnaute Barbatruc
non c'est pas le code
essaie par leur nom peut etre que ca va le faire
with range("tableau1[enteteteAB]").validation
 
Ce message a été identifié comme étant une solution!

eriiiic

XLDnaute Barbatruc
Bonjour à tous ,

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
 

patricktoulon

XLDnaute Barbatruc
bon tiens voila par leur nom
VB:
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é
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas