Texte "0%" pas reconnu lorsque sélectionné dans liste déroulante

Bonjour tous le monde,

alors voici mon problème : je veux afficher un résultat dans une cellule en fonction du choix sélectionné dans liste déroulante. Cela marche pour toutes les options, sauf bizarrement pour la valeur "0%". Comme code est assez lourd et long, j'ai fait un mini code pour essayer de régler le problème.

Sub StructureSelectCase3()
' repris et réarrangé de  excel-malin

'Structure Select Case: plusieurs valeurs dans la même condition
Choix = Range("A1").Value

'détermine la couleur de l'animal
Select Case Choix
    Case "0%"
        Result = -2
    Case "1%-50%"
        Result = 1
    Case "51%-100%"
        Result = 2
    Case "Ne sais pas"
        Result = 0
    Case Else
        Result = "inconnue"
End Select

Range("A2").Value = Result

End Sub

Si quelqu'un a une piste je suis preneuse !

Cordialement

Bonjour

0% c'est 0 non ?

Case "0"

Result = -2

A plus sur le forum

Bonjour,

oui le "0" marche, mais j'ai besoin du signe "%".

Il faut s'imaginer que dans mon vrai code, j'ai une liste déroulante, et c'est pas esthétique d'avoir comme choix: 0, 1%-50%, 51%-100%...

Cordialement

Bonjour,

Un exemple !?

Cdlt.

11jbourgoi.xlsm (17.55 Ko)

Bonjour,

si j'ai bien compris la solution serait de formater en texte les choix de la liste. Est ce qu'il y a la possibilité de le faire dans le code en lui même ? Est ce que je dois modifier ou ajouter une formulation quelque part ?

Dans mon code le choix de la liste :

Const str1 As String = "0%,1%-50%,51%-100%,Ne sais pas"

Sheets("2.Matiere").Cells(4, 1) = "  Quel est le pourcentage de matériaux recyclés ?"
      With Sheets("2.Matiere").Cells(4, 3).Validation ' liste de choix
          .Delete
          .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
          Operator:=xlBetween, Formula1:=str1
          .IgnoreBlank = True
          .InCellDropdown = True
          .InputTitle = ""
          .ErrorTitle = ""
          .InputMessage = ""
          .ErrorMessage = ""
          .ShowInput = True
          .ShowError = True
          End With
 

Cordialement

Bon du coup j'ai trouvé.

Il suffit de rajouter

Sheets(fichiersstats).Columns("A:A").NumberFormat = "@"
Rechercher des sujets similaires à "texte pas reconnu lorsque selectionne liste deroulante"