Automatiser les processus de consolidation des données, Excel VBA

Pour automatiser le processus de consolidation des données dans Excel à l’aide de VBA (Visual Basic for Applications), nous allons créer un script VBA détaillé. Ce code va vous permettre de collecter des données provenant de plusieurs feuilles de calcul ou fichiers Excel, de les fusionner et de les organiser dans une feuille de consolidation principale.

Objectifs du code :

  1. Ouvrir plusieurs fichiers Excel ou plusieurs feuilles dans un même classeur.
  2. Consolider les données de ces fichiers/feuilles dans une seule feuille.
  3. Effectuer des opérations comme l’ajout des données, la suppression des doublons et la mise en forme.

Scénario :

  • Nous avons plusieurs fichiers Excel (ou feuilles dans un même fichier) contenant des données similaires dans la même structure.
  • Le but est de consolider ces données dans une feuille principale appelée Consolidation.

Étapes générales :

  1. Ouvrir les fichiers sources.
  2. Parcourir chaque fichier ou chaque feuille pour récupérer les données.
  3. Copier ces données dans une feuille de consolidation.
  4. Supprimer les doublons (si nécessaire).
  5. Formater la feuille de consolidation (ajouter des titres de colonnes, appliquer un formatage conditionnel, etc.).

Exemple de Code VBA :

Sub ConsoliderDonnees()
    ' Déclaration des variables
    Dim wsConsolidation As Worksheet
    Dim wbSource As Workbook
    Dim wsSource As Worksheet
    Dim dernLigneConsol As Long
    Dim dernLigneSource As Long
    Dim fichierSource As String
    Dim cheminSource As String
    Dim i As Integer
   ' Créer ou activer la feuille de consolidation
    On Error Resume Next
    Set wsConsolidation = ThisWorkbook.Sheets("Consolidation")
    On Error GoTo 0
    If wsConsolidation Is Nothing Then
        Set wsConsolidation = ThisWorkbook.Sheets.Add
        wsConsolidation.Name = "Consolidation"
    End If
    ' Effacer les anciennes données dans la feuille de consolidation
    wsConsolidation.Cells.Clear
    ' Ajouter les titres de colonnes (personnalisez en fonction de vos besoins)
    wsConsolidation.Cells(1, 1).Value = "Nom"
    wsConsolidation.Cells(1, 2).Value = "Prénom"
    wsConsolidation.Cells(1, 3).Value = "Age"
    wsConsolidation.Cells(1, 4).Value = "Date d'Inscription"
    ' Définir le chemin des fichiers sources (ajustez ce chemin selon votre configuration)
    cheminSource = "C:\Users\VotreNom\Documents\Excel\Sources\"
    ' Liste des fichiers à consolider
    ' (Si vous avez plusieurs fichiers à consolider, listez-les ici)
    fichiers = Array("Fichier1.xlsx", "Fichier2.xlsx", "Fichier3.xlsx")
    ' Boucle sur chaque fichier
    For i = LBound(fichiers) To UBound(fichiers)
        ' Ouvrir le fichier source
        fichierSource = cheminSource & fichiers(i)
        Set wbSource = Workbooks.Open(fichierSource)
        ' Boucle sur chaque feuille du fichier
        For Each wsSource In wbSource.Sheets
             ' Trouver la dernière ligne utilisée dans la feuille source
            dernLigneSource = wsSource.Cells(wsSource.Rows.Count, "A").End(xlUp).Row
            ' Trouver la dernière ligne vide dans la feuille de consolidation
            dernLigneConsol = wsConsolidation.Cells(wsConsolidation.Rows.Count, "A").End(xlUp).Row + 1
            ' Copier les données de la feuille source vers la feuille de consolidation
            wsSource.Range("A2:D" & dernLigneSource).Copy wsConsolidation.Range("A" & dernLigneConsol)
        Next wsSource
      ' Fermer le fichier source sans enregistrer
        wbSource.Close False
    Next i
    ' Supprimer les doublons dans la feuille de consolidation
    wsConsolidation.Range("A1:D" & wsConsolidation.Cells(wsConsolidation.Rows.Count, "A").End(xlUp).Row).RemoveDuplicates Columns:=Array(1, 2, 3), Header:=xlYes
    ' Appliquer un formatage à la feuille de consolidation (facultatif)
    wsConsolidation.Columns.AutoFit
    wsConsolidation.Rows(1).Font.Bold = True
    wsConsolidation.Rows(1).HorizontalAlignment = xlCenter
    ' Message pour indiquer que la consolidation est terminée
    MsgBox "La consolidation des données est terminée.", vbInformation
End Sub

Explication détaillée du code :

  1. Création et préparation de la feuille de consolidation :
    • Nous vérifions si la feuille Consolidation existe dans le classeur courant. Si elle n’existe pas, elle est créée.
    • Ensuite, nous ajoutons des en-têtes de colonnes dans la première ligne de la feuille de consolidation.
  2. Définition du chemin des fichiers sources :
    • Le chemin des fichiers sources est défini dans la variable cheminSource.
    • La liste des fichiers à consolider est stockée dans un tableau fichiers, que vous pouvez personnaliser selon vos besoins.
  3. Boucle pour traiter chaque fichier source :
    • Pour chaque fichier source, nous l’ouvrons et parcourons chacune de ses feuilles.
    • Les données sont copiées de la feuille source vers la feuille de consolidation, à partir de la ligne 2 (pour ne pas copier les en-têtes).
  4. Suppression des doublons :
    • Après avoir copié toutes les données, nous supprimons les doublons basés sur les colonnes 1, 2 et 3 (nom, prénom et âge).
    • Vous pouvez modifier les colonnes en fonction de vos besoins.
  5. Formatage final :
    • Le code applique un formatage simple : ajustement automatique de la largeur des colonnes et mise en gras des titres.
  6. Message de confirmation :
    • Une fois le processus terminé, un message est affiché pour informer l’utilisateur que la consolidation est terminée.

Personnalisation :

  • Nom des fichiers et des colonnes : Vous pouvez modifier les noms de fichiers dans le tableau fichiers et personnaliser les colonnes selon votre structure de données.
  • Traitement des doublons : Si vous souhaitez supprimer les doublons sur d’autres colonnes ou ajouter des critères de filtrage, modifiez le code dans la partie RemoveDuplicates.
  • Formatage supplémentaire : Vous pouvez ajouter des couleurs ou des styles de mise en forme selon vos préférences dans la partie formatage.

Conclusion :

Ce script VBA automatisera efficacement le processus de consolidation des données provenant de plusieurs fichiers Excel. Vous pourrez l’adapter à vos besoins spécifiques en modifiant les chemins, les colonnes à consolider et le type de traitement que vous souhaitez appliquer aux données consolidées.

S’abonner
Notifier de
0 Commentaires
le plus ancien
le plus récent le plus populaire
Inline Feedbacks
Voir tous les commentaires

Initiation à Excel

Fonctions Excel

Excel VBA

Macros VBA Utiles

Plus d'outils

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x