Macro VBA Excel Affichage d'une liste de données de Validation [Résolu]

delattre13 20 Messages postés lundi 2 février 2009Date d'inscription 3 mai 2013 Dernière intervention - 3 avril 2013 à 16:19 - Dernière réponse : delattre13 20 Messages postés lundi 2 février 2009Date d'inscription 3 mai 2013 Dernière intervention
- 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
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
delattre13 20 Messages postés lundi 2 février 2009Date d'inscription 3 mai 2013 Dernière intervention - 3 mai 2013 à 16:05
3
Merci
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

Merci delattre13 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 84 internautes ce mois-ci

Commenter la réponse de delattre13
cs_MPi 3872 Messages postés mardi 19 mars 2002Date d'inscription 13 juillet 2018 Dernière intervention - 3 avril 2013 à 18:17
0
Merci
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
Commenter la réponse de cs_MPi
delattre13 20 Messages postés lundi 2 février 2009Date d'inscription 3 mai 2013 Dernière intervention - 3 mai 2013 à 11:44
0
Merci
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
Commenter la réponse de delattre13
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 3 mai 2013 à 13:43
0
Merci
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.
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 3 mai 2013 à 13:48
0
Merci
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.
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.