Bonjour,
C'est un sujet récurrent mais je ne parviens pas à résoudre le problème sur ma macro.
Je dispose d'un onglet avec des données sources et un autre onglet dans lequel je veux venir copier certaines informations des données sources.
Le champ commun entre les deux onglets est une référence opération.
Je viens récupérer des dates mais au moment des les inscrire dans l'onglet résultat les jours et les mois sont inversé. Pourriez vous 'maider?

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
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
Sub Macro1()
 
nb_lignes_Operation_Req = Application.WorksheetFunction.CountA(Sheets("projects").Range("$E:$E"))
nb_lignes_Operation_Res = Application.WorksheetFunction.CountA(Sheets("Feuil1").Range("$A:$A"))
 
'Selection de la feuille avec les résultats de la requete
Sheets("projects").Select
 
'Déclaration des tables de la requete
Dim TabRefOperation()
Dim TabStadeOperation()
Dim TabDateChgtStade()
 
TabRefOperation() = Range("A2:A" & nb_lignes_Operation_Req).Value
TabStadeOperation() = Range("I2:I" & nb_lignes_Operation_Req).Value
TabDateChgtStade() = Range("T2:T" & nb_lignes_Operation_Req).Value
 
'Selection de la feuille  sur laquelle on va écrire les résultats
Sheets("Feuil1").Select
 
'Déclaration des tables résultats
Dim TabRefOperation_Res()
Dim TabStadeOperation_Res()
Dim TabPassStade1_1_Res()
Dim TabPassStade2_Res()
Dim TabPassStade3_Res()
Dim TabPassStade4_Res()
Dim TabPassStade4_1_Res()
Dim TabPassStade4_2_Res()
Dim TabPassStade4_5_Res()
Dim TabPassStade4_9_Res()
 
 
TabRefOperation_Res() = Range("A2:A" & nb_lignes_Operation_Res).Value
TabStadeOperation_Res() = Range("B2:B" & nb_lignes_Operation_Res).Value
TabPassStade1_1_Res() = Range("C2:C" & nb_lignes_Operation_Res).Value
TabPassStade2_Res() = Range("D2:D" & nb_lignes_Operation_Res).Value
TabPassStade3_Res() = Range("E2:E" & nb_lignes_Operation_Res).Value
TabPassStade4_Res() = Range("F2:F" & nb_lignes_Operation_Res).Value
TabPassStade4_1_Res() = Range("G2:G" & nb_lignes_Operation_Res).Value
TabPassStade4_2_Res() = Range("H2:H" & nb_lignes_Operation_Res).Value
TabPassStade4_5_Res() = Range("I2:I" & nb_lignes_Operation_Res).Value
TabPassStade4_9_Res() = Range("J2:J" & nb_lignes_Operation_Res).Value
 
 
'Traitement
'For i = 1 To nb_lignes_Operation_Req - 1
For i = 78 To 79
    'For j = 1 To nb_lignes_Operation_Res - 1
    For j = 78 To 79
        If TabRefOperation(i, 1) = TabRefOperation_Res(j, 1) Then
            If TabStadeOperation(i, 1) = "Stade 1.1 Attente de finalisation" Then
                TabRefOperation_Res(j, 1) = TabRefOperation(i, 1)
                TabStadeOperation_Res(j, 1) = TabStadeOperation(i, 1)
                TabPassStade1_1_Res(j, 1) = TabDateChgtStade(i, 1)
            ElseIf TabStadeOperation(i, 1) = "Stade 2 : Simulation convertie en chantier / Chantier déclaré" Then
                TabRefOperation_Res(j, 1) = TabRefOperation(i, 1)
                TabStadeOperation_Res(j, 1) = TabStadeOperation(i, 1)
                TabPassStade2_Res(j, 1) = TabDateChgtStade(i, 1)
            ElseIf TabStadeOperation(i, 1) = "Stade 3 : Offre signée / Travaux à venir ou en cours" Then
                TabRefOperation_Res(j, 1) = TabRefOperation(i, 1)
                TabStadeOperation_Res(j, 1) = TabStadeOperation(i, 1)
                TabPassStade3_Res(j, 1) = TabDateChgtStade(i, 1)
            ElseIf TabStadeOperation(i, 1) = "Stade 4 : Travaux réalisés / Premier contrôle en cours" Then
                TabRefOperation_Res(j, 1) = TabRefOperation(i, 1)
                TabStadeOperation_Res(j, 1) = TabStadeOperation(i, 1)
                TabPassStade4_Res(j, 1) = TabDateChgtStade(i, 1)
            ElseIf TabStadeOperation(i, 1) = "Stade 4.1 : Dossier incomplet / Anomalie" Then
                TabRefOperation_Res(j, 1) = TabRefOperation(i, 1)
                TabStadeOperation_Res(j, 1) = TabStadeOperation(i, 1)
                TabPassStade4_1_Res(j, 1) = TabDateChgtStade(i, 1)
            ElseIf TabStadeOperation(i, 1) = "Stade 4.2 : Deuxième contrôle en cours" Then
                TabRefOperation_Res(j, 1) = TabRefOperation(i, 1)
                TabStadeOperation_Res(j, 1) = TabStadeOperation(i, 1)
                TabPassStade4_2_Res(j, 1) = TabDateChgtStade(i, 1)
            ElseIf TabStadeOperation(i, 1) = "Stade 4.5 : Contrôles terminés" Then
                TabRefOperation_Res(j, 1) = TabRefOperation(i, 1)
                TabStadeOperation_Res(j, 1) = TabStadeOperation(i, 1)
                TabPassStade4_5_Res(j, 1) = TabDateChgtStade(i, 1)
            ElseIf TabStadeOperation(i, 1) = "Stade 4.9 : Dossier export ODICEE" Then
                TabRefOperation_Res(j, 1) = TabRefOperation(i, 1)
                TabStadeOperation_Res(j, 1) = TabStadeOperation(i, 1)
                TabPassStade4_9_Res(j, 1) = TabDateChgtStade(i, 1)
            End If
        End If
    Next
Next
 
Sheets("Feuil1").Range("A2:A" & nb_lignes_Operation_Res).Value = TabRefOperation_Res
Sheets("Feuil1").Range("B2:B" & nb_lignes_Operation_Res).Value = TabStadeOperation_Res
Sheets("Feuil1").Range("C2:C" & nb_lignes_Operation_Res).Value = TabPassStade1_1_Res
Sheets("Feuil1").Range("D2:D" & nb_lignes_Operation_Res).Value = TabPassStade2_Res
Sheets("Feuil1").Range("E2:E" & nb_lignes_Operation_Res).Value = TabPassStade3_Res
Sheets("Feuil1").Range("F2:F" & nb_lignes_Operation_Res).Value = TabPassStade4_Res
Sheets("Feuil1").Range("G2:G" & nb_lignes_Operation_Res).Value = TabPassStade4_1_Res
Sheets("Feuil1").Range("H2:H" & nb_lignes_Operation_Res).Value = TabPassStade4_2_Res
Sheets("Feuil1").Range("I2:I" & nb_lignes_Operation_Res).Value = TabPassStade4_5_Res
Sheets("Feuil1").Range("J2:J" & nb_lignes_Operation_Res).Value = TabPassStade4_9_Res
 
End Sub