Bonjour,
Voici ce que je souhaiterai que la macro fasse (au moment où j'enregistre le fichier) :
La synthèse se supprime
il faudrait que dans chaque onglet sauf liste et date
De la ligne 10 à la dernière ligne non vide la colonne A (code) vienne se copier dans la colonne C de la feuille synthèse
La colonne B (fournisseur) vienne se copier dans la colonne D de la feuille synthèse etc..
J'ai trouvé cette macro sur le forum mais je n'arrive pas à l'adapter à mon besoin
Pouvez vous m'aider svpp ?
Merci beaucoup
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim OS As Worksheet 'déclare la variable OS (Onglet Synthese)
Dim PLV As Integer 'déclare la variable PLV (Première Ligne Vide)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Application.ScreenUpdating = False 'masque les rafraîchissement d'écran
Set OS = Worksheets("Synthèse") 'définit l'onglet OS
OS.Range("A4:F" & Application.Rows.Count).ClearContents 'efface les anciennes valeurs de l'onglet OS
For Each O In Sheets 'boucle sur tous les onglets du classeur
If O.Name <> OS.Name Then 'condition : si l'onglet de la bouce n'est pas l'onglet OS
PLV = OS.Cells(Application.Rows.Count, "A").End(xlUp).Row + 1 'définit la première ligne vide PLV de la colonne A de l'onglet OS
DL = O.Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée DL de l'onglet de la boucle O
'copie la plage A5:H & DL de l'onglet O et la colle dans le cellule ligne PLV colonne A de l'onglet OS
O.Range("A4:H" & DL).Copy OS.Cells(PLV, "A")
End If 'fin de la condition
Next O 'prochain onglet de la boucle
End Sub