VBA avec / terminer par la déclaration

Cet article montrera comment utiliser With et End With dans VBA

Excel nous offre la possibilité d'apprendre VBA en enregistrant des macros. Ces macros enregistrent littéralement tout ce que nous faisons à l'écran et convertissent les actions en code VBA. Nous pouvons ensuite analyser ce code et en tirer des leçons.

Lorsque nous enregistrons une macro en VBA, surtout lorsque nous modifions le format des cellules, la macro utilisera le plus souvent la syntaxe With… End With dans son enregistrement. Comprendre ce que cela signifie et ce à quoi ils servent est une partie importante de VBA.

Enregistrer une macro

Pour enregistrer une macro dans Excel, dans le Ruban, sélectionnez Affichage > Macro > Enregistrer une macro.

OU

Développeur > Enregistrer une macro

Remarque : si vous ne voyez pas le ruban développeur, vous devrez l'activer. Cliquez ICI pour savoir comment procéder.

Tapez le nom de la macro et cliquez sur OK.

Mettez en surbrillance certaines cellules, puis formatez-les en gras, changez la couleur en rouge et modifiez la taille de la police. Cliquez ensuite sur Arrêter dans le coin inférieur gauche de l'écran pour arrêter l'enregistrement de la macro.

Syntaxe de l'instruction WITH

Pour afficher/modifier votre Macro enregistrée : Dans le Ruban, sélectionnez Affichage > Macros > Afficher les macros. Sélectionnez la macro que vous venez d'enregistrer, puis cliquez sur Éditer.

OU

Dans le ruban, sélectionnez Développeur > Visual Basic pour passer à la fenêtre VBE.

La macro enregistrée peut ressembler à l'exemple ci-dessous

123456789 Sous avecMacro()Plage("A2:C10").SélectionnezSelection.Font.Bold = TrueSelection.Font.Size = 12Avec Selection.Font.Couleur = -16776961.TeinteEtOmbre = 0Terminer parFin du sous-marin

Dans un premier temps, nous avons sélectionné la gamme A2:C10.

Nous avons ensuite mis le gras à vrai et la taille de police à 12. Notez que le code « Selection.Font » est répété pour ces lignes.

La macro nous a alors enregistré en changeant la couleur du texte - notez que cette fois, la Selection.Font a un AVEC devant elle, et les 2 propriétés qui sont en cours de modification (la couleur et la teinte et la teinte) ont un point (.) devant elles. La zone de code est ensuite complétée par un TERMINER PAR.

Pour simplifier ce code, nous pouvons déplacer le gras et la taille pour qu'ils soient dans l'instruction WITH, et donc supprimer le besoin de répéter le mot Selection.

123456789 Sous avecMacro()Plage ("A2:C10").SélectionnezAvec Selection.Font.Bold = Vrai.Taille = 12.Couleur = -16776961.TeinteEtOmbre = 0Terminer parFin du sous-marin

La syntaxe d'une instruction WITH… END WITH est donc très simple :

123 AVEC Objet'propriétés à formater/modifierTERMINER PAR

Nous aurions pu modifier le code d'une manière différente :

1234567 Sous-SupprimerAvec()Plage("A2:C10").SélectionnezSelection.Font.Bold = TrueSelection.Font.Size = 12Selection.Font.Color = -16776961Selection.Font.TintAndShade = 0Fin du sous-marin

Dans l'exemple ci-dessus, nous avons ajouté les mots Selection.Font à chaque ligne du code. Nous avons donc fait référence de manière répétitive à l'objet Selection.Font dans le code.

Cependant, l'utilisation de l'instruction WITH signifie que nous n'avons besoin de faire référence à cet objet qu'une seule fois dans le code. C'est une manière plus propre de coder - elle dit à VBA de commencer par AVEC et de se terminer par FIN AVEC - le code à exécuter est tout compris dans ces 2 mots. Cela rend la macro plus rapide et plus efficace (en particulier pour les macros plus longues) et ajoute une structure à votre code.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave