Créez une créativité dynamique, Excel VBA

Créez une créativité dynamique, Excel VBA
Voici un code VBA détaillé qui crée une plage dynamique dans Excel, accompagné d’une explication approfondie. 

Objectif : 

Ce code VBA définit dynamiquement une plage nommée en fonction des données présentes dans une feuille Excel. La plage s’étend automatiquement à mesure que de nouvelles données sont ajoutées. 

Code VBA : 

Sub CreerPlageDynamique() 
    Dim ws As Worksheet 
    Dim derniereLigne As Long 
    Dim derniereColonne As Long 
    Dim nomPlage As String 
    Dim plageDynamique As Range 
    ' Définir la feuille de travail où la plage dynamique sera créée 
    Set ws = ThisWorkbook.Sheets("Feuil1")  ' Modifier le nom si nécessaire 
    ' Définir le nom de la plage 
    nomPlage = "DonnéesDynamiques" 
    ' Trouver la dernière ligne contenant des données dans la colonne A 
    derniereLigne = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row 
    ' Trouver la dernière colonne contenant des données dans la ligne 1 
    derniereColonne = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column 
    ' Définir la plage dynamique 
    Set plageDynamique = ws.Range(ws.Cells(1, 1), ws.Cells(derniereLigne, derniereColonne)) 
    ' Supprimer la plage nommée existante si elle existe déjà 
    On Error Resume Next 
    ws.Names(nomPlage).Delete 
    On Error GoTo 0 
    ' Créer une nouvelle plage nommée dynamique 
    ws.Names.Add Name:=nomPlage, RefersTo:=plageDynamique 
    ' Afficher un message de confirmation 
    MsgBox "La plage dynamique '" & nomPlage & "' a été créée avec succès !", vbInformation, "Succès" 
End Sub

Explication détaillée : 

1. Sélection de la feuille de travail : 

Set ws = ThisWorkbook.Sheets("Feuil1")

  • Cette ligne définit la feuille de travail cible où la plage dynamique sera créée. 
  • Modifier « Feuil1 » en fonction du nom de votre feuille. 

2. Recherche de la dernière ligne contenant des données : 

derniereLigne = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row

  • Cette commande recherche la dernière ligne contenant des données dans la colonne A
  • Elle part du bas de la feuille (ws.Rows.Count) et remonte (xlUp). 

3. Recherche de la dernière colonne contenant des données : 

derniereColonne = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column 

  • Cette commande identifie la dernière colonne contenant des données dans la ligne 1
  • Elle part de l’extrême droite (ws.Columns.Count) et se déplace vers la gauche (xlToLeft). 

4. Définition de la plage dynamique : 

Set plageDynamique = ws.Range(ws.Cells(1, 1), ws.Cells(derniereLigne, derniereColonne)) 

  • Elle crée une plage de cellules allant de A1 (coin supérieur gauche) jusqu’à la dernière ligne et colonne contenant des données. 
  • Cela garantit que toutes les données présentes sont incluses dynamiquement. 

5. Suppression de la plage nommée existante : 

On Error Resume Next 
ws.Names(nomPlage).Delete 
On Error GoTo 0
  • Cette section empêche les doublons en supprimant toute plage nommée préexistante ayant le même nom. 

6. Création de la plage nommée dynamique : 

ws.Names.Add Name:=nomPlage, RefersTo:=plageDynamique

  • Cette ligne crée une plage nommée dynamique « DonnéesDynamiques », qui s’ajuste automatiquement. 

7. Message de confirmation : 

MsgBox "La plage dynamique '" & nomPlage & "' a été créée avec succès !", vbInformation, "Succès" 

  • Un message s’affiche pour informer l’utilisateur que la plage dynamique a été correctement créée. 

Utilisation : 

  • Après l’exécution de cette macro, la plage nommée « DonnéesDynamiques » sera automatiquement mise à jour lorsque les données changent. 
  • Vous pouvez utiliser =DonnéesDynamiques dans des formules ou des tableaux croisés dynamiques pour référencer les données mises à jour. 

Améliorations possibles : 

Si vous souhaitez que la plage dynamique s’adapte à une colonne ou une ligne spécifique, des modifications peuvent être apportées. 

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