Liste déroulante

Bonjour,

je souhaite créer une macro qui m'affiche une liste déroulante.

J'affecte ma macro à un bouton et des que je clique il me créée la liste et si je modifie ma liste il tient compte de la mise à jour sauf au moment ou je me ressers du bouton pour crééer une liste. J'aimerai créer en VB une liste de taille variable.

Pouvez vous m'aider pour info voici le code de mon composant.

With Selection.Validation

.Delete

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

xlBetween, Formula1:="=AUTRES!$A$1:$A$5"

.IgnoreBlank = True

.InCellDropdown = True

.InputTitle = ""

.ErrorTitle = ""

.InputMessage = ""

.ErrorMessage = ""

.ShowInput = True

.ShowError = True

End With

J'aimerai qu'il puisse s'adapter dans le cas ou ma liste serait modifiée

Bonjour

Avec 2003 cette syntaxe ne passe pas (on ne peut pas faire référence à une feuille)

Alors à essayer (sans garantie)

With Selection.Validation
  .Delete
  .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
  xlBetween, Formula1:="=AUTRES!" & Sheets("AUTRES").Range("A1:A" & Sheets("AUTRES").Range("A" & Rows.Count).End(xlUp).Row).Address 
  .IgnoreBlank = True
  .InCellDropdown = True
  .InputTitle = ""
  .ErrorTitle = ""
  .InputMessage = ""
  .ErrorMessage = ""
  .ShowInput = True
  .ShowError = True
End With

Avec 2003 le moyen le plus simple c'est de définir en dynamique la zone

Exemple tes données sont en colonne A

Nomme ta zone (Liste par exemple)

Liste    =DECALER(AUTRES!$A$1;;;NBVAL(AUTRES!$A:$A))

Ta macro devient

With Selection.Validation
  .Delete
  .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
  xlBetween, Formula1:="=Liste"
  .IgnoreBlank = True
  .InCellDropdown = True
  .InputTitle = ""
  .ErrorTitle = ""
  .InputMessage = ""
  .ErrorMessage = ""
  .ShowInput = True
  .ShowError = True
End With
Rechercher des sujets similaires à "liste deroulante"