Cette vidéo va vous montrer comment réaliser une consolidation de plusieurs feuilles dans un classeur. <br /> <br />Vous trouverez ci-dessous le code VBA complet avec les commentaires : <br /> <br /> <br />'Déclaration des variables au niveau du Module <br /> <br />Dim i As Integer, j As Integer, k As Integer <br />Dim DerniereLigne As Integer <br />Dim LastRowConsolidation As Integer <br /> <br /> <br />'*************************************************** <br />' Procédure permettant d'effacer les données de <br />' la consolidation afin d'éviter les doublons <br />'*************************************************** <br /> <br />Sub EffaceConsolidation() <br /> <br /> 'On se positionne sur la feuille Consolidation <br /> Worksheets("Consolidation").Select <br /> 'On sélectionne la plage correspondante aux données à effacer <br /> Rows("6:1000000").Select <br /> 'On efface le contenu et la mise en forme <br /> Selection.Clear 'ou Selection.delete shift:=xlUp <br /> 'On se repositionne sur le premier enregistrement à copier <br /> Range("A6").Select <br /> <br />End Sub <br /> <br />'**************************************************** <br />' Procédure permettant de réaliser une consolidation <br />' ou synthèse sur autre feuille. <br />'**************************************************** <br /> <br />Sub Consolider() <br /> <br /> 'On désactive le raffraichissement de l'écran (scintillement) <br /> Application.ScreenUpdating = False <br /> 'On appelle la procédure permettant d'effacer les données <br /> EffaceConsolidation <br /> 'On va créer une boucle permettant de lire toutes les feuilles à consolider <br /> 'ici nous avons 12 feuilles => Janvier à Décembre <br /> <br /> For j = 1 To 12 'on parcours les 12 premières feuilles <br /> <br /> 'On sélectionne la première feuille <br /> Sheets(j).Select <br /> 'On se positionne sur la dernière ligne non vide <br /> DerniereLigne = Range("A1000000").End(xlUp).Row <br /> 'On parcours tout le tableau à partir de la ligne pour copier chacune ligne <br /> For i = 6 To DerniereLigne <br /> 'On sélectionne la première feuille <br /> Sheets(j).Select <br /> 'On sélectionner la première ligne <br /> Rows(i).Select <br /> 'On copie la ligne <br /> Selection.Copy <br /> 'Où, sur la feuille consolidation, il faut donc la sélectionner <br /> Sheets("Consolidation").Select <br /> 'Il faut trouver la dernière ligne non vide de la feuille consolidation <br /> LastRowConsolidation = Range("A1000000").End(xlUp).Row + 1 <br /> 'On sélectionne la cellule vide et la première colonne <br /> Cells(LastRowConsolidation, 1).Select <br /> 'Une fois positionné, on colle les données <br /> ActiveSheet.Paste <br /> Application.CutCopyMode = False <br /> <br /> Next i <br /> <br /> Next j <br /> <br /> 'On réactive le raffraichissement de l'écran (scintillement) <br /> Application.ScreenUpdating = True <br /> 'On affiche un message qui prévient que la consolidation est terminée <br /> MsgBox "La consolidation est terminée...", vbOKOnly + vbInformation, "Message" <br /> <br />End Sub