Créer des compétences de raisonnement critique à plage dynamique, Excel VBA

Créer des compétences de raisonnement critique à plage dynamique, Excel VBA

Voici un code VBA détaillé pour créer une plage dynamique dans Excel, avec une explication approfondie en français. 

Code VBA : Création d’une plage dynamique dans Excel 

Option Explicit 
Sub CreateDynamicRange() 
    Dim ws As Worksheet 
    Dim lastRow As Long 
    Dim lastCol As Long 
    Dim rng As Range 
    Dim rngName As String 
    ' Définir la feuille de calcul où la plage dynamique sera créée 
    Set ws = ThisWorkbook.Sheets("Sheet1") 
    ' Trouver la dernière ligne utilisée dans la feuille (en considérant la colonne A) 
    lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row 
    ' Trouver la dernière colonne utilisée dans la feuille (en considérant la ligne 1) 
    lastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column 
    ' Définir la plage dynamique 
    Set rng = ws.Range(ws.Cells(1, 1), ws.Cells(lastRow, lastCol)) 
    ' Nommer la plage dynamiquement 
    rngName = "DynamicRange" 
    On Error Resume Next 
    ws.Names(rngName).Delete ' Supprimer la plage nommée existante si elle existe 
    On Error GoTo 0 
    ws.Names.Add Name:=rngName, RefersTo:=rng 
    ' Confirmer la création de la plage avec un message 
    MsgBox "La plage dynamique '" & rngName & "' a été créée avec succès de " & _ 
        rng.Address & " dans la feuille " & ws.Name, vbInformation, "Plage Créée"
End Sub

Explication détaillée 

  1. Déclaration des variables
  • ws → Représente la feuille de calcul, ici « Sheet1 ». 
  • lastRow → Stocke le numéro de la dernière ligne utilisée dans la colonne A. 
  • lastCol → Stocke le numéro de la dernière colonne utilisée dans la ligne 1. 
  • rng → Correspond à la plage dynamique calculée. 
  • rngName → Contient le nom de la plage nommée. 
  1. Identification de la dernière ligne et colonne utilisée

ws.Cells(ws.Rows.Count, 1).End(xlUp).Row → Recherche la dernière cellule non vide de la colonne A. 

ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column → Recherche la dernière cellule non vide de la ligne 1. 

  1. Définition de la plage dynamique
  • La plage est définie dynamiquement à l’aide de :  

Set rng = ws.Range(ws.Cells(1, 1), ws.Cells(lastRow, lastCol)) 

Cela garantit que la plage commence en A1 et s’étend automatiquement en fonction des données présentes. 

  1. Création d’une plage nommée

ws.Names(rngName).Delete 
→ Supprime toute plage nommée existante avec le même nom pour éviter les conflits. 

ws.Names.Add Name:=rngName, RefersTo:=rng 
→ Crée une nouvelle plage nommée « DynamicRange » qui sera automatiquement mise à jour.

  1. Message de confirmation
  • Une boîte de dialogue affiche l’adresse de la plage créée, confirmant le succès de l’exécution. 

Cas d’utilisation et applications 

Mise à jour automatique des graphiques 

  • Utiliser cette plage dans un graphique pour qu’il s’ajuste automatiquement aux nouvelles données. 

Tableaux croisés dynamiques 

  • Utiliser cette plage comme source de données pour un tableau croisé dynamique sans besoin de mise à jour manuelle. 

Listes déroulantes dynamiques 

  • Utiliser cette plage comme source d’une liste déroulante pour qu’elle se mette à jour automatiquement. 

Mise en forme conditionnelle 

  • Appliquer des règles dynamiques sur des ensembles de données en constante évolution. 
Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x