est-il possible qu'il y ait des bugs dans le vb editor d'excel ??
parce que la je vois pas du tout pourquoi mon code ne marche pas...
j'ai deux fois le meme code sur 2 scripts et ces deux scripts ne font pas la meme chose c'est pas normal...n'est-ca pas ?
aidez-moi, si ça vous intéresse je mets le code.
Donc ca c'est la premiere partie qui marche impec.Code:
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143 Dim i Dim imax Dim j Dim jmax Dim n Dim nmax Dim k Dim m Dim tab1_csv() Dim tab1_report() Dim tab1_report_temp() Public Sub traitement_csv1() 'récupération des données du fichier csv jusqu'à R49 j = 5 k = 1 While Workbooks("COUR_LOCAL_" & DateReport & ".csv").Worksheets("COUR_LOCAL_" & DateReport).Cells(j + 1, 1).Rows.Value <> "Total_LM" 'boucle déterminant le nombre de ligne dans le csv If Workbooks("COUR_LOCAL_" & DateReport & ".csv").Worksheets("COUR_LOCAL_" & DateReport).Cells(j + 1, 1).Rows.Value <= "R49" Then ReDim Preserve tab1_csv(2, k) tab1_csv(0, k - 1) = Workbooks("COUR_LOCAL_" & DateReport & ".csv").Worksheets("COUR_LOCAL_" & DateReport).Cells(j + 1, 1).Text tab1_csv(1, k - 1) = Workbooks("COUR_LOCAL_" & DateReport & ".csv").Worksheets("COUR_LOCAL_" & DateReport).Cells(j + 1, 2).Text k = k + 1 End If j = j + 1 Wend jmax = k - 2 Workbooks("COUR_LOCAL_" & DateReport & ".csv").Close savechanges:=False End Sub Public Sub traitement_report1() 'les données du reporting (libellés et valeurs) sont mises dans tableau tab1_report i = 4 k = 1 While Workbooks("Reporting_Siebel.xls").Worksheets("LocalMasse1").Cells(1, i + 1).Value <> "" ReDim Preserve tab1_report(2, k) tab1_report(0, k - 1) = Workbooks("Reporting_Siebel.xls").Worksheets("LocalMasse1").Cells(1, i + 1).Text tab1_report(1, k - 1) = 0 i = i + 1 k = k + 1 Wend imax = k - 2 End Sub Public Sub traitement1_report_temporaire() '-->gestion du tableau tab1_report_temp pour ajouter les colonnes dans le xls n = 4 k = 1 While Workbooks("Reporting_Siebel.xls").Worksheets("LocalMasse1").Cells(1, n + 1).Value <> "" ReDim Preserve tab1_report_temp(k) tab1_report_temp(k - 1) = Workbooks("Reporting_Siebel.xls").Worksheets("LocalMasse1").Cells(1, n + 1).Text n = n + 1 k = k + 1 Wend nmax = k - 2 End Sub Sub comparaison_csv1() 'comparaison entre tab1_report et tab1_csv m = 0 For j = 0 To jmax present = False For i = 0 To imax If (tab1_csv(0, j) = tab1_report(0, i)) Then present = True indice_present = i End If Next i If present = True Then 'si on a deja les libellés dans le tab_report on ajoute les valeurs correspondantes du csv tab1_report(1, indice_present) = tab1_csv(1, j) Else 'sinon on ajoute une colonne à la fin de tab1_report en ajoutant libellé et valeur ReDim Preserve tab1_report(2, imax + 2) tab1_report(0, imax + 1) = tab1_csv(0, j) tab1_report(1, imax + 1) = tab1_csv(1, j) imax = imax + 1 End If Next j End Sub Sub tri1() 'tri du tableau tab_report1 = tab1_csv + tab1_report Dim ok Dim tampon Dim tampon2 Do ok = True For m = 0 To imax - 1 If (tab1_report(0, m) > tab1_report(0, m + 1)) Then ok = False tampon = tab1_report(0, m) tampon2 = tab1_report(1, m) tab1_report(0, m) = tab1_report(0, m + 1) tab1_report(1, m) = tab1_report(1, m + 1) tab1_report(0, m + 1) = tampon tab1_report(1, m + 1) = tampon2 End If Next m Loop While ok = False End Sub Sub insertion_colonne_lm1() Dim p, m, Indice_Est_present, fin_report, fin_report_temp, nb_colonne_ajout As Integer Dim Est_present As Boolean Set zoneA = Workbooks("Reporting_Siebel.xls").Worksheets("LocalMasse1").Range("A1").CurrentRegion nb_colonne_ajout = 0 fin_report = imax fin_report_temp = nmax Indice_Est_present = 3 'A modifier en fonction du reporting =3 attention!! For m = 0 To fin_report For p = 0 To fin_report_temp If (tab1_report(0, m) = tab1_report_temp(p)) Then Est_present = True Indice_Est_present = p 'afficher la valeur libellés Workbooks("Reporting_Siebel.xls").Worksheets("LocalMasse1").Cells(zoneA.Rows.Count, m + 5) = tab1_report(1, m) Exit For Else Est_present = False End If Next p If (Est_present = False) Then 'Ajouter la colonne Workbooks("Reporting_Siebel.xls").Worksheets("LocalMasse1").Activate Columns(Indice_Est_present + 2 + nb_colonne_ajout).Select Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromRightOrBelow nb_colonne_ajout = nb_colonne_ajout + 1 'Afficher le nom du courrier & le nombre de courrier Workbooks("Reporting_Siebel.xls").Worksheets("LocalMasse1").Cells(1, m + 1) = tab1_report(0, m) Workbooks("Reporting_Siebel.xls").Worksheets("LocalMasse1").Cells(zoneA.Rows.Count, m + 1) = tab1_report(1, m) End If Next m End Sub
et ca c'est le code qui est censé faire la meme chose mais qui fait pas la meme chose.. a votre bon coeur m'sieur dame...Code:
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143 Dim i Dim imax Dim j Dim jmax Dim n Dim nmax Dim k Dim m Dim tab2_csv() Dim tab2_report() Dim tab2_report_temp() Public Sub traitement_csv2() 'récupération des données du fichier csv jusqu'à "Total_LM" j = 5 k = 1 While Workbooks("COUR_LOCAL_" & DateReport & ".csv").Worksheets("COUR_LOCAL_" & DateReport).Cells(j + 1, 1).Rows.Value <> "Total_LM" 'boucle jusqu'à la fin du csv If Workbooks("COUR_LOCAL_" & DateReport & ".csv").Worksheets("COUR_LOCAL_" & DateReport).Cells(j + 1, 1).Rows.Value > "R49" Then ReDim Preserve tab2_csv(2, k) tab2_csv(0, k - 1) = Workbooks("COUR_LOCAL_" & DateReport & ".csv").Worksheets("COUR_LOCAL_" & DateReport).Cells(j + 1, 1).Text tab2_csv(1, k - 1) = Workbooks("COUR_LOCAL_" & DateReport & ".csv").Worksheets("COUR_LOCAL_" & DateReport).Cells(j + 1, 2).Text k = k + 1 End If j = j + 1 Wend jmax = k - 2 Workbooks("COUR_LOCAL_" & DateReport & ".csv").Close savechanges:=False End Sub Public Sub traitement_report2() 'les données du reporting (libellés et valeurs) sont mises dans tableau tab2_report i = 1 k = 1 While Workbooks("Reporting_Siebel.xls").Worksheets("LocalMasse2").Cells(1, i + 1).Value <> "w" ReDim Preserve tab2_report(2, k) tab2_report(0, k - 1) = Workbooks("Reporting_Siebel.xls").Worksheets("LocalMasse2").Cells(1, i + 1).Text tab2_report(1, k - 1) = "0" i = i + 1 k = k + 1 Wend imax = k - 2 End Sub Public Sub traitement2_report_temporaire() '-->gestion du tableau tab2_report_temp afin d'ajouter les colonnes dans le xls n = 1 k = 1 While Workbooks("Reporting_Siebel.xls").Worksheets("LocalMasse2").Cells(1, n + 1).Value <> "w" ReDim Preserve tab2_report_temp(k) tab2_report_temp(k - 1) = Workbooks("Reporting_Siebel.xls").Worksheets("LocalMasse2").Cells(1, n + 1).Text n = n + 1 k = k + 1 Wend nmax = k - 2 End Sub Sub comparaison_csv2() 'comparaison entre tab2_report et tab2_csv For j = 0 To jmax present = False For i = 0 To imax If (tab2_csv(0, j) = tab2_report(0, i)) Then present = True indice_present = i End If Next i If present = True Then 'si on a deja les libellés dans le tab_report on lui ajoute les valeurs correspondantes du csv tab2_report(1, indice_present) = tab2_csv(1, j) Else 'sinon on ajoute une colonne à la fin de tab_report en appliquant libellé et valeur ReDim Preserve tab2_report(2, imax + 2) tab2_report(0, imax + 1) = tab2_csv(0, j) tab2_report(1, imax + 1) = tab2_csv(1, j) imax = imax + 1 End If Next j End Sub Sub tri2() 'tri du tableau tab_report2 = tab2_csv + tab2_report Dim ok Dim tampon Dim tampon2 Do ok = True For m = 0 To imax - 1 If (tab2_report(0, m) > tab2_report(0, m + 1)) Then ok = False tampon = tab2_report(0, m) tampon2 = tab2_report(1, m) tab2_report(0, m) = tab2_report(0, m + 1) tab2_report(1, m) = tab2_report(1, m + 1) tab2_report(0, m + 1) = tampon tab2_report(1, m + 1) = tampon2 End If Next m Loop While ok = False End Sub Sub insertion_colonne_lm2() Dim p, m, Indice_Est_present, fin_report, fin_report_temp, nb_colonne_ajout As Integer Dim Est_present As Boolean Set zoneB = Workbooks("Reporting_Siebel.xls").Worksheets("LocalMasse2").Range("A2").CurrentRegion nb_colonne_ajout = 0 fin_report = imax fin_report_temp = nmax Indice_Est_present = 0 For m = 0 To fin_report For p = 0 To fin_report_temp If (tab2_report(0, m) = tab2_report_temp(p)) Then Est_present = True Indice_Est_present = p 'afficher le nombre de courrier 'MsgBox tab2_report(1, m) Workbooks("Reporting_Siebel.xls").Worksheets("LocalMasse2").Cells(zoneB.Rows.Count, m + 2) = tab2_report(1, m) Exit For Else Est_present = False End If Next p If (Est_present = False) Then 'Ajouter la colonne Workbooks("Reporting_Siebel.xls").Worksheets("LocalMasse2").Activate Columns(Indice_Est_present + 2 + nb_colonne_ajout).Select Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromRightOrBelow nb_colonne_ajout = nb_colonne_ajout + 1 'Afficher le nom du courrier & le nombre de courrier 'MsgBox tab2_report(0, m) & tab2_report(1, m) Workbooks("Reporting_Siebel.xls").Worksheets("LocalMasse2").Cells(1, m + 2) = tab2_report(0, m) Workbooks("Reporting_Siebel.xls").Worksheets("LocalMasse2").Cells(zoneB.Rows.Count, m + 2) = tab2_report(1, m) End If Next m End Sub