Bonjour
Le fichier que tu m’as fourni est correct.
Après adaptation à mon fichier original il fonctionne.
Le classeur en question est composé de 19 Feuilles ,délais d’exécution de la Macro 20 secondes est-ce normal?
Merci de jeter un coup d’oeil si possible.
Bonne fin de journée
Ci-dessous le code de la macro incriminée
Option Explicit
Sub Transfert()
Dim Ws As Worksheet, Wd As Worksheet, Dl%, i%, j% 'Déclaration des variables
Application.ScreenUpdating = False 'Désactive le rafraichissement de l’écran
Range(“B4:E47,G4:L47”).ClearContents 'nettoie la feuille Véhicules
j = 4
Set Wd = Sheets(“Vehicules”)
For Each Ws In Worksheets 'Boucle sur les onglets
'sauf certains onglets
If Ws.Name <> “Vehicules” And Ws.Name <> “Total_semaines” And Ws.Name <> “TCD” And Ws.Name <> “Donnees” Then
Sheets(Ws.Name).Activate 'Active l’onglet
Set Ws = Sheets(Ws.Name)
Dl = Ws.Range(“G” & Rows.Count).End(xlUp).Row 'n° de la dernière ligne non vide de la colonne G
For i = 10 To Dl 'boucle sur les lignes
If Ws.Cells(i, 7).Value = Wd.Cells(j, 6).Value Then
Ws.Activate
Ws.Range(Cells(i, 5), Cells(i, 6)).Copy
Wd.Cells(j, 4).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False 'copie vers la feuille Recap
Ws.Activate
Ws.Cells(i, 1).Copy
Wd.Cells(j, 2).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Ws.Activate
Ws.Cells(i, 3).Copy
Wd.Cells(j, 3).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Ws.Activate
Ws.Cells(i, 8).Copy
Wd.Cells(j, 8).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Ws.Activate
Ws.Cells(i, 11).Copy
Wd.Cells(j, 7).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Ws.Activate
Ws.Range(Cells(i, 25), Cells(i, 28)).Copy
Wd.Cells(j, 9).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
j = j + 1 'ajoute 1 au compteur de ligne feuille Recap
End If
Next i
End If
Next Ws
Sheets(“Vehicules”).Activate
Range(“A1”).Select
Application.ScreenUpdating = True
End Sub