extraire chiffre

gib

XLDnaute Junior
Bonjour le forum
et 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
 

Hervé

XLDnaute Barbatruc
Bonsoir gib, le forum

Gib, faut rester dans le meme post, sinon, ca devient très compliqué pour suivre.

Je te comfirme aussi que tu avais oublié de me parler de ce petit détail de 'puis'.

une macro et une fonction VBA devrait résoudre ton souci :


Sub Bouton1_QuandClic()
Dim tablo As Variant
Dim tablo1 As Variant
Dim c As Range
Dim i As Byte, j As Byte
Dim colonne As Byte

For Each c In Range('a1:a' & Range('a65536').End(xlUp).Row)
colonne = 1
        tablo = Split(c, ',')
       
For i = 0 To UBound(tablo)
               
If InStr(1, tablo(i), 'puis') Then
                        tablo1 = Split(tablo(i), 'puis')
                       
For j = 0 To UBound(tablo1)
                                c.Offset(0, colonne) = numerique(tablo1(j))
                                colonne = colonne + 1
                       
Next j
               
Else
                        c.Offset(0, colonne) = numerique(tablo(i))
                        colonne = colonne + 1
               
End If
       
Next i
Next c
       
End Sub

Public Function numerique(ByVal temp As String) As Long
Dim i As Byte
       
For i = 1 To Len(temp)
               
If IsNumeric(Mid(temp, i, 1)) Then numerique = numerique & Mid(temp, i, 1)
       
Next i
End Function


salut
 

Discussions similaires

Réponses
5
Affichages
700

Statistiques des forums

Discussions
312 337
Messages
2 087 392
Membres
103 536
dernier inscrit
komivi