Comment utiliser l’instruction VBA WITH imbriquée ?

Points clés

  • Utilisez l’instruction VBA With pour minimiser le code.
  • Vous pouvez utiliser un seul objet à la fois lors de l’utilisation de l’instruction With.

Qu’est-ce que VBA avec déclaration

VBA With est une instruction permettant de spécifier un objet une fois, puis d’exécuter plusieurs instructions pour celui-ci. En termes simples, en utilisant l’instruction « WITH » pour spécifier un objet, et après cela, vous pouvez accéder à toutes les propriétés et méthodes en une seule fois. Il commence par « Avec » et se termine par « Finir avec ».

Syntaxe de VBA avec instruction

Voici la syntaxe que vous devez utiliser pour utiliser l’instruction With dans VBA :

With [OBJECT]
      [Statement]
End With
syntaxe-de-vba-avec-instruction
  1. Avec : C’est le mot-clé de départ de l’instruction qui indique à VBA que vous spécifiez l’objet mentionné.
  2. Objet : Ici, vous devez spécifier l’objet que vous souhaitez utiliser.
  3. Instruction : une ou plusieurs instructions que vous souhaitez exécuter avec l’objet spécifié.
  4. End With : C’est le mot-clé de fin de l’instruction.

Exemple pour comprendre le VBA With Statement

Prenons un exemple pour comprendre avec l’énoncé en profondeur. Supposons que vous souhaitiez modifier la couleur, la taille et le nom de la police de la cellule A1. Pour faire ces trois choses, vous devez accéder à trois propriétés différentes de la police VBA et le code serait :

Range("A1").Font.Color = RGB(0, 0, 255)
Range("A1").Font.Size = 16
Range("A1").Font.Name = "Consolas"

Mais ici, nous allons utiliser l’instruction With au lieu du code ci-dessus. Pour utiliser l’instruction VBA With, vous pouvez suivre les étapes suivantes :

  1. Tapez d’abord le clavier « Avec ».
  2. Après cela, utilisez la plage VBA pour spécifier la cellule A1 en utilisant l’objet de police pour spécifier l’objet de police.
    use-the-vba-range
  3. Ensuite, vous devez entrer le code des trois propriétés et les valeurs que vous souhaitez appliquer.
    code-for-all-three-properties
  4. À la fin, utilisez le mot-clé « End With » pour terminer l’instruction.
    end-with-to-end-the-statement

Voici le code que vous venez d’écrire.

Sub MyMacro()

With Range("A1").Font
        .Color = RGB(0, 0, 255)
        .Size = 16
        .Name = "Consolas"       
End With

End Sub

Examinons maintenant les deux codes et essayons de comprendre quelle est la différence que nous avons en utilisant l’instruction « With ».

regardez-les-deux-codes

Dans le premier code, vous avez utilisé l’objet font trois fois, puis utilisé la propriété à laquelle vous souhaitez accéder et que vous souhaitez y apporter des modifications.

Mais dans le deuxième code, vous avez utilisé l’instruction With et spécifié immédiatement l’objet font. Et puis trois lignes de code dans l’instruction « With » pour accéder aux trois propriétés.

Lorsque vous utilisez l’instruction « With » et spécifiez un objet, cela indique à VBA que toutes les instructions que vous avez écrites doivent s’exécuter avec l’objet mentionné. Cela vous donne non seulement un code structuré, mais accélère également l’exécution d’une macro et lui donne une plus grande efficacité.

Imbriqué avec l’instruction

Je vous ai dit au début que vous ne pouviez spécifier qu’un seul objet pour utiliser l’instruction With. Mais il existe un moyen d’utiliser plus d’un ou même plusieurs objets avec. C’est en utilisant VBA LOOPS , et nous allons utiliser FOR EACH LOOP pour parcourir plusieurs objets et utiliser le « With ».

Laissez-moi vous donner un exemple; vous devez parcourir toutes les feuilles de calcul et appliquer toutes les choses suivantes à toutes les cellules de chaque feuille de calcul.

  • Taille de la police : 16
  • Police : Verdena

Et dans le classeur, vous avez cinq feuilles de calcul, comme dans l’exemple suivant :

nested-with-statement

Utilisez les étapes suivantes pour écrire une instruction « With » imbriquée.

  1. Tout d’abord, vous devez déclarer une variable pour utiliser un objet feuille de calcul.
    steps-to-write-nested
  2. Après cela, comme je l’ai dit, vous devez utiliser For Each Loop . Donc, vous devez écrire un code avec la boucle qui peut parcourir toutes les feuilles de calcul .
    write-code-with-the-loop
  3. Maintenant, entrez l’instruction with qui peut appliquer le paramètre de police dont nous avons discuté ci-dessus. Pour faire référence à toutes les cellules de la feuille de calcul, vous pouvez utiliser les « Cellules » tout en spécifiant l’objet.
    use-cells-while-specifing-the-object

Voici le code complet que vous venez d’écrire.

Sub MyMacro()

Dim ws As Worksheet

For Each ws In ActiveWorkbook.Worksheets
    With Cells  
        .Font.Size = 16
        .Font.Name = "Verdena"       
    End With   
Next ws

End Sub

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *