VBA liste de validation avec chiffres décimaux

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

dionys0s

XLDnaute Impliqué
Bonjour le forum.

J'ai un soucis avec une liste de validation

Je voudrais que dans une case soient disponibles uniquement des taux de TVA.

J'ai un peu de mal avec la syntaxe. Quand c'est du texte, il faut mettre un virgules entre les choix possibles comme ceci :

Code:
    With Range(Cells(PremiereLigneRecap, 18), Cells(DerniereLigneRecap, 18)).Validation
    .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:=[B]"OUI,NON,PARTIEL"[/B]
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With

Mais que faire dans le cas de chiffres avec virgule ?

j'ai essayé deux codes :

Code:
Formula1:="19,6%;5,5%;2,1%;0%"
ou encore
Code:
Formula1:="19.6%,5.5%,2.1%,0%"
et aucun ne marche 🙁

Je n'ai pas trouvé sur la FAQ de SilkyRoad ou avec des recherches Google donc je m'en remets à vous.

Merci d'avance pour votre aide ^^

(Edit : j'ai bien sûr essayé
Code:
Formula1:="19,6%,5,5%,2,1%,0%"
sans succès)
 
Re : VBA liste de validation avec chiffres décimaux

Bizarre,

je me suis enregistré en macro en faisant une validation de type liste en rentrant les taux de TVA et le code est celui-ci

Code:
With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, [B]Formula1:="2,1%;5,5%;19,6%"[/B]
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
 
Re : VBA liste de validation avec chiffres décimaux

Non mais je suppose que ça ne marchera pas, puisque c'est la virgule en elle même qui me pose problème. Si je met un . entre 19 et 6% dans excel ca m'affichera 19.6% en texte et pas 19,6% en pourcentage... Je vais essayer avec & et OR.
 
Re : VBA liste de validation avec chiffres décimaux

Bizarre,

je me suis enregistré en macro en faisant une validation de type liste en rentrant les taux de TVA et le code est celui-ci

Code:
With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, [B]Formula1:="2,1%;5,5%;19,6%"[/B]
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With

Je l'avais essayé aussi et ça me propose ceci :
2 puis 1% puis 5 puis 5% puis 19 puis 6% puis 0%
 
Re : VBA liste de validation avec chiffres décimaux

Slt Pierrejean,

Pfff, à l'évidence, c'était pas si aisé que ca.

J'avais pensé au 55/100 pour le 5.5%, mais pour ce qui est du reste.

Le . = ,

mais le . en macro qui doit s'afficher en , doit bien être possible (avec des [], des {} , ou autre chose), c'est pas possible autrement.

Enfin, bon encore une fois mon ptit cerveau de bourriquet n'a réussi à résoudre ce ptit pb. 😀

A+

N'est pas Barbatruc qui veut
 
Dernière édition:
Re : VBA liste de validation avec chiffres décimaux

Hé ho, 😱

Je crois que j'ai trouvé une autre astuce, c'est moins propre mais ca fonctionne :

Code:
Sub Macro1()

    Range("E1").FormulaR1C1 = "2.10%"
    Range("E2").FormulaR1C1 = "5.50%"
    Range("E3").FormulaR1C1 = "19.60%"
   
    ActiveWorkbook.Names.Add Name:="tva", RefersToR1C1:="=Feuil1!R1C5:R3C5"
    Range("A1").Select
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=tva"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
End Sub
 
Re : VBA liste de validation avec chiffres décimaux

Bonjour à tous,

une solution en modifiant temporairement le séparateur décimal:

Code:
Application.DecimalSeparator = "."
    Range("C11").Select
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="12.3%,34.5%,7.89%"
        
    End With
Application.DecimalSeparator = ","

@+

Gael
 
Re : VBA liste de validation avec chiffres décimaux

Hé ho, 😱

Je crois que j'ai trouvé une autre astuce, c'est moins propre mais ca fonctionne :

Code:
Sub Macro1()

    Range("E1").FormulaR1C1 = "2.10%"
    Range("E2").FormulaR1C1 = "5.50%"
    Range("E3").FormulaR1C1 = "19.60%"
   
    ActiveWorkbook.Names.Add Name:="tva", RefersToR1C1:="=Feuil1!R1C5:R3C5"
    Range("A1").Select
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=tva"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
End Sub

Merci bcp Ballmaster 🙂 j'y avais pensé mais justement je souhaitais éviter cette solution. J'utilise cette technique pour les listes évolutives avec un onglet Datas. Mais les TVA n'étant pas sur le point de changer... 😛
 
Re : VBA liste de validation avec chiffres décimaux

Bonjour à tous,

une solution en modifiant temporairement le séparateur décimal:

Code:
Application.DecimalSeparator = "."
    Range("C11").Select
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="12.3%,34.5%,7.89%"
        
    End With
Application.DecimalSeparator = ","

@+

Gael

J'ai essayé, je n'ai pas l'impression que ça fonctionne... Tu as fait le test ? Le mien n'est pas concluant. Il propose les bons pourcentages, mais avec un .
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
12
Affichages
1 K
Réponses
16
Affichages
3 K
Réponses
3
Affichages
918
Réponses
1
Affichages
1 K
Retour