Bonjour,

quasi débutant en VB, je cherche à optimiser cette macro, car j'ai beaucoup de lignes à traiter et pour le moment la macro tourne pendant 1h30.

Mon onglet "Planning" contient mes données que je dois réorganiser pour les mettre sous forme base de données, dans l'onglet "PBD".

Avez vous des idées pour utiliser un copy avec destination directement, sachant que j'ai des conditions sur les copies et sur les destinations.

Vous trouverez ci dessous la macro :

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
Sub transformation_planning_sup_si()
 
Sheets("PLANNING").Activate
DernLigne = Range("C" & Rows.Count).End(xlUp).Row
 
For i = 18 To DernLigne
Sheets("PLANNING").Select
    If Cells(i, 3) <> "" And Cells(i, 8) <> "PLANNING GENERAL" And Cells(i, 8) <> "à définir" Then
        For j = 15 To 365
        Sheets("PLANNING").Select
            If Cells(i, j) <> "" Then
            Range(Cells(i, 3), Cells(i, 14)).Select
            Selection.Copy
            Sheets("PBd").Select
                For k = 2 To 60000
                If Cells(k, 1) = "" Then
                Cells(k, 1).Select
                ActiveSheet.Paste
                Sheets("PLANNING").Select
                Cells(17, j).Select
                ActiveCell.Copy
                Sheets("PBd").Select
                Cells(k, 13).Select
                ActiveSheet.Paste
                k = 60000
                End If
                Next k
            End If
        Next j
    End If
j = 17
Next i
 
Sheets("PBD").Activate
Dernligne2 = Range("C" & Rows.Count).End(xlUp).Row
 
For i = 2 To Dernligne2
 
Sheets("PBd").Select
 
        For j = 7 To 121
 
        If Cells(i, 13).Value = Sheets("jf").Cells(j, 3).Value Then
         Rows(i).Delete
         i = i - 1
 
 
 
    End If
 
Next j
 
Next i
 
End Sub
Merci à vous!