Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Salut,

D'ou la nécessité de déclarer ces variables !!!!
Donc si tu veux comparer le résultats renvoyer par ton right à un nombre, déclare comme ceci : Dim test As Integer

@+
 
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

1000 merci !!!
Ca marche.

effectivement il me manquait le test pour savoir si on avait affaire à des chiffres ou pas et traité l'info selon les cas.

Vraiment merci !
 
Re : Convertir un format en VBA

Salut,

Sinon (mais je pense que j'aurai utiliser le meme code que Mécano), tu peux déclarer en String (Dim test as String) et faire une comparaison de texte du genre If test = "12" Then

@+
 
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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…