Bonjour à tous,
je m'en remets à vous car je ne trouve pas ce que je souhaite ou je n'arrive pas à le mettre en place.
Sur l'exemple suivant, la première colonne est la colonne D et la seconde la colonne E dans mon fichier

F 148
G 51200000
G 62750000
G 51200000
G 64600000
G 51200000
C 1426

ce que je souhaite faire c'est modifier mon fichier d'origine de la façon suivante :

Si dans la colonne j'ai un "F" la nouvelle valeur de la cellule dans la colonne E est :
- si la longueur du contenu de la cellule dans E est de 1 alors : 401000000 & sa valeur d'origine
- si la longueur du contenu de la cellule dans E est de 2 alors : 40100000 & sa valeur d'origine
- si la longueur du contenu de la cellule dans E est de 3 alors : 4010000 & sa valeur d'origine
- si la longueur du contenu de la cellule dans E est de 4 alors : 401000 & sa valeur d'origine
- si la longueur du contenu de la cellule dans E est de 5 alors : 40100 & sa valeur d'origine

Si dans la colonne j'ai un "C" la nouvelle valeur de la cellule dans la colonne E est :
- si la longueur du contenu de la cellule dans E est de 1 alors : 411000000 & sa valeur d'origine
- si la longueur du contenu de la cellule dans E est de 2 alors : 41100000 & sa valeur d'origine
- si la longueur du contenu de la cellule dans E est de 3 alors : 4110000 & sa valeur d'origine
- si la longueur du contenu de la cellule dans E est de 4 alors : 411000 & sa valeur d'origine
- si la longueur du contenu de la cellule dans E est de 5 alors : 41100 & sa valeur d'origine

Si dans la colonne j'ai un "G" la nouvelle valeur de la cellule dans la colonne E est : sa valeur d'origine.

Voila ce que j'ai fait de façon intuitive :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Sub longueurcompte()
Dim A As Range
Dim B As Long
Dim C As Range
Dim E As Range
Dim F As Range
 
B = Range("E" & Rows.Count).End(xlUp).Row 'longueur colonne E
Set C = Range("D1:D" & B) 'colonne D
Set E = Range("E1:E" & B) 'colonne E
 
For Each A In E
    For Each F In C
        If C.Value = "F" Then
            If Len(A) = 1 Then
                A.Value = "401000000" & A.Value
            End If
            If Len(A) = 2 Then
                A.Value = "40100000" & A.Value
            End If
            If Len(A) = 3 Then
                A.Value = "4010000" & A.Value
            End If
            If Len(A) = 4 Then
                A.Value = "401000" & A.Value
            End If
            If Len(A) = 5 Then
                A.Value = "40100" & A.Value
            End If
        End If
 
 
        If C.Value = "C" Then
            If Len(A) = 1 Then
                A.Value = "411000000" & A.Value
            End If
            If Len(A) = 2 Then
                A.Value = "41100000" & A.Value
            End If
            If Len(A) = 3 Then
                A.Value = "4110000" & A.Value
            End If
            If Len(A) = 4 Then
                A.Value = "411000" & A.Value
            End If
            If Len(A) = 5 Then
                A.Value = "41100" & A.Value
            End If
        End If
    Next F
Next A
 
End Sub
Mais je me retrouve avec des soucis que je n'arrive pas à corriger.

Merci d'avance pour vos lumières.

Pierre