Extraire que les chiffres d'une cellule

jozerebel

XLDnaute Occasionnel
Bonjour à tous!

Existe-t-il une façon par formule ou VBA pour extraire que les chiffres d'une cellule?

je m'explique, j'ai dans une colonne des n° de sécu que différentes personnes saisissent. Sauf qu'elles en ont saisi avec des points, avec des virgules, avec des tirets...

Je voudrais reprendre dans une colonne les bons n° de SS sans avoir à passer par Edition rechercher et remplacer.

Une idée?

merci.
 

kllmoon

XLDnaute Occasionnel
Re : Extraire que les chiffres d'une cellule

si par exemple en colonne A

Code:
Private Sub CommandButton1_Click()
Dim c As Range
Dim i As Integer, x As String, n As String
Range("A1:A100").Select 'change le range pour ce que tu désire
For Each c In Selection
For i = 1 To Len(c)
x = Mid(c, i, 1)
If IsNumeric(x) Then n = n & x
Next i
c.Value = n
n = ""
Next c
End Sub
 

jozerebel

XLDnaute Occasionnel
Re : Extraire que les chiffres d'une cellule

je connais les sub mais pas les private sub... Comment faire pour l'exécuter?

Autre petite chose.

Peut-on afficher le résultat dans une autre colonne pour ne pas écraser l'ancienne saisie?

D'avance merci pour ton aide.
 

kllmoon

XLDnaute Occasionnel
Re : Extraire que les chiffres d'une cellule

Ce code s'insère à un bouton et écrase les anciennes données. Si tu veux sur une nouvelle feuille, la forumule suivante te placera le tout en ordre sur Feuil2

Code:
Private Sub CommandButton1_Click()
Dim c As Range
Dim i As Integer, x As String, n As String
b = 1
Range("A1:A5").Select 'change le range pour ce que tu désire
For Each c In Selection
For i = 1 To Len(c)
x = Mid(c, i, 1)
If IsNumeric(x) Then n = n & x
Next i
 If n <> "" Then
Sheets("Feuil2").Range("A" & b).Value = n
n = ""
b = b + 1
End If
Next c
End Sub
 

jozerebel

XLDnaute Occasionnel
Re : Extraire que les chiffres d'une cellule

sachant que j'ai une entête avant les cellules où je dois copier le résultat...

Comment faire pour conserver cette entête et faire en sorte que le résultat de mon premier numéro de sécu ne vienne pas écraser mon entête, mais se mette juste en face de l'ancien numéro...?

Et ne prendre que les 13 premiers chiffres.

Cordialement.
 

kllmoon

XLDnaute Occasionnel
Re : Extraire que les chiffres d'une cellule

Ce serait amusant de préciser tout tes critères à l'avance, ça évite de répéter...

code pour faire le tri à mettre sous un bouton si tu veux
Code:
Private Sub CommandButton1_Click()
Dim c As Range
Dim i As Integer, x As String, n As String
b = 2
Range("A1:A5").Select 'change le range pour ce que tu désire
For Each c In Selection
For i = 1 To Len(c)
x = Mid(c, i, 1)
If IsNumeric(x) Then n = n & x
Next i
 If n <> "" Then
Sheets("Feuil2").Range("a" & b).Value = n
n = ""
b = b + 1
End If
Next c
Call sort
End Sub

Il débutera la série en A2, ton b définit la ligne alors change le à ta guise.

à mettre dans un module
Code:
Sub sort()
For n = Sheets("Feuil2").Range("a65536").End(xlUp).Row To 1 Step -1
var2 = Sheets("Feuil2").Range("A" & n).Value
Var = Left(var2, 13)
Sheets("Feuil2").Range("a" & n).Value = Var
Next
End Sub

Ceci ne gardera que les 13 premiers chiffres de ta série, tu dois par contre mettre tes cellules en format nombre SANS décimales.
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote