Liste déroulante VBA

bjr le forum

je voudrais mettre en place 1 liste déroulante en vba du type

With Range("E1:f3").Validation

.Delete

.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _

xlBetween, Formula1:="A,B,C,G,N,Y"

mais je voudrais que cette liste déroulante soit effective uniquement 1 colonne sur 2

dans le fichier ci joint il faudrait que les listes déroulantes fonctionnent dans les colonnes : B, D, F, H,....X"

merci d'avance si cela est possible

jmd6


ah j'ai oublié de dire qu'il va y avoir d'autres onglets (au moins une trentaine) sur lesquels la routine doit pouvoir y être appliquée

dsl et merci encore

jmd6


dsl j'ai été un peu vite dans la routine il faut lire

With Range("B8:Y161").Validation

jmd6

Bonjour,

Sub test()
For Each sh In Worksheets
 If sh.Name <> "LEGENDES" Then
   For i = 2 To 25 Step 2
    With sh.Range(Cells(8, i).Address, Cells(161, i).Address).Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="A,B,C,G,N,Y"
    End With
   Next
 End If
Next
End Sub

bonsoir SabV

un grand merci ça fonctionne comme je le souhaitait, c'est super

j'ai juste 1 requête mais pas obligatoire

je souhaite apprendre et je comprends pas tout dans la routine que tu m'as fabriqué

si tu as un peu de temps ce serait sympa de m'expliquer les ligne que tu as écris

si tu as pas le temps c'est pas grave, le principal c'est que ça fonctionne

encore merci

bonne soirée

jmd6

Bonjour,

Voici les explications, si ce n'est pas clair, n'hésite pas à demander des éclaircissements.

Sub test()
'pour chaque feuille dans le classeur
For Each Sh In Worksheets
'si le nom de la feuille (Sh) est différente de "LEGENDES"
 If Sh.Name <> "LEGENDES" Then
'  boucle sur les chiffres 2 à 25 par step de 2 (colonne B à Y)
   For i = 2 To 25 Step 2
   'avec les cellules B8:B161  (B lorsque i = 2)
    With Sh.Range(Cells(8, i).Address, Cells(161, i).Address).Validation
        'efface la validation
        .Delete
'        ajout de la validation
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="A,B,C,G,N,Y"
    End With
   Next i ' prochaine colonne
 End If
Next ' prochaine feuille
End Sub

c'est très clair et cela parait tellement facile avec les bonnes explications

je vais conserver les explications

je vais poursuivre mes investigations car le fichier se construit et j'aurais besoin d'aide

merci encore pour votre aide

c'est vraiment super

bonne soirée

jmd6

Merci pour ce retour, au plaisir!

ps/ Merci de clôturer le fil en cliquant sur le bouton V vert du post à coté du bouton EDITER si problème résolu.

Rechercher des sujets similaires à "liste deroulante vba"