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
- Avec : C’est le mot-clé de départ de l’instruction qui indique à VBA que vous spécifiez l’objet mentionné.
- Objet : Ici, vous devez spécifier l’objet que vous souhaitez utiliser.
- Instruction : une ou plusieurs instructions que vous souhaitez exécuter avec l’objet spécifié.
- 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 :
- Tapez d’abord le clavier « Avec ».
- 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.
- Ensuite, vous devez entrer le code des trois propriétés et les valeurs que vous souhaitez appliquer.
- À la fin, utilisez le mot-clé « End With » pour terminer l’instruction.
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 ».
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 :
Utilisez les étapes suivantes pour écrire une instruction « With » imbriquée.
- Tout d’abord, vous devez déclarer une variable pour utiliser un objet feuille de calcul.
- 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 .
- 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.
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