extraire chiffre

gib

XLDnaute Junior
Bonjour à tous

je plante sur un petit sujet qui doit être certainement très simple pour les spécialistes

j'ai, dans une cellule des ensembles de prénom et de chiffre( sans espace entre les prénoms et les chiffres), ces ensembles sont séparés par des virgules.

exemple: (roland43,alain56,bernard64,lucien78)

et je cherche à extraire uniquement les chiffres pour les positionner chacun dans une cellule et en ligne

cellule A1=43
cellule B1=56
cellule C1=64
cellule D1=78

J'espère avoir été compréhensible et si vous pouvez me donner un coup de main, je vous en remercie par avance

gib
 

lE0nard

XLDnaute Junior
Bonjour le Forum, Gib,

Si les nombres sont toujours composés de deux chiffres, tu peux utiliser la fonction à placer en b1 par exemple : = droite(a1;2)

Si le nombre est composé d'un nombre aléatoire de chiffres, tu peux utiliser la solution proposée parReno dans un autre fil:
DROITE(a1;NBCAR(a1CHERCHE(' ';a1)).
Cette formule te permettra de ne retenir que les données situées à droite de l'espace.

A+
 

andré

XLDnaute Barbatruc
Salut,

Placer la chaîne de caractères en A2 : (roland 43,alain 56,bernard 64,lucien 78)
En A3 : =SUBSTITUE(SUBSTITUE((A2;'(';'');')';'') pour obtenir : roland 43,alain 56,bernard 64,lucien 78
Menu Données / Convertir / Délimité / , / Terminer pour obtenir les quatres sous-ensembles dans les cellules A3 à D3
En A1 : =DROITE(A3;NBCAR(A3)-CHERCHE(' ';A3))
Formule à copier vesr la droite.

Â+
 

Hervé

XLDnaute Barbatruc
Bonjour Gib, léonard, andré.


Une solution macro possible :


Sub Bouton1_QuandClic()
Dim tablo As Variant
Dim colonne As Byte, i As Byte, j As Byte
Dim num As String

colonne = 2

tablo = Split(Range('a1'), ',')

For i = 0 To UBound(tablo)
       
For j = 1 To Len(tablo(i))
               
If IsNumeric(Mid(tablo(i), j, 1)) Then num = num & Mid(tablo(i), j, 1)
       
Next j
       
        Cells(1, colonne) = Val(num)
        colonne = colonne + 1
        num = ''
Next i

End Sub

Donnée en A1 renvoi dans les colonnes suivantes de la meme ligne.

salut
 

gib

XLDnaute Junior
Merci Hervé

ta macro est super

mais j'ai un problème car à la place d'une virgule j'ai 'puis' de manière aléatoire. J'ai oublié de te le mentionner!!

exemple: alain 23, bernard 44 puis roland 56, lucien 63

et avec ta macro pour l'exemple ci dessus j'ai:

B1=23
C1=4456
D1=63

au lieu de
B1=23
C1=44
D1=56
E1=63

et pour finir je souhaiterais appliquer cette macro sur 9 ensembles
situés en
A1
A2
A3
A4
A5
A6
A7
A8
A9

merci hervé si tu peux m'aider

salut gib
 

gib

XLDnaute Junior
Bonsoir Léonard et merci

Ta 1ère formule =droite(a1;2) ne me renvoie que le dernier chiffre?!
Dans ces ensembles les nombres sont effectivement composés de
2 chiffres max.
J'ai oublié de mentionner que la virgule peut être remplacée de manière aléatoire par 'puis'

si tu peux me répondre sur le sujet

merci
gib
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 321
Messages
2 087 265
Membres
103 501
dernier inscrit
talebafia