Bonjour,
je voudrai optimiser une macro assez chronophage mais sans en avoir les compétences, donc je me retourne vers vous.
Cette macro (un grand merci à AVSInfoGest ) est chargée de copier et fusionner dans une feuille de synthèse les lignes non vides de 8 tableaux (de 1200 lignes max) situés sur 8 feuilles du classeur. Le code est le suivant :
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
Private Sub CommandButton2_Click()
 
    Dim Lig1 As Integer         'Lig1 est un entier
    Dim Col1 As Integer         'Col1 est un entier
    Dim MaFeuille As Worksheet  'MaFeuille est une feuille
    Dim Ligne As Integer        'Ligne est un entier
 
    Application.ScreenUpdating = False
    Feuil1.Range("A3:N6002").Cells.Clear
 
    Lig1 = 3
        For Each MaFeuille In Sheets  
        If MaFeuille.Name Like "Act*" Then 'les feuilles concernées portent toutes un nom commançant par "Activités de..."
            With MaFeuille
                 For Ligne = 3 To .UsedRange.Row + .UsedRange.Rows.Count 'pour info, en mettant ...=3 To 1200, le temps d'exécution est le même
                   If .Cells(Ligne, 2) <> "" Then
                         For Col1 = 1 To 14 'chaque tableau à 14 colonnes
                             Feuil1.Cells(Lig1, Col1).Value = .Cells(Ligne, Col1).Value
                         Next
                         Lig1 = Lig1 + 1
                     End If
                 Next
            End With
          End If
    Next
 
    Application.ScreenUpdating = True 
End Sub
j'ai l'impression que la recherche ligne par ligne en est la raison et si quelqu'un à une solution, je suis preneur.
Merci