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