Consolidation de fichiers excel calcul du nombre total de lignes

Fermé
lati92 - 28 févr. 2020 à 16:24
 lati92 - 28 févr. 2020 à 17:05
Bonjour,

j'ai fais une consolidation de 4 classeurs excel vers un classeur excel SYNTHESE via une macro. Celle-ci fonctionne mais j'aimerai ajouter un code VBA pour calculer le nombre total de lignes du classeur SYNTHESE et de s'assurer d'avoir le même résultat lorsque je fais la somme des lignes de tous les fichiers (en code vba). J'aurais du coup de nouvelles variables à ajouter...
Merci d'avance

voici la macro entière (sans le calcul du total de lignes):
Sub Macro1()

'Déclaration des variables
Dim i As Integer
Dim j As Integer
Dim DerniereLigne As Integer
Dim DerniereLigneSynthese As Integer
Dim nbfichiers As Integer

'Stoppe l'actualisation de l'écran. Cela sert à masquer les actions de la macro
Application.ScreenUpdating = False
EffaceDonnees

'Boucle permettant de lire toutes les feuilles à consolider

'Indique le nombre de fichiers à consolider
nbfichiers = 4


For j = 1 To nbfichiers


'Aix Marseille

'Sélectionne la feuille où se trouvent les données
Sheets("Aix Marseille_final").Select

'récupère les lignes jusqu'à la dernière ligne non vide
DerniereLigne = Range("A" & Rows.Count).End(xlUp).Row
Range("A2:BD" & DerniereLigne).Select
Selection.Copy

'aller sur la feuille SYNTHESE
Sheets("SYNTHESE").Select

'passe à la nouvelle ligne vide pour copier le reste des autres classeurs
DerniereLigneSynthese = Range("A" & Rows.Count).End(xlUp).Row + 1
Cells(DerniereLigneSynthese, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False


'Lyon

'Sélectionne la feuille où se trouvent les données
Sheets("Lyon_final").Select

'récupère les lignes jusqu'à la dernière ligne non vide
DerniereLigne = Range("A" & Rows.Count).End(xlUp).Row
Range("A2:BD" & DerniereLigne).Select
Selection.Copy
'aller sur la feuille SYNTHESE
Sheets("SYNTHESE").Select

'passe à la nouvelle ligne vide pour copier le reste des autres classeurs

DerniereLigneSynthese = Range("A" & Rows.Count).End(xlUp).Row + 1
Cells(DerniereLigneSynthese, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False


'Nantes


'Sélectionne la feuille où se trouvent les données
Sheets("Nantes_final").Select

'récupère les lignes jusqu'à la dernière ligne non vide
DerniereLigne = Range("A" & Rows.Count).End(xlUp).Row
Range("A2:BD" & DerniereLigne).Select
Selection.Copy

'aller sur la feuille SYNTHESE
Sheets("SYNTHESE").Select

'passe à la nouvelle ligne vide pour copier le reste des autres classeurs
DerniereLigneSynthese = Range("A" & Rows.Count).End(xlUp).Row + 1
Cells(DerniereLigneSynthese, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False



'Toulouse

'Sélectionne la feuille où se trouvent les données
Sheets("Toulouse_final").Select

'récupère les lignes jusqu'à la dernière ligne non vide
DerniereLigne = Range("A" & Rows.Count).End(xlUp).Row
Range("A2:BD" & DerniereLigne).Select
Selection.Copy

'aller sur la feuille SYNTHESE
Sheets("SYNTHESE").Select

'passe à la nouvelle ligne vide pour copier le reste des autres classeurs
DerniereLigneSynthese = Range("A" & Rows.Count).End(xlUp).Row + 1
Cells(DerniereLigneSynthese, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False


Next j

Application.ScreenUpdating = True



End Sub




Configuration: Windows / Chrome 75.0.3770.80
A voir également:

1 réponse

j'ai essayé ce code mais il ne fonctionne pas:

'calcul de la somme des lignes de toutes les feuilles des régions

Set TotAixmarseille = Sheets("Aix Marseille_final").Range("A2:BD" & DerniereLigne)
Set TotLyon = Sheets("Lyon_final").Range("A2:BD" & DerniereLigne)
Set TotNantes = Sheets("Nantes_final").Range("A2:BD" & DerniereLigne)
Set TotToulouse = Sheets("Toulouse_final").Range("A2:BD" & DerniereLigne)

SommeFichiers = Application.WorksheetFunction.Sum(TotAixmarseille, TotLyon, TotNantes, TotToulouse)
MsgBox SommeFichiers

'calcul de la somme des lignes de la feuille SYNTHESE

Set TotSynthese = Sheets("SYNTHESE").Range("A2:BD" & DerniereLigneSynthese)
SommeSynthese = Application.WorksheetFunction.Sum(TotSynthese)
MsgBox SommeSynthese
0