Créer un système de planification de plage dynamique, Excel VBA

Créer un système de planification de plage dynamique, Excel VBA

Voici un guide détaillé pour créer un système de planification de plage dynamique en utilisant VBA dans Excel, étape par étape. 

Étape 1 : Configurer votre classeur Excel 

  1. Ouvrez Excel et créez un nouveau classeur ou utilisez un classeur existant où vous souhaitez appliquer la plage dynamique. 
  2. Configurez une table avec des données que vous souhaitez utiliser. Par exemple, vous pouvez avoir des colonnes comme « Tâche », « Date de début », « Date de fin », et « Statut ». 
  3. Assurez-vous que votre table a des en-têtes. 

Exemple : 

Tâche  Date de début  Date de fin  Statut 
Tâche 1  01/01/2025  01/07/2025  En attente 
Tâche 2  01/02/2025  01/10/2025  Terminé 
Tâche 3  01/05/2025  01/15/2025  En attente 

Étape 2 : Ouvrir l’Éditeur Visual Basic For Applications (VBA) 

  1. Appuyez sur Alt + F11 pour ouvrir l’Éditeur VBA
  2. Dans l’Éditeur VBA, allez dans le menu Insertion et sélectionnez Module pour ajouter un nouveau module où vous écrirez votre code. 

Étape 3 : Écrire le code VBA 

Le code suivant vous permettra de créer des plages dynamiques en fonction des données dans votre feuille de calcul, ce qui garantit que si vous ajoutez ou supprimez des lignes, la plage se mettra à jour automatiquement. 

Voici un exemple de code pour créer un système de planification de plage dynamique : 

Sub CreerPlageDynamique() 
    Dim ws As Worksheet 
    Dim derniereLigne As Long 
    Dim plageDebut As String 
    Dim plageFin As String 
    Dim plageDynamique As Range 
    ' Définir la feuille de calcul (modifiez "Feuille1" selon le nom de votre feuille) 
    Set ws = ThisWorkbook.Sheets("Feuille1") 
    ' Trouver la dernière ligne utilisée dans la colonne A (supposons que vos données sont dans la colonne A) 
    derniereLigne = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row 
    ' Définir le début et la fin de la plage 
    plageDebut = "A2" ' La première ligne de vos données (en excluant les en-têtes) 
    plageFin = "D" & derniereLigne ' La colonne D contient les données jusqu'à la dernière ligne 
    ' Créer la plage dynamique 
    Set plageDynamique = ws.Range(plageDebut & ":" & plageFin) 
    ' Optionnel : Appliquer un formatage (pour démonstration) 
    plageDynamique.Borders.LineStyle = xlContinuous 
    plageDynamique.Borders.Color = RGB(0, 0, 0) ' Bordure noire 
    ' Informer l'utilisateur 
    MsgBox "La plage dynamique de " & plageDebut & " à " & plageFin & " a été créée.", vbInformation 
End Sub

Explication du code : 

  • Dim ws As Worksheet: Déclare une variable pour référencer la feuille de calcul où se trouvent les données. 
  • Dim derniereLigne As Long: Cette variable stocke le numéro de la dernière ligne utilisée dans le jeu de données. 
  • Dim plageDebut As String: Déclare la première cellule de votre plage dynamique (en excluant la ligne des en-têtes).
  • Dim plageFin As String: Déclare la fin de la plage dynamique, qui dépend de la dernière ligne de données dans la feuille. 
  • Set ws = ThisWorkbook.Sheets("Feuille1"): Référence la feuille de calcul. Changez « Feuille1 » par le nom réel de votre feuille. 
  • derniereLigne = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row: Trouve la dernière ligne de données dans la colonne A. 
  • Set plageDynamique = ws.Range(plageDebut & ":" & plageFin): Crée la plage dynamique allant de la cellule de début à la cellule de fin. 
  • plageDynamique.Borders.LineStyle = xlContinuous: Applique une bordure continue à la plage, ce qui est optionnel, mais utile pour visualiser la plage dynamique. 
  • Le MsgBoxaffiche un message pour informer l’utilisateur que la plage dynamique a été créée. 

Étape 4 : Exécuter le code 

  1. Retournez dans votre classeur Excel. 
  2. Appuyez sur Alt + F8 pour ouvrir la boîte de dialogue des Macros
  3. Sélectionnez CreerPlageDynamique et cliquez sur Exécuter

Exemple de sortie : 

  • Après avoir exécuté le code, la plage dynamique allant de A2:D (jusqu’à la dernière ligne de données) sera sélectionnée et aura une bordure. 
  • Si vous ajoutez des lignes de données supplémentaires, la plage dynamique s’ajustera automatiquement lorsque vous exécuterez à nouveau la macro. 

Remarque : 

  • Vous pouvez modifier la plage de colonnes (par exemple, A2:D dans l’exemple) en fonction des colonnes où vos données sont situées. 
  • La plage s’ajustera en fonction du nombre de lignes contenant des données dans la colonne A. Si vous avez une autre colonne qui contiendra toujours des données, vous pouvez remplacer « A » par cette lettre de colonne. 

Ce système est flexible et dynamique, ce qui lui permet de s’adapter aux modifications des données dans votre feuille de calcul. 

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x