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 :
Mais je me retrouve avec des soucis que je n'arrive pas à corriger.
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
Merci d'avance pour vos lumières.
Pierre
Partager