1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| Option Explicit
Public Sub essai_extrac()
Dim derlign As Long
Dim i As Long
Dim j As Byte
Dim lecode As Long
Application.ScreenUpdating = False
With Worksheets(1)
'recherche de la dernière cellule informée de la 1ère colonne
'celle où se situent les valeurs
derlign = .Cells(.Rows.Count, 1).End(xlUp).Row
'balayage de la 1ère ligne jusqu'à la dernière
For i = 1 To derlign
With .Cells(i, 1)
'balayage de tous les caractères de la cellule
For j = 1 To Len(.Value)
'Test si 5 valeurs successives sont numériques
If IsNumeric(Mid(.Value, j, 1)) _
And IsNumeric(Mid(.Value, j + 1, 1)) _
And IsNumeric(Mid(.Value, j + 2, 1)) _
And IsNumeric(Mid(.Value, j + 3, 1)) _
And IsNumeric(Mid(.Value, j + 4, 1)) _
And Not IsNumeric(Mid(.Value, j + 5, 1)) Then
'concaténation des 5 caractères
lecode = Mid(.Value, j, 1) * 10000 + Mid(.Value, j + 1, 1) * 1000 + Mid(.Value, j + 2, 1) * 100 + Mid(.Value, j + 3, 1) * 10 + Mid(.Value, j + 4, 1) * 1
'inscription du code dans la colonne suivante
.Offset(0, 1).Value = lecode
Exit For
End If
Next j
End With
Next i
End With
End Sub |
Partager