Afficher le % d'une cellule

Résolu
Alex -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour, j'aimerai que mon code VBA détecte les % dans les cellules excel. J'ai fais ce petit code pour un test mais il ne marche que si la cellule = "%". Dans le cas ou elle contient d'autres caractères ex : "50%", le code ne fonctionne pas. Pouvez-vous m'aidez la dessus ? Merci d'avance !

Sub test()

If Feuil1.Cells(4, 3) = "%" Then
MsgBox ("% détecté")
Else: MsgBox ("failed")
End If

End Sub

2 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
0
Alex
 
Bonsoir, merci ! J'ai modifié le code, cela marche si ma cellule est une chaîne de caractère ("665%768" par ex), mais pas si elle est considéré par excel comme un pourcentage ("50%" par ex).

Sub test()
If InStr(1, Feuil1.Cells(3, 3), "%") > 0 Then
MsgBox ("youpi")
End If
End Sub
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Tu es sûr que le symbole % est écrit dans la cellule ?
ça ne serait pas simplement le "format" de cellule qui serait en pourcentage ? Si tel est le cas .. ce n'est que de l'affichage et la valeur de la cellule ne contient pas le signe %
Il faut que tu regardes comment connaitre le "format" d'une cellule ... et si elle est au format % ..alors afficher ton msgbox.
0
Alex > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
En fait si j'écris 50% dans une cellule, Excel la considère comme un un pourcentage automatiquement (le format de la cellule est bien un pourcentage). Est-il possible de faire ressortir les % dans ces cellules de ce type même si ce n'est pas des format "texte"/chaines de caractère? Merci d'avance !
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > Alex
 
Comme je te l'ai dit .. il faut regarder le format de la cellule
Sub test()
    Dim NumberFormat
    NumberFormat = Range("A1").NumberFormat
    Debug.Print NumberFormat
    If NumberFormat = "0%" Then
        MsgBox "Pourcentage"
    End If


End Sub
0
Alex > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Bonjour Jordan,

Je ne connaissais pas du tout NumberFormat ^^ j'aurai été incapable de coder ça moi même...
Merci beaucoup, tu me sauve !
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > Alex
 
En faisant une simple recherche sur le net avec les mots clé : VBA + Format cellule .. tu aurais trouvé le "numberFormat" .. c'est d'ailleurs comme ça que j'ai procédé.
0