VBA: créer des liste de validation
Résolu
Ludivine
-
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour à tous !
Alors voila, j'aimerai créer une macro qui me permette ,dans un fichier, lorsque je lance la macro, d'appliquer des listes de validation sur l'onglet (sheet) actif.
Telles que :
Colonne D il puisse y avoir une de ces réponses : Customer reached on first try;Customer reached on second try;Customer reached on third ty;Cust not contacted;cust refused quote;Cust not reachable;Cust called for NTF DLV Loop
Colonne E il puisse y avoir une de ces réponses: Yes;No;Not Tested
Colonne F il puisse y avoir une de ces réponses: New Issue;Same Issue;Partial Fix;Unit Damaged;Unit & Box damaged;OS Problem; Accessories Missing
Colonne H il puisse y avoir une de ces réponses: Rerepair Off-site;Escalation;On-site repair;Explanation / Education;Buyback; Technical Support;Compensation
Colonne K et L et M il puisse y avoir une de ces réponses :Yes;No
Car voila, je dois créer ces listes à la main pour le moment, tous les jours dans un nouvel onglet donc une macro que je pourrais faire évoluer idéalement, serait un grand grand gain de temps !!
D'avance merci beaucoup à tous !!!
Alors voila, j'aimerai créer une macro qui me permette ,dans un fichier, lorsque je lance la macro, d'appliquer des listes de validation sur l'onglet (sheet) actif.
Telles que :
Colonne D il puisse y avoir une de ces réponses : Customer reached on first try;Customer reached on second try;Customer reached on third ty;Cust not contacted;cust refused quote;Cust not reachable;Cust called for NTF DLV Loop
Colonne E il puisse y avoir une de ces réponses: Yes;No;Not Tested
Colonne F il puisse y avoir une de ces réponses: New Issue;Same Issue;Partial Fix;Unit Damaged;Unit & Box damaged;OS Problem; Accessories Missing
Colonne H il puisse y avoir une de ces réponses: Rerepair Off-site;Escalation;On-site repair;Explanation / Education;Buyback; Technical Support;Compensation
Colonne K et L et M il puisse y avoir une de ces réponses :Yes;No
Car voila, je dois créer ces listes à la main pour le moment, tous les jours dans un nouvel onglet donc une macro que je pourrais faire évoluer idéalement, serait un grand grand gain de temps !!
D'avance merci beaucoup à tous !!!
3 réponses
Bonjour,
Via l'enregistreur de macros (Outils/Macros/Nouvelle macro) :
Via l'enregistreur de macros (Outils/Macros/Nouvelle macro) :
Sub TestValidations() With Columns("D:D").Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="Customer reached on first try,Customer reached on second try,Customer reached on third ty,Cust not contacted,cust refused quote,Cust not reachable,Cust called for NTF DLV Loop" End With With Columns("E:E").Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="Yes,No,Not Tested" End With With Columns("F:F").Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="New Issue,Same Issue,Partial Fix,Unit Damaged,Unit & Box damaged,OS Problem,Accessories Missing" End With With Columns("H:H").Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="Rerepair Off-site,Escalation,On-site repair,Explanation / Education,Buyback, Technical Support,Compensation" End With With Columns("K:M").Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="Yes,No" End With End Sub
Merci beaucoup pour ta réponse FRanck !!
Alors ça fonctionne très bien mais uniquement dans l'onglet dans lequel j'étais qd j'ai créé la macro, pas dans les autres onglets créés avant ou après !!!
Moi j'aimerais que quelques soit l'onglet dans lequel je sois dans le classeur (fichier) la macro soit appliquée sur l'onglet en cours d'utilisation.
C'est possible tu penses ?
Merci beaucoup encore !!
Alors ça fonctionne très bien mais uniquement dans l'onglet dans lequel j'étais qd j'ai créé la macro, pas dans les autres onglets créés avant ou après !!!
Moi j'aimerais que quelques soit l'onglet dans lequel je sois dans le classeur (fichier) la macro soit appliquée sur l'onglet en cours d'utilisation.
C'est possible tu penses ?
Merci beaucoup encore !!
Moi j'aimerais que quelques soit l'onglet dans lequel je sois dans le classeur (fichier) la macro soit appliquée sur l'onglet en cours d'utilisation
Ce code fonctionne avec n'importe qu'elle feuille, suffit de le lancer dans la feuille que tu veux...
Tu te places dans la feuille de ton choix et lance la macro (ALT+F8 choix : TestValidation et clic sur exécuter).
Ce code fonctionne avec n'importe qu'elle feuille, suffit de le lancer dans la feuille que tu veux...
Tu te places dans la feuille de ton choix et lance la macro (ALT+F8 choix : TestValidation et clic sur exécuter).
Alors c'est peut être mes yeux ?!!
voici mon fichier !
http://cjoint.com/?ALgo25my9wJ
J'ai créé la macro quand j'étais dans l'onglet "50" ensuite j'ai créé une nouvelle feuille (Feuil1).
Si je suis dans la feuille 1 et que je lance la macro, ça n'applique pas les listes de validation !
MErci pour vos lumières !
voici mon fichier !
http://cjoint.com/?ALgo25my9wJ
J'ai créé la macro quand j'étais dans l'onglet "50" ensuite j'ai créé une nouvelle feuille (Feuil1).
Si je suis dans la feuille 1 et que je lance la macro, ça n'applique pas les listes de validation !
MErci pour vos lumières !
pas tes yeux. Il ne faut pas mettre ce code dans un module de feuille, mais dans un module standard. Sous VBE : insertion/Module. Comme cela, ça fonctionne quelque soit la feuille d'ou tu la lances...
Regarde cet exemple :
https://www.cjoint.com/?ALgqC2tBaeo
Regarde cet exemple :
https://www.cjoint.com/?ALgqC2tBaeo