Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro creation de liste de donnes qui viennent d une autre feuille

tomtom57280

XLDnaute Nouveau
Bonjour a tous

actuellement je travail sur un classeur dont je souhaite créer par macro des listes déroulante en "G4" sur la feuille "01 M" a partir de données en feuille "TYPES DEFAUT" des cellules de B1 a B22.
N`étant pas un grand expert je récupère toujours les macro sur internet et j’essaye de les adapter mais la je sèche.
voila ce que j ai fait actuellement:

Sheets("01 M")
ActiveSheet.Range("G4").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:="TYPES DEFAUT"=$B$1:$B$22"

Malheureusement le mode débogage ne m aiguille pas du tout sur mes erreurs

Un super héro pourrez me dire ou j ai fait des fautes , je remercie d avance tous ceux qui me répondrons.

Cordialement Thomas
 

job75

XLDnaute Barbatruc
Bonjour tomtom57280, bienvenue su XLD,
VB:
With Sheets("01 M").Range("G4").Validation
    .Delete
    .Add xlValidateList, Formula1:="='TYPES DEFAUT'!$B$1:$B$22"
End With
ou encore :
VB:
Sheets("TYPES DEFAUT").Range("B1:B22").Name = "Liste" 'plage nommée
With Sheets("01 M").Range("G4").Validation
    .Delete
    .Add xlValidateList, Formula1:="=Liste"
End With
A+
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re @tomtom57280,
pourquoi ces 3 virgule sans rien écrire dedans ?

Exemple pour Validation.add. Si on regarde l'aide Excel, on trouve:

On mentionne les arguments en respectant leur position dans la définition de la fonction:
Le paramètre 1 Type est obligatoire donc je le mentionne
Les paramètres 2 et 3 (AlertStyle et Operator) sont facultatifs et ne m'intéressent pas donc je n'indique rien à leurs positions
Le paramètre Formula1 est facultattif mais dans mon cas je dois le définir (c'est l'adresse de la liste)
Le paramètre Formula2 est facultatif et ne m’intéresse pas donc je ne le mentionne pas (on s'en dispense complètement car c'est le dernier)
On a donc la syntaxe:
.Add Type, AlertStyle, Operator,Formula1, Formula2

Avec ce que j'ai dit plus haut, on obtient :
.Add Type, , ,Formula1 => d’où mon code


On pouvait aussi utiliser les paramètres nommés. Dans ce cas, on ne mentionne que les paramètres qui nous sont utiles et l'ordre n'a pas d’importance.
.Add Type:=xlValidateList, Formula1:="=Liste"

Astuce: Comme Type est le premier paramètre dans la liste des paramètres, on peut omettre d'écrire Type:= et on aboutit à l'écriture de job75:
.Add xlValidateList, Formula1:="='TYPES DEFAUT'!$B$1:$B$22"
 

tomtom57280

XLDnaute Nouveau
je te remerci bcp pour ton explicqtion je viens dapprendre pas mal de chose grace a toi!!!!!
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…