VBA: Liste déroulante / virgule revenant à la

Fermé
Eqy - 30 mars 2009 à 19:47
incaout Messages postés 347 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 novembre 2012 - 30 mars 2009 à 22:23
Bonjour,
Petite débutante sur vba, j'espère que ma question ne sera pas trop idiote!
Je crée une liste déroulante à l'aide de xlValidateList.
Pour la remplir, je vais chercher des cellules contenant des phrases avec des virgules.
Étant donné que l'option séparateur pour revenir à la ligne est une virgule, la liste ne ressemblent plus à rien car elle coupe les phrases en plusieurs morceaux (à chaque fois qu'il y a une virgule)

Pour l'instant, j'ai remplacé les virgules dans les cellules par des points virgules mais j'aimerai quand même résoudre le problème sinon je ne vais pas dormir!!! ;);)

voici mon prog :

formule = Worksheets("Attitudinal Segment").Cells(9, 3) & "," & Worksheets("Feuil1").Cells(10, 3)

Worksheets("Feuil1").Cells(10, 9).Select

With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=formule
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = "Which self-portrait do you identify the most with ?"
.ShowInput = True
.ShowError = True
End With

Merci merci d'avance pour l'aide ;)

1 réponse

incaout Messages postés 347 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 novembre 2012 74
30 mars 2009 à 22:23
Bonsoir.

J'ai exécuté un enregistrement de macro pour la création manuelle d'une liste de validation. Voici le code obtenu :

Range("I19").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Data"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With

En fait "Data" est une plage de cellule nommée (ici la colonne A d'une feuille Excel). Avec une plage nommée, tu peux utiliser des "," au sein de tes cellules.

En espérant que cela t'aidera.

Cdlt

IC
0