Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

URGENT

4 réponses
Avatar
azerty
Bonjour,

Je recherche un script en vba pour automatiser ceci :

J'ai une cellule Range("A1").value qui contient ces données :
123***589******58**569**7********0123**2

Je souhaiterai que dans la colonne suivante (B) s'affiche uniquement les
numériques, un par cellule :

Range("B1").value = 123
Range("B2").value = 589
...

Il faudrait automatiser la chose ...

Avez-vous une idée ?

Merci beaucoup !!!

4 réponses

Avatar
michdenis
=SUBSTITUE(A1;"*";"")



"azerty" a écrit dans le message de groupe de discussion :
49807748$0$3497$
Bonjour,

Je recherche un script en vba pour automatiser ceci :

J'ai une cellule Range("A1").value qui contient ces données :
123***589******58**569**7********0123**2

Je souhaiterai que dans la colonne suivante (B) s'affiche uniquement les
numériques, un par cellule :

Range("B1").value = 123
Range("B2").value = 589
...

Il faudrait automatiser la chose ...

Avez-vous une idée ?

Merci beaucoup !!!
Avatar
Pounet95
Bonsoir,

Peut-être ceci ?

Sub zzz()
lig = 1
nb = ""
For i = 1 To Len([A1])
Select Case Mid$([A1], i, 1)
Case 1, 2, 3, 4, 5, 6, 7, 8, 9
nb = nb & Mid$([A1], i, 1)
Case Else
If nb <> "" Then
Cells(lig, 2) = nb
nb = ""
lig = lig + 1
End If
End Select
Next i
End Sub


Pounet95

"azerty" a écrit dans le message de
news:49807748$0$3497$
Bonjour,

Je recherche un script en vba pour automatiser ceci :

J'ai une cellule Range("A1").value qui contient ces données :
123***589******58**569**7********0123**2

Je souhaiterai que dans la colonne suivante (B) s'affiche uniquement les
numériques, un par cellule :

Range("B1").value = 123
Range("B2").value = 589
...

Il faudrait automatiser la chose ...

Avez-vous une idée ?

Merci beaucoup !!!


Avatar
Trirème
Bonsoir
Il y a ça aussi, avec plus de fonctions intégrées :

Sub DecoupeEtTranspose()
'
' Découpe le contenu de la cellule courante en sous-chaines
' et place verticalement ces sous-chaines dans les cellules à droite
'
' Pas de gestion d'erreurs (cellule active vide ou non-texte, destination
' non-vide…)

Dim DECOUP() As String
Dim Taille As Integer
Const Sep = "*"

DECOUP = Split(Application.Trim(Replace(ActiveCell, Sep, " ")))
Taille = UBound(DECOUP)
ActiveCell.Offset(, 1).Resize(Taille + 1) = Application.Transpose(DECOUP)

End Sub

HS : sujet pas vraiment explicite

Trirème

azerty a écrit :
Bonjour,

Je recherche un script en vba pour automatiser ceci :

J'ai une cellule Range("A1").value qui contient ces données :
123***589******58**569**7********0123**2

Je souhaiterai que dans la colonne suivante (B) s'affiche uniquement les
numériques, un par cellule :

Range("B1").value = 123
Range("B2").value = 589
...

Il faudrait automatiser la chose ...

Avez-vous une idée ?

Merci beaucoup !!!


Avatar
azerty
Merci beaucoup, ça marche très bien.

Où as-tu trouvé ce genre de référence ?
Si jamais j'avais à coder encore sur des chaînes ?






Trirème a écrit :
Bonsoir
Il y a ça aussi, avec plus de fonctions intégrées :

Sub DecoupeEtTranspose()
'
' Découpe le contenu de la cellule courante en sous-chaines
' et place verticalement ces sous-chaines dans les cellules à droite
'
' Pas de gestion d'erreurs (cellule active vide ou non-texte, destination
' non-vide…)

Dim DECOUP() As String
Dim Taille As Integer
Const Sep = "*"

DECOUP = Split(Application.Trim(Replace(ActiveCell, Sep, " ")))
Taille = UBound(DECOUP)
ActiveCell.Offset(, 1).Resize(Taille + 1) =
Application.Transpose(DECOUP)

End Sub

HS : sujet pas vraiment explicite

Trirème

azerty a écrit :
Bonjour,

Je recherche un script en vba pour automatiser ceci :

J'ai une cellule Range("A1").value qui contient ces données :
123***589******58**569**7********0123**2

Je souhaiterai que dans la colonne suivante (B) s'affiche uniquement
les numériques, un par cellule :

Range("B1").value = 123
Range("B2").value = 589
...

Il faudrait automatiser la chose ...

Avez-vous une idée ?

Merci beaucoup !!!