Nous vous proposons un article de comprendre les bases d'Excel-VBA pour un niveau débutant et apporter les réponses à notre questionnaire.
Questions :
Introduction à VBA :
Question 1 : Excel s'enregistre sous un format .xlsx ; Sous quel format enregistre-t-on un fichier Excel contenant des macros ?
Le format xlsm est une extension de fichier utilisée par Microsoft Excel pour indiquer qu'un fichier contient des macros ou du code Visual Basic pour Applications (VBA). Le "xls" dans xlsm signifie "Excel". Les fichiers XLSM sont des fichiers de feuille de calcul Excel qui peuvent contenir des fonctions personnalisées écrites en VBA, ainsi que des macros qui peuvent être exécutées pour automatiser des tâches dans le classeur Excel. Les fichiers xlsm sont généralement utilisés pour créer des feuilles de calcul complexes et automatiser des processus répétitifs dans Excel.
Réponse : .xlsm
Question 2 : Que signifie l'expression qui est encadrée ?
En VBA (Visual Basic for Applications), un commentaire est une note ou une annotation que vous pouvez ajouter à votre code pour fournir des informations sur ce que fait le code ou pour ajouter des notes utiles à d'autres développeurs qui pourraient travailler sur le même projet.
Les commentaires en VBA commencent par
une apostrophe (')
par les caractères "Rem" (qui signifie "remark", soit "remarque" en français)
Ils peuvent être ajoutés sur une ligne séparée ou à la fin d'une ligne de code existante. Les commentaires sont ignorés par l'ordinateur lors de l'exécution du code, ce qui signifie qu'ils n'affectent pas le fonctionnement du programme.
Réponse : C'est un commentaire
Question 3 : Que signifie l'expression qui est encadrée ?
"Dim" est un mot-clé qui signifie "dimension". Il est utilisé pour déclarer une variable et spécifier son type de données.
La déclaration d'une variable en utilisant le mot-clé "Dim" permet de réserver un espace de stockage en mémoire pour la variable.
Réponse : C'est une déclaration de variable
Question 4 : Que signifie l'expression qui est encadrée ?
L'affectation de variable est le processus de stockage d'une valeur dans une variable.
Cela permet de stocker une valeur dans une variable afin de l'utiliser dans un programme ou dans une fonction ultérieure.
L'affectation de variable se fait en utilisant l'opérateur d'affectation "=" suivi de la valeur
Réponse : C'est une affectation de variable
Question 5 : Que signifie l'expression qui est encadrée ?
C'est également une affectation, mais dans l'autre sens. La valeur située dans le range"A1" de la feuille active va être stockée dans la variable "abc"
Réponse : Le code va inscrire la valeur de la cellule "A1" dans la variable abc
Question 6 : Il va y avoir un bug lequel ?
Le mot-clé "As" est utilisé pour spécifier le type de données de la variable. Il est utilisé pour indiquer à l'ordinateur quel type de données sera stocké dans la variable.
Par exemple, dans la déclaration "Dim efg As Byte", le mot-clé "As" est utilisé pour spécifier que la variable "efg" sera de type Byte, c'est-à-dire qu'elle ne peut contenir que des nombres entiers compris entre [0 et 256]
Il est important de noter que l'utilisation de "As" est facultative en VBA, mais il est recommandé de spécifier le type de données de la variable pour améliorer la lisibilité du code et éviter les erreurs.
Si le type de données n'est pas spécifié, la variable sera automatiquement considérée comme de type Variant, qui peut contenir n'importe quel type de données.
Attention : l'utilisation de Variant peut entraîner une perte de performance, car il doit être converti pour être utilisé avec des types de données spécifiques, ce qui peut ralentir le programme.
Réponse : La variable efg ne peut pas contenir le chiffre 256
Question 7 : Prenez votre temps... Quelles seront les valeurs des variables a et b et c après exécution des instructions suivantes ?
Vous avez ici un exemple très important de spécification de la variable entrainant des erreurs de calcul !
La variable "c" ne peut pas contenir de chiffre à virgule, car elle est spécifiée comme Byte.
Par défaut, la valeur sera arrondie à l'unité : 4.8 est plus proche de 5 que de 4.
Réponse : a = 2,8 b = 2 c = 5
Base du langage :
Question 8 : Qu’est-ce que le codename en VBA ?
Le codename est .... un jeux :) mais également c'est un nom qui est donné à un objet de type worksheet dans le cadre d'un projet. Le codename est utilisé pour faire référence à un objet spécifique dans le code VBA, indépendamment de son nom d'affichage.
Le codename d'un objet peut être modifié en accédant à la fenêtre des propriétés de l'objet Le nom du codename doit respecter les règles de nommage VBA, c'est-à-dire qu'il ne doit pas contenir d'espaces ou de caractères spéciaux et doit commencer par une lettre ou un souligné.
Réponse : C'est un objet de type worksheet / un moyen de manipuler une feuille
Question 9 : Ma feuille active s'appelle "MonOnglet" que va faire ce code ?
Le code est sans appel : il est bien spécifié que l'action va se passer sur la feuille qui s'appelle "MaFeuille1".
Réponse : il va inscrire 100 dans la cellule "A2" de la feuille "MaFeuille1"
Question 10 : Parmi les syntaxes suivantes, laquelle est FAUSSE ?
Une cellule s'écrit avec des virgules pour séparer les coordonnées de la ligne et de la colonne, mais également sans guillemets ! cells (1,3) au lieu de cells("1,3").
C'est l'écriture de range qui a des guillemets.
Réponse : 2
Question 11 : Parmi les syntaxes suivantes, laquelle est FAUSSE ?
Parmi la collection de feuilles "Sheets" je souhaite celle qui s'appelle "MaFeuilles"
Il manque un "s" à sheets...
Réponse : 3
Structure de décision :
Question 12 : Observez bien, prenez votre temps… Nous souhaitons inscrire le code suivant : Si la cellule "A3" est positive, alors la police de la cellule "B3" sera verte. Quelle syntaxe est la bonne ? (Cette syntaxe s'écrit normalement sur plusieurs lignes)
La question fait clairement référence à une structure de décision sous Excel VBA.
Le fonctionnement est identique à une fonction Excel =SI.
La structure s'écrit comme ceci :
If... Condition... then
End if
La condition est si la cellule "A3" est positive. En langage VBA cela se traduit par le code suivant :
Range("A3") > 0 ou Activesheet.range("A3") ce qui revient au même car sans préciser l'objet sheet c'est bien la feuille active qui est pointée.
Dans une structure de décision If... then EndIF cela donnerait :
If Activesheet.range("A3") > 0 Then
Si la condition est Vraie alors nous alors lire le code inscrit dans la structure (c'est-à-dire entre IF et end if)
Nous voulons que la police de la cellule "B3" sera verte.
C'est le code suivant : Range("B3").Font.Color = RGB(0, 255, 0 )
Si vous ne connaissez pas la fonction RGB c'est la fonction qui gère les couleurs en fonction de trois critères cumulatifs : le degré de Rouge (R = Red) le degré de Vert(G = Green) le degré de bleu (B= blue)
Réponse :
If Activesheet.range("A3") > 0 Then
Range("B3").Font.Color = RGB(0, 255, 0 )
End If
Question 13 : Observez bien... Que va être inscrit en cellule "B1" ?
L'objectif ici est de vous montrer les possibles erreurs que l'on peut commettre avec une structure de décision.
Le problème ici vient de la syntaxe et de votre compréhension parfaite du code :
La première ligne demande si la cellule "B1" (Oui Cells(1,2) <=> "B1") contient la valeur "Pays" la réponse est non, car la cellule est vide
La seconde ligne demande si la cellule "A1" contient la valeur "Pays" et c'est... faux !
Il est inscrit "pays". La demande est exacte, sensible à la case. Un "P" est différent d'un "p"
La réponse est donc celle située dans Else (<=> si les autres cas n'ont pas fonctionné). C'est dont la 3ᵉ lignes.
Réponse : 3
Question 14 : Observez bien... Que va être inscrit en cellule "D2" ?
Vous voyez la méthode "select Case" qui est une autre structure de décision sensiblement similaire à if...then... end if
Le Select Case est plus utile que if then lorsque vous avez plusieurs conditions à évaluer car il permet de réduire le nombre d'instructions nécessaires et rend le code plus facile à lire et à comprendre.
La syntaxe est la suivante :
Select Case expression
Case valeur1
instructions
Case valeur2
instructions
...
Case Else
instructions
End Select
On test la valeur de la variable "maNote".
maNote est de 13 (Cellule C2)
La première ligne vous demande si votre note est supérieur à 0 "Case is > 0 " .
13 est bien supérieur à 0 --> la réponse va être bof bof
Ici le piège est d'inscrire dans le mauvais ordre les instructions de select Case.
On aurait du commencer par la dernière pour arriver à la première.
Réponse : bof bof
Boite de dialogue :
Question 15 : Qu'est-ce qui est IMPOSSIBLE de faire avec une msgbox ?
La fonction MsgBox en VBA (Visual Basic for Applications) permet d'afficher une boîte de dialogue à l'utilisateur, avec un message et des boutons permettant à l'utilisateur de répondre à la demande ou de confirmer une action.
L'ensemble des réponses sont correct et cela vous donne toutes les possibilités que vous pouvez faire avec Msgbox.
Réponse : Toutes les réponses sont possibles
Question 16 : Quel code permet d'obtenir ceci ?
La fonction InputBox en VBA (Visual Basic for Applications) permet à l'utilisateur de saisir une valeur ou une chaîne de caractères via une boîte de dialogue.
Cette fonction est très utile lorsque vous avez besoin de collecter des données auprès de l'utilisateur, par exemple pour demander son nom, son âge, etc.
Vous pouvez parramettrer un texte, un titre et une valeur par défaut
Réponse : maVariable = InputBox("Entrez le 1er nombre", "Mon super titre", "ahahaha")
Débug :
Question 17 : À quoi sert F8 (ou Fn+ F8 pour certain) dans l'interface de développement ?
Le mode de débogage en VBA (Visual Basic for Applications) est un environnement de développement intégré qui permet aux programmeurs de détecter et de résoudre les erreurs dans leur code VBA. En activant le mode de débogage, vous pouvez exécuter votre code étape par étape et visualiser les valeurs des variables à différents points du programme.
Le mode de débogage offre plusieurs fonctionnalités utiles, notamment :
Des points d'arrêt : vous pouvez placer des points d'arrêt à des endroits spécifiques de votre code pour arrêter l'exécution du programme à ces endroits. Cela vous permet de vérifier les valeurs des variables et d'inspecter l'état du programme à ce moment précis.
Des fenêtres d'inspection : vous pouvez afficher des fenêtres qui vous permettent d'inspecter les variables, les objets et les propriétés à différents points du programme. Cela vous permet de vérifier les valeurs des variables à différents stades de l'exécution du programme.
Des outils de surveillance : vous pouvez surveiller les variables et les expressions spécifiques pendant l'exécution du programme. Cela vous permet de vérifier les valeurs des variables au fur et à mesure que le programme s'exécute.
Réponse : En mode Débogage permet le Pas à Pas
Question 18 : À quoi sert la Fenêtre de Variables locales ?
La fenêtre de Variables Locales est un outil très utile en VBA (Visual Basic for Applications) qui permet de surveiller les valeurs des variables locales pendant l'exécution d'un code VBA.
Cette fenêtre affiche les noms et les valeurs des variables locales définies dans la procédure ou la fonction active, ainsi que leur type de données. Elle peut être utile pour vérifier si les valeurs des variables sont correctes ou pour déterminer l'emplacement d'une erreur de code.
Réponse : En mode Pas à Pas cette fenêtre affiche automatiquement toutes les variables déclarées dans la procédure active, ainsi que leurs valeurs.
Question 19 : À quoi sert le code : On error Resume next?
Réponse : lorsqu’une erreur d’exécution se produit, le contrôle passe à l’instruction qui suit sans provoquer d'erreur
Boucle :
Question 20 : Quelle boucle N'EXISTE PAS sous VBA ?
Il existe trois structures de boucle en Excel - VBA qui permettent de répéter une série d'instructions :
La boucle For : elle permet d'effectuer une série d'itérations pour un nombre donné de fois, en utilisant une variable de compteur qui est automatiquement incrémentée à chaque itération.
La boucle Do While : elle permet de répéter une série d'instructions tant qu'une condition spécifiée est vraie.
La boucle Do Until : elle fonctionne de la même manière que la boucle Do While, mais répète les instructions tant qu'une condition spécifiée est fausse.
Réponse : Do Next
Question 21 : Quelle réponse est FAUSSE ?
Ce code est correct et fonctionnera correctement.
Réponse : Ce code va bugger
Question 22 : Que faut-il mettre en 1, 2 et 3 pour que le code dans la variable retour les sommes des salaires des "Non-Cadre" ?
Le paramettre Field indique la colonne visé par le filtre
Le 1er paramettre de sous total indique le calcul qui va être effectué. 9 correspond à une somme.
Réponse : Réponse 1) = 8 ; Réponse 2) = 3 ; Réponse 3) = 9
Fin de la première partie
Il y a beaucoup de notion niveau débutant à voir sur Excel-VBA, nous avons volontairement mis des pièges pour vous forcer à réfléchir et à nous prouver que vous utilisez correctement Excel-VBA.
Nous estimons quand même que ces questions sont représentatives du niveau de connaissance théorique et pratique.
Nous espérons que ce test vous a été profitable pour connaitre votre niveau.
Comments