Afficher le % d'une cellule

Résolu/Fermé
Alex - 5 août 2021 à 17:06
jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 - 10 août 2021 à 15:13
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 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689
5 août 2021 à 17:14
0
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 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689
5 août 2021 à 22:35
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 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024
6 août 2021 à 15:41
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 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689 > Alex
6 août 2021 à 15:59
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 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024
10 août 2021 à 15:00
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 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689 > Alex
10 août 2021 à 15:13
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