Afficher le % d'une cellule

Résolu
Alex -  
jordane45 Messages postés 30426 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

  1. 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
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      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
      1. Alex > jordane45 Messages postés 30426 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
      2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > 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
      3. Alex > jordane45 Messages postés 30426 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
      4. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > 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