Macro VBA Excel Affichage d'une liste de données de Validation

Résolu
delattre13 Messages postés 20 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 3 mai 2013 - 3 avril 2013 à 16:19
delattre13 Messages postés 20 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 3 mai 2013 - 3 mai 2013 à 16:05
Bonjour,
J'utilise une macro VBA Excel pour supprimer et recréer une liste de validation dans un tableau Excel 2007/2010.
With Columns(Colonne_morceau & ":" & Colonne_morceau).Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertWarning, Operator:=xlBetween, Formula1:="D;F"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = "Morceau"
        .ErrorTitle = "Début ou Fin"
        .InputMessage = "D= Début du morceau" & Chr(10) & "F= Fin du morceau"
        .ErrorMessage = "Saisie incorrecte (D pour début ou F pour Fin"
        .ShowInput = True
        .ShowError = True
    End With


Après l'exécution de la macro, lors du premier affichage la liste se présente sous la forme saisie c'est à dire une liste de valeurs séparées par un point-virgule sur une seule ligne. Ici "D;F"
Si on sélectionne la colonne contenant les données à valider, puis on va dans l'onglet Données/Validation on visualise et on ferme la validation les valeurs s'affichent correctement. C'est à dire que le ";" est bien interprété comme un retour chariot. Dans mon cas
"D"
"F"

Existe-t-il une méthode pour éviter de passer par la première validation manuelle ?

Par avance merci pour votre aide.

Sincères salutations

5 réponses

delattre13 Messages postés 20 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 3 mai 2013
3 mai 2013 à 16:05
Bonjour,
Merci pour l'URL effectivement j'avais la réponse
Mais comme j'étais passé à autre chose je n'ai pas lu la réponse.

Je vien de tester le code de l'URL :

Dim wksTemp As Excel.Worksheet
Dim colTemp As Excel.Range
    Set wksTemp = ThisWorkbook.Worksheets("Feuil4")
    Set colTemp = wksTemp.Columns("A:A")
    colTemp.Validation.Delete
    colTemp.Validation.Add xlValidateList, xlValidAlertWarning, , "J,P,E,M"


Merci ça marche impécable et du premier coup.

Vous êtes les meilleurs
Salutations
3
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 23 août 2018 21
3 avril 2013 à 18:17
Mets une virgule plutôt que le point-virgule.
VB/VBA travaillent toujours en mode anglais par défaut... malheureusement...

.Add Type:=xlValidateList, AlertStyle:=xlValidAlertWarning, Operator:=xlBetween, Formula1:="D,F"


MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
delattre13 Messages postés 20 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 3 mai 2013
3 mai 2013 à 11:44
Bonjour,
et merci pour votre réponse.
Mais sur mon PC c'est tout en français.
Donc le séparateur de liste c'est bien le point-virgule
La virgule c'est un séparateur décimal et le point sert à séparer les groupe de 3 chiffres pour les nombres supérieur à 1000
Donc en écrivant Formula1:="D,F" je n'ai qu'une seule valeur dans la liste qui est "D,F".

Mais j'ai pris bonne note de l'adresse du forum pour VBA Office.

Salutations
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 236
3 mai 2013 à 13:43
Bonjour,
Il n'y a pas plus sourd que celui qui ne veut pas entendre !
Pourquoi viens-tu demander ici de l'aide si c'est pour continuer à en faire à ta tête ?
MPi t'a parfaitement répondu ! VBA n'accepte que la notation anglaise, que ta version soit fraznçaise ou non. Et le "séparateur décimal" n'a rien à voir avec ce que tu fais !!!
Alors : vas-tu, oui ou non, tester ce que t'a dit MPi ???????????
Il y a des fois où on finirait par tout casser, ma foi, devant de telles réactions !

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 236
3 mai 2013 à 13:48
Et la cerise sur le gâteau ! un comble !
Cela t'a déjà été dit dans cette discussion àouverte il y a près d'un an et que tu as laissée sans suite :
Tapez le texte de l'url ici.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0