Lire les données d'une liste de validation

Lire les données d'une liste de validation - VB/VBA/VBS - Programmation

Marsh Posté le 30-08-2006 à 17:22:05    

salut
 
après qqes recherches j'ai rien trouvé.
sur une feuille XL, j'ai une cellule (disons "A1" ) qui possède une liste de validation de données (objet Validation de Range) avec 2 données: "oui" et "non" (tt simplement!).
Bref je voudrais créer une macro en VBA qui va lire cette liste et changer les champs càd passer de "oui" à "non" qd il est nécessaire de le faire.
En fait je voudrais que ma macro clique sur la flèche de la liste de validation.
 
Comment faire?
 
merci

Reply

Marsh Posté le 30-08-2006 à 17:22:05   

Reply

Marsh Posté le 30-08-2006 à 17:52:46    

bonjour,
En VBA tu n'as pas à t'occuper de la liste de validation tu affectez directement la valeur de cellule.
Range("A1" ) = "oui"
 
A+

Reply

Marsh Posté le 30-08-2006 à 18:05:28    

salut
 
je ne cherche pas exactement à affecter une valeur à la cellule. je veux juste lire les valeurs de la liste via une macro ss que l'utilisateur le fasse de lui-mm. en gros ma macro va effectuer un calcul avec "oui" (valeur affcichée par défaut sur la feuille) puis lire la seconde valeur qui est "non et faire à nouveau un calcul.
mais comment faire?
 

Reply

Marsh Posté le 30-08-2006 à 18:10:39    

Re...
ça y est je viens de comprendre...  :D  
 
Tu peux essayer un truc comme ça, mais ça dépend un peu comment est monté ta liste de validation si c'est un string énuméré ça ira tu pourras le spliter sinon faut voir ce que tu obtiens en retour.
 
With Selection.Validation
MsgBox .Formula1  
End With
 
A+

Reply

Marsh Posté le 30-08-2006 à 18:32:35    

ton code renvoie oui;non...
 
mais il ne va pas chercher chaque valeur. ce que je veux c'est récupérer chaque champ de la liste ss forcément les afficher (pour les utiliser en interne après).


Message édité par acrosomia le 30-08-2006 à 18:36:22
Reply

Marsh Posté le 30-08-2006 à 18:33:52    

...
Cette macro fait la différence entre un retour chaîne "oui;non"
ou un retour adresse = "$A$1:$A$2"
 
Attention on travaille toujours sur Sélection !
 
Sub Macro1()
Dim Arr() As String, r$
r = Selection.Validation.Formula1
If Left(r, 1) <> "=" Then ':="oui;non"
Arr() = Split(r, ";" )
Else '= "$A$1:$A$2"  
r = Right(r, Len(r) - 1)
Arr() = Split(r, ":" )
End If
For i = LBound(Arr()) To UBound(Arr())
MsgBox Arr(i)
Next
End Sub
 
A+


Message édité par galopin01 le 30-08-2006 à 18:35:28
Reply

Marsh Posté le 30-08-2006 à 18:34:44    

ça va tu t'en sortira comme ça ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed