BUG Code
Bonjour à tous
j'ai un bug au niveau du code et je ne sais pas comment faire
Merci de corriger l'erreur
Option Explicit
Option Private Module
Public Sub MergedWorksheets()
' declaration des variables
Dim ws As Worksheet, wsData As Worksheet
Dim lo As ListObject
Dim lRow As Long
' optimisation code
Application.ScreenUpdating = False
' initialisation feuille Résumé
Set wsData = ActiveWorkbook.Worksheets("Résumé")
With wsData
' initialisation tableau (tblRésumé - voir gestionnaire de noms)
' pas nommé explicitement, car on a 1 tableau dans la feuille
Set lo = .ListObjects(1)
With lo
' si le tableau comporte des données, on efface les données
' les formules et les formats de cellules sont conservées!!!
If Not .DataBodyRange Is Nothing Then .DataBodyRange.Delete
End With
' on réinitialise la variable tableau (on vide la mémoire)
Set lo = Nothing
End With
' ligne départ pour la copie des tableaux
lRow = 2
' pour chaque feuille du classeur actif
For Each ws In ActiveWorkbook.Worksheets
' si feuille différente de Resume et Accueil
If ws.Name <> wsData.Name And ws.Name <> "Accueil" Then
' pour chaque tableau dans la feuille
For Each lo In ws.ListObjects
' on copie le tableau sans les en-têtes
' sans la dernière colonne (taux de réalisation)
lo.DataBodyRange.Resize(, lo.ListColumns.Count - 1).Copy
With wsData
' on colle les valeurs dans la feuille Resume
' (pas le format des cellules, et il n'y a pas de formules)
.Cells(lRow, 1).PasteSpecial xlPasteValues
' on redefinit la prochaine ligne de recopie pour la prochaine feuille
lRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
End With
Application.CutCopyMode = False
Next lo
End If
Next ws
wsData.Activate
MsgBox "Mise à jour effectuée", vbOKOnly + vbInformation, "Consolidation annuelle"
Set wsData = Nothing
End Sub
Bonsoir,
Et si tu modifiais lRow, le numéro de ligne de recopie.
Soit 5 par exemple, ald 2. Que se passe-t-il ?
' ligne départ pour la copie des tableaux
lRow = 2
Le code a été commenté. Il faut peut-être lire les commentaires.
Cdlt.