[Déplacé VB6 --> VBA] mise en forme excel + récup info [Résolu]

Messages postés
204
Date d'inscription
vendredi 19 novembre 2004
Dernière intervention
1 novembre 2011
- - Dernière réponse : cs_snake57
Messages postés
204
Date d'inscription
vendredi 19 novembre 2004
Dernière intervention
1 novembre 2011
- 3 mai 2010 à 19:07
Bonjour, je voudrais réaliser une macro qui fasse la chose suivante :

J'ai une colonne de données qui a ce format "XX111 "

C'est à dire 1 ou 2 lettre suivis de quelques chiffres (1 à 4) suivis de plusieurs espaces.

J'aimerais pouvoir supprimer les espaces et récupérer le chiffre dans une variable.

A la fin j'aurais donc "XX111" dans ma cellule et le 111 également dans une variable.

Pour la boucle ca je sais faire y'a pas de pb. C'est juste la mise en forme et la récupération du chiffre qui me pose problème.

Pouvez vous m'aider svp?
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
3
Merci
Salut
(Cf catégorie)
Pour supprimer les espaces de gauche, de droite ou les deux, il y a les instructions LTrim, RTrim et Trim.
Pour séparer des chiffres dans une chaine, il suffit d'analyser chacun de ses caractères :
    Dim r As Long
    Dim sChiffre As String
    sChiffre = ""
    For r = 1 To Len(maChaine)
        If Mid$(maChaine, r, 1) Like "[0-9]" Then
            sChiffre = sChiffre & Mid$(maChaine, r, 1)
        Else
            ' C'est autre chose qu'un chiffre : ras
        End If
    Next r
A toi d'alimenter ce test avec la chaine de ta cellule

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 104 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Jack
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
3
Merci
"rien ne se passe" : Oui, écrite comme ça, c'est sûr.
Si tu veux que cela modifie ta cellule, il faut lui dire :
ActiveCell.Value = RTrim(ActiveCell.Value)

Chaine --> Int :
ValeurNumérique = CInt(Chaine)

Attention : un Integer ne couvre que l'étendue 16 bits de -32768 à + 32767
Passe aux Long (avec conversion CLng) si tes chiffres doivent être plus grands ET entiers

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 104 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Jack
Messages postés
204
Date d'inscription
vendredi 19 novembre 2004
Dernière intervention
1 novembre 2011
0
Merci
Bonjour, désolé d'avoir posté au mauvais endroit

Merci pour ta réponse jack, seulement lorsque je fais :
RTrim (ActiveCell.Value)

Rien ne se passe, les espaces reste ou ils sont

Pour la récupération du chiffre je vais tester sa de suite
Commenter la réponse de cs_snake57
Messages postés
204
Date d'inscription
vendredi 19 novembre 2004
Dernière intervention
1 novembre 2011
0
Merci
Je viens de tester la boucle pour récupérer les chiffres, sa fonctionne bien. Mais le résultat est dans un string. Il me le faudrait dans un Int c'est possible?
Commenter la réponse de cs_snake57
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
0
Merci
ou encore
maCellule.Value = Val(monTexte)
si la destination est directement une cellule.
Commenter la réponse de cs_Jack
Messages postés
204
Date d'inscription
vendredi 19 novembre 2004
Dernière intervention
1 novembre 2011
0
Merci
Merci beaucoup pour tous ca.
Ca fonctionne ;)
Commenter la réponse de cs_snake57

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.