Visual Basic For Applications
Le bloc VBA With / End With !

Apprenez à utiliser le code VBA With / End With pour optimiser vos macros VBA et gagner du temps.

L’utilité du bloc VBA With

Présentation

L’instruction With/End With permet d’exécuter de manière simplifiée plusieurs actions sur un objet en VBA. Par exemple, on peut l’utiliser pour formater une cellule en modifiant le fond, la bordure, la couleur de la police etc.

Relativement simple à utiliser, le bloc With peut vraiment améliorer la qualité de vos codes, encore faut-il y penser et savoir l’utiliser.


Les avantages du bloc VBA With

L’instruction With en VBA permet de faire référence qu’une seule fois à un objet au lieu de le répéter à chaque action. Plus votre macro VBA sera développée et longue, plus ce type d’instruction vous sera utile.

Ce code permet de :

  • Gagner du temps lors de l’écriture de votre code puisque vous n’avez pas à répéter plusieurs fois des expressions qui peuvent être complexes.
  • Augmenter la lisibilité de votre code en limitant les expressions répétitives.
Attention

Le bloc VBA With / End With n’affecte pas les performances de votre code. C’est-à-dire qu’il ne ralenti pas votre macro mais ne la fait pas non plus aller plus vite.

Syntaxe

With Objet
 
	Action(s)
 
End With
  1. With : instruction de début du bloc VBA With.
  2. Objet : Objet sur lequel les actions vont être réalisées. Il peut s’agir d’une cellule, d’une feuille ou même d’un classeur (ou des 3). L’objet doit être indiqué sur la même ligne et à la suite du With.
    	With Workbooks("Classeur1").Sheets("feuil1").Range("A1:A5")
  3. Action(s) : il s’agit de la série d’instructions qui vont être appliquées sur l’objet défini en début de bloc. Vous pouvez inscrire un nombre illimité d’actions. L’exemple ci-dessous permet d’aligner verticalement et horizontalement le contenu d’une cellule et d’adapter la taille du contenu à la taille de la cellule.
    	.HorizontalAlignment = xlLeft
    	.VerticalAlignment = xlBottom
    	.ShrinkToFit = True

    Dans un bloc With, les actions doivent être précédées d’un point (.) pour qu’elles puissent fonctionner.

  4. End With : marque la fin du bloc VBA With.
Astuce

L’instruction .ShrinkToFit = True est particulièrement utile si vous avez du contenu dynamique au sein de vos cellules pour adapter la taille du contenu et ainsi avoir un fichier « propre ».







Exemples

Le bout de code ci-dessous permet d’aligner horizontalement et verticalement le contenu des cellules sélectionnées, d’adapter leur contenu à leur taille et de mettre le texte et nombre en vert grâce au code RGB (RED, GREEN, BLUE).

Exemple avec With

    With Selection
        .Font.Color = RGB(50, 200, 100)
        .HorizontalAlignment = xlLeft
        .VerticalAlignment = xlBottom
        .ShrinkToFit = True
    End With

Exemple sans bloc VBA With

	Selection.Font.Color = RGB(50, 200, 100)
	Selection.HorizontalAlignment = xlLeft
	Selection.VerticalAlignment = xlBottom
	Selection.ShrinkToFit = True

Pour plus d’exemples concrets, vous pouvez consulter notre macro sur la prévision des ventes dans laquelle nous avons utilisé plusieurs blocs VBA With / End With.

Notez nous !
[Moyenne : 4.9]