delattre13
Messages postés20Date d'inscriptionlundi 2 février 2009StatutMembreDernière intervention 3 mai 2013
-
3 avril 2013 à 16:19
delattre13
Messages postés20Date d'inscriptionlundi 2 février 2009StatutMembreDerniè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 ?
delattre13
Messages postés20Date d'inscriptionlundi 2 février 2009StatutMembreDerniè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"
delattre13
Messages postés20Date d'inscriptionlundi 2 février 2009StatutMembreDerniè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.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 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.