Convertir un format en VBA

  • Initiateur de la discussion Initiateur de la discussion Ploom
  • Date de début Date de début

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 !

P

Ploom

Guest
Bonjour,

mes recherches dans le forum m'ont indiqué une solution directmeent dans EXCEL en manipulant des formats mais je cherche une solution à intégrer dans VBA :

J'ai une liste de cellule :
Magasin 01
Magasin 02
Magasin 03
...
Magasin 16


je souhaite récup les 2 chiffres de la fin.

en VBA je place donc le code :
a = Cells(i, 3).Value 'je récup le contenu de la cellule
test = Right(a, 2) ' je récup dans la variable "test" seulement les 2 derniers caractères qui sont obligatiorement des chiffres.


le problème c'est lorsque je compare le contenu de la variable "test" à un chiffre.

Pour VBA : "01" n'est pas égal à 1, "02" != 2, etc.....
une idée pour transformer le "01" (caractère) en nombre et pouvoir effectuer la comparaison ??

Merci d'avance pour le temps que vous prendrez pour me répondre.
 
Re : Convertir un format en VBA

Ah merci pour l'info.
C'est vrai que j'oublie souvent de déclarer.

Il me reste 1 problème.
lorque j'arrive sur la ligne de code :

test = Right(a, 2)

j'ai l'erreur 13 : incompatibilité de type

effectivement "a" est un string qui peut contenir :
magasin 01, magasin 02, .... magasin 16.
Du coup je retourne à la case départ.
 
Re : Convertir un format en VBA

Bonjour,

Pourtant j'ai fait cela ( en mettant Magasin 01 à Magasin 16 en colonne C) et ça fonctionne sans problème... :

Code:
Option Explicit
Sub essai()
Dim a As String
Dim test As Long
Dim i As Long

For i = 1 To 16
    a = Cells(i, 3).Value
    test = Right(a, 2)
    If test = 12 Then
        MsgBox "oui : =12"
    Else
        MsgBox "non : = " & test
    End If
Next i
End Sub

Sinon, à tout hasard, essaie ceci : test = Right(a, 2)*1 qui force la conversion

Cordialement
 
Re : Convertir un format en VBA

Ah oui effectivement j'ai un autre truc qui me coince et dont je ne vous ai pas parlé :
dans ma colonne C, je n'ai pas que magasin 01,.... j'ai aussi des cellules qui se terminent par des lettres (genre magasin a, magasin b)

donc lorsque je récup les 2 derniers caractères je peux tomber sur des chiffres : 01,02, ...
ou des lettres.
si c'est des lettres, j'ignore la ligne et je passe à la suivante.

voila pourquoi ca ne marche pas
 
Re : Convertir un format en VBA

Le même essai mais qui passe à la ligne suivante si les deux derniers caractères ne constituent pas un nombre :
Code:
Option Explicit
Sub essai()
Dim a As String
Dim test As Long
Dim i As Long

For i = 1 To 16
    a = Cells(i, 3).Value
    If IsNumeric(Right(a, 2)) Then
        test = Right(a, 2)
        If test = 12 Then
            MsgBox "oui : =12"
        Else
            MsgBox "non : = " & test
        End If
    Else
            MsgBox "Pas numérique"
    End If
Next i
End Sub

Cordialement
 
Re : Convertir un format en VBA

Oui le problème c'est que je ne compare pas test à "12" mais à une autre variable. Et cette variable est numérique.

Ca marche super bien.

Merci encore (en plus j'avais mal décrit mon problème initial).
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
6
Affichages
451
Réponses
1
Affichages
473
W
Réponses
20
Affichages
1 K
Réponses
16
Affichages
1 K
Retour