Les éléments du langage VBA, Excel

1 Les commentaires

Un commentaire est un texte descriptif intégré dans votre code et ignoré par VBA. C’est une bonne idée d’utiliser généreusement les commentaires pour décrire ce que vous faites. Le texte suivant une apostrophe (‘) dans le programme jusqu’à la fin de la ligne est ignoré par le compilateur et est un commentaire.
Vous pouvez utiliser une ligne complète pour votre commentaire, ou vous pouvez insérer un commentaire après une instruction sur la même ligne.

L’exemple suivant montre une procédure VBA avec deux commentaires :

Sub DemoCommentaires()    
' Ceci est mon premier commentaire    
 ValeurF = 12 ' Ceci est mon deuxième commentaire     
MsgBox ValeurF 
End Sub

REMARQUE 

Excel VBA colore la ligne en vert pour indiquer qu’il s’agit d’un commentaire.

Bien que l’apostrophe soit l’indicateur de commentaire préféré, vous pouvez également utiliser le mot clé Rem pour marquer une ligne comme commentaire. Le mot-clé Rem (abréviation de Remark) est essentiellement un héritage d’anciennes versions de BASIC et est inclus dans VBA pour des raisons de compatibilité. Contrairement à l’apostrophe, Rem ne peut être écrit qu’au début d’une ligne, pas sur la même ligne qu’une autre instruction.
Voici quelques conseils généraux pour utiliser au mieux les commentaires:
■ Utilisez des commentaires pour décrire brièvement le but de chaque procédure que vous écrivez.
■ Utilisez des commentaires pour décrire les modifications que vous apportez à une procédure.
■ Utilisez des commentaires pour indiquer que vous utilisez des fonctions ou des conceptions d’une manière inhabituelle ou non standard.
■ Utilisez des commentaires pour décrire le but des variables afin que vous et d’autres personnes puissiez déchiffrer des noms autrement cryptiques.
■ Écrivez des commentaires pendant que vous codez plutôt qu’après.

2 Saut de ligne

Pour diviser une seule instruction en plusieurs lignes on utilise le caractère de continuation de ligne, qui est un trait de soulignement ( _), au point auquel vous souhaitez que la ligne se coupe. Le trait de soulignement doit être immédiatement précédé d’un espace. Bref, pour entrer un saut de ligne VBA, vous pouvez utiliser les étapes suivantes.

■ Tout d’abord, cliquez sur le caractère à partir duquel vous souhaitez couper la ligne.

■ Ensuite, tapez un espace.

■ Après cela, tapez un trait de soulignement (_).

■ À la fin, appuyez sur Entrée pour rompre la ligne.

Pour créer un saut de ligne, voici les conditions qui doivent être remplis :
■ vous ne pouvez pas briser les instructions, les propriétés et méthodes ;
■ Le nombre maximal de saut de ligne autorisé est sept ;
Voici un code sans saut de ligne :

ActiveCell.Offset(rowoffset:=0, columnoffset:=1).Value = Somme
 Voici le meme code avec saut de ligne : 
ActiveCell.Offset(rowoffset:=0, _ 
columnoffset:=1).Value = Somme

Vous pouvez utiliser le caractère de continuation de ligne dans votre code avant ou après:

■ Les opérateurs ; par exemple: &, +, Like, NOT, AND

■ Une virgule

■ Un signe égal

■ Un opérateur d’affectation (: =)

Vous ne pouvez pas utiliser le saut de ligne entre deux-points et un signe égal. Par exemple, l’utilisation suivante du saut de ligne n’est pas reconnue par Visual Basic:

Range("B1").Cut Destination: _
=Range("D1")

En outre, vous ne pouvez pas utiliser le caractère de continuation de ligne dans le texte entre guillemets. Par exemple, l’utilisation suivante du caractère de continuation de ligne n’est pas valide:

MsgBox "Pour continuer une instruction longue, utilisez le caractère de _ continuation de ligne."

Au lieu de cela, divisez-le comme suit:

MsgBox "Pour continuer une instruction longue, utilisez le" & _
"caractère de continuation de ligne."

3 Placer plusieurs instructions sur une seule ligne
L’utilisation du caractère deux-points (:) vous permet de placer plusieurs instructions sur la même ligne. Ainsi, les deux constructions suivantes sont équivalentes :

maVariable = 5 ' La variable maVariable contient 5 
maVariable = maVariable + 5 ' La variable maVariable contient 10 et 
maVariable = 5:
 maVariable = maVariable + 5

4 L’instruction With / End With

Pour chaque propriété que nous définissons dans Excel, il est nécessaire de référencer l’objet auquel elle sera appliquée, même lorsque l’objet est le même pour plusieurs propriétés. L’exemple suivant montre clairement la nécessité de référencer l’objet pour chacune des propriétés. Pour la même cellule, nous allons définir une valeur, appliquer une couleur à la police, afficher la valeur de cette cellule avec deux décimales, appliquer le style gras à la police et appliquer une autre couleur à l’arrière-plan:

Sub FormatageCellule()     
Range("B3").Value = 58.7   
  Range("B3").Font.ColorIndex = 4  
   Range("B3").NumberFormat = "0.00"  
   Range("B3").Font.Bold = True 
    Range("B3").Interior.ColorIndex = 6 
End Sub

Commentaires

■ La valeur 58,7 est défini dans la cellule B3 (.Value = 58.7) ;

■ La couleur verte est définie comme couleur de font à la cellule B3 (.Font.ColorIndex = 4) ;

■ Le format des nombres est modifié avec la propriété (.NumberFormat = “0.00”)

■ La contenu de la cellule B3 est mis en gras avec la propriété.Font.Bold = True

■ La couleur de bordure est définie sur le jaune par la propriété .Interior.ColorIndex =  6

Pour éviter la répétition du même objet dans des cas comme celui qui vient d’être vérifié, c’est-à-dire des cas où plusieurs propriétés sont appliquées au même objet, nous pouvons utiliser les structures With et End With. L’objet référencé lorsque nous utilisons cette instruction doit être placé juste après l’instruction elle-même. La syntaxe de la structure With et End With est la suivante:

With Objet   
  Instruction 
End With

Lors de la saisie des instructions, il faut toujours se rappeler que le nom de l’objet ne doit pas être mentionné et qu’il doit y avoir un point avant chacune des propriétés. Toutes les instructions que nous tapons entre With et End With seront exécutées sur l’objet donné.

Voici le code qui applique certaines propriétés à une cellule via l’instruction With:

Sub FormatageCellule()    
With Range("B3")     
 .Value = 58.7     
 .Font.ColorIndex = 4    
  .NumberFormat = "0.00"    
  .Font.Bold = True      
.Interior.ColorIndex = 6  
  End With 
End Sub

L’instruction With peut également être utilisée avec d’autres instructions With si nous insérons l’une dans l’autre, en effectuant un processus d’imbrication :

Sub AlterarPlan()  
   With Sheets("Feuil2")       
     With Range("B6")      
      .Value = 12      
       .Font.Bold = True         
        .Font.ColorIndex = 4     
   End With   
        .Name = "mafeuille" 
         .Move Before:=Sheets("Plan1")     
         .Visible = True    
      End With
 End Sub

On peut également insérer un autre With pour la source en imbriquant deux With au premier.

NOTE 

Nous devons toujours prendre en compte l’importance de l’indentation des lignes, en laissant les première et dernière ligne de chaque bloc dans la même position du côté gauche.

Pour spécifier la propriété ou la méthode de cette hiérarchie qui est abrégée, nous devons commencer l’instruction par un point (.). Il indique la continuité de la hiérarchie abrégée, dans laquelle nous n’avons pas besoin de répéter certaines structures.

5 Eviter si possible la méthode Select

L’accès aux objets individuels doit être aussi direct que possible, sans beaucoup d’étapes intermédiaires. Malheureusement, dans de nombreuses applications VBA, les objets sont accessibles comme suit :

■ Un classeur est activé.

■ Une feuille de calcul est activée.

■ Une cellule ou plage de cellules est sélectionnée.

■ Les propriétés de la cellule ou plage de cellules sélectionnée sont modifiées ou des méthodes sont appliquées à la plage sélectionnée.

Cette procédure d’activation et de sélection est facile à comprendre, mais plus lente et plus sujette aux erreurs. Voici un exemple:

Sub ActivationSelection() 
ThisWorkbook.Activate
Worksheets("Feuil1").Activate 
Range("A1:A10").Select 
Selection.Interior.Color = vbYellow
End Sub

Commentaires

■ La méthode Activate active le classeur dans lequel vous vous trouvez actuellement comme classeur active (ThisWorkbook.Activate) et active la feuille Feuil1 comme feuille active (Worksheets(“Feuil1”).Activate).

■ La plage A1:A10 est sélectionnée à partir de la méthode Select.

■ Aux éléments sélectionnés, on ajoute la couleur jaune (vbYellow), qui est avec la propriété Color (Couleur) ; cette dernière étant aussi une propriété de Interior (Couleur de fond de l’élément sélectionné).

Le référencement vous permet de créer des applications qui s’exécutent plus rapidement et sont moins encombrant :

Sub ActivationSelection ()     
  ThisWorkbook.Worksheets("Feuil1"). _   
  Range("A1:A10").Interior.Color = vbYellow 
End Sub

Le code VBA semble un peu plus déroutant au début. Mais vous procédez simplement selon la hiérarchie des objets : classeur, feuille de calcul, plage de cellule de cellules, propriété. Il en résulte généralement des instructions plus longues, mais celles-ci peuvent être réparties sur plusieurs lignes.

Prenons un autre exemple qui consiste à copier le contenu de la cellule B1 et à la coller dans la cellule D1 :

Sub MethodeSelect()     
   Range("B1").Select     
   Selection.Cut     
   Range("D1").Select     
   ActiveSheet.Paste 
End Sub

Inconvénients de cette approche :

■ Il y a plusieurs étapes dans lesquelles des erreurs peuvent s’infiltrer.

■ On ne sait pas dans quel classeur et sur quelle feuille de calcul le déplacement a lieu.

■ L’application est plus lente.

Avec le référencement, vous pouvez résoudre un tel problème clairement et plus rapidement :

Sub MethodeSelect ()
    ThisWorkbook.Worksheets("Feuil1"). _
    Range("B1").Cut Destination:=ThisWorkbook. _
    Worksheets("Feuil1").Range("D1")
End Sub

6 Opérateur d’affectation

C’est le premier opérateur que vous allez utiliser dans n’importe quel langage de programmation. L’opérateur d’affectation affecte la valeur d’une expression à une variable, une constante ou une propriété d’un objet. L’opérateur d’affectation inclut toujours un signe égal (=).
variable = expression
L’opérateur d’affectation est comme un pont ; l’information qui est à droit (expression) est transférée à l’élément qui est à gauche (variable).

Un exemple simple est :

Sub OperateurAffectation ()
     a = 10
     Range ("A1").Value = a
End Sub

Commentaires

■ Dans l’exemple ci-dessus, nous utilisons d’abord l’opérateur d’affectation “=” pour affecter une valeur à la variable “a”,

■ puis nous utilisons l’opérateur “=” pour affecter la valeur de “a” à la valeur de Range (“A1”).

7 Fonctions RVB () et QBColor ()

Les codes de couleur dans VBA sont souvent donnés sous forme de nombres sous la forme d’une notation hexadécimale. Au lieu de spécifier directement un code de couleur hexadécimal, il est souvent plus pratique de spécifier une couleur à l’aide des fonctions RVB () et QBColor (). La fonction RVB () vous permet d’obtenir n’importe quelle couleur en mélangeant des composants rouge, vert et bleu d’intensités différentes.

RVB (rouge, vert, bleu)

■ Le rouge est un entier de 0 à 255 indiquant la composante rouge de la couleur.

■ Le vert est un entier de 0 à 255 indiquant la composante verte de la couleur.

■ Le bleu est un entier de 0 à 255 indiquant la composante bleue de la couleur.

Le tableau suivant montre les valeurs des paramètres de la fonction RVB () pour obtenir des couleurs standard.

Couleur Rouge Vert Bleu
Le noir 0 0 0
Bleu 0 0 255
Vert 0 255 0
Bleu 0 255 255
Rouge 255 0 0
Rose 255 0 255
Jaune 255 255 0
Blanc 255 255 255

La fonction QBColor () renvoie seize couleurs primaires, en fonction de la valeur du paramètre.

QBColor (color)

Ici, le paramètre de couleur accepte des nombres entiers compris entre 0 et 15.

Nombre Couleur Nombre Couleur
0 Noir 8 Gris
1 Bleu 9 Bleu clair
2 Vert 10 Vert clair
3 Cyan 11 Cyan clair
4 Rouge 12 Rouge clair
5 Magenta 13 Magenta clair
6 Jaune 14 Jaune clair
7 Blanc 15 Blanc pur

 

S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
Voir tous les commentaires

Initiation à Excel

Fonctions Excel

Excel VBA

Macros VBA Utiles

Plus d'outils

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x