EXCEL : Utiliser VisualBasic dans Excel 2007
Guide ou cours pour autoformation
Mots clés :
excel
dimanche 10 février 2019
, par Roland
Des cours sur la toile
Des petits cours pour apprendre à petits pas
- langage objet : basé sur l’utilisateur => les procédures s’exécutent selon les actions de l’utilisateur. Il n’y a donc pas impérativement l’exécution d’une série d’instructions programmés par avance.
- procédures : instructions définies par le.s programmeur.s pour répondre aux actions de l’utilisateur. Une procédure ressemble à une programmation traditionnelle.
- propriétés : les caractéristiques d’un objet (on écrira objet.propriété). La liste des propriétés est presque fixe.
- méthodes : les actions possibles sur un objet (on écrira objet.méthode). La liste des méthodes est presque fixe.
- constante : valeur qui ne change pas quel que soit le contexte, quelle que soit l’action de l’utilisateur
- variable : nom d’une valeur qui peut varier selon le contexte
- Ouvrir Excel
- activer l’onglet Développeur : Fichier > Options > Personnaliser le ruban & cocher la case Développeur
Dorénavant, il sera supposé que Excel est ouvert avec l’onglet Développeur.
- Ouvrir l’éditeur de code : Onglet Développeur => icône Visual Basic OU [alt] + [F11]
Dorénavant, il sera supposé que l’accès à Visual Basic ne pose plus de difficulté.
- Cliquer sur Enregistrer une macro
- Donner un nom explicite à la macro dans le champ Macro1
- Cliquer sur le bouton OK
- Réaliser les actions souhaitées
- Cliquer sur Arrêter l’enregistrement
- Cliquer sur l’icône "Macros"
- Cliquer sur le nom de la macro à éditer
- Cliquer sur modifier : l’éditeur s’ouvre et le contenu des macros est affiché, celle sui était sélectionner étant en haut de l’écran (tant qu’aucun défilement n’est mis en action)
OU
- Accéder à Visual Basic
- Cliquer sur Module1 (s’il y a plusieurs modules créés, chercher celui qui contient la macro)
- Activer la case souhaitée pour le départ (c’est souvent utile)
- Cliquer sur l’icône "Macros"
- Cliquer sur le nom de la macro à exécuter
- Cliquer sur Exécuter : la macro s’exécute
- Visualiser le contenu de la macro
- La macro commence par le mot clé Sub et est suivi du nom de la macro, lui-même suivi de () (pour le passage de paramètres)
- Modifier le nom de la macro mais conserver le mot clé Sub et les parenthèses
- Visualiser le contenu de la macro
- entre les lignes qui commencent par Sub (début de la macro) et End sub (fin de la macro, insérer une ligne
- taper le commentaire en commençant par une apostrophe
Nota : un commentaire peut aussi être positionné à la fin d’une ligne de code
- depuis la feuille de calcul, cliquer sur l’icône "Insérer"
- sélectionner l’icône bouton dans "Cpntrôles de formulaire"
- tracer le bouton avec le bouton droit de la souris à l’endroit souhaité
- cliquer sur le nom de la macro à affecter au bouton dans la fen^$etre qui vient de s’ouvrir
- cliquer sur le bouton OK : le bouton est fonctionnel
- cliquer avec le bouton droit de la souris sur le bouton dont il faut modifier le texte
- cliquer avec le bouton droit sur la bordure qui vient de s’afficher autour du bouton
- cliquer sur "modifier le texte"
- modifier le texte (il est possible de modifier la police, la taille et le style (gras, italique, souligné, couleur) du texte ainsi que le centrage depuis l’onglet accueil
- accéder à l’éditeur Visual Basic
- taper Sub puis une espace puis le nom de la macro
- taper sur [Entrée] : la macro est créée et peut être utilisée. Nota : pour l’instant, elle ne fait rien !
Exemple : sélectionner la cellule R2
Range est un objet.
Exemple : sélectionner la plage R2:M12
Si la plage est nommée, le nom peut être utilisée. Exemple avec la plage dénommée "roland".
Exemple : sélectionner les cellules R2:M12
- Range ("R2, :M12").Select
Exemple : sélectionner la cellule de la 13è colonne et de la 12è ligne
Attention : c’est d’abord le n° de ligne PUIS le n° de colonne.
Attention : on n’utilise pas les guillemets avec cells.
Cells est un objet comme Range.
Exemple ; la cellule active est la cellule R2. Décalage de 10 cellules vers la droite et de 5 cellules vers le haut pour arriver à la cellule M12.
- ActiveCell.Offset(10,-5).Select
Note : ActiveCell fait référence à la cellule active
Exemple : pour sélectionner les lignes 10 à 12
Note : on peut aussi utiliser Range : Range(10:12).Select
Attention : on utilise les guillemets.
Exemple : sélectionner les colonnes 13 à 18
Columns("M:R").Select
Attention : on utilise les lettres pour désigner les colonnes.
Note : On peut aussi utiliser Range Columns("M:R").Select
- Créer une macro
- Ajouter entre "Sub ..." et End Sub" un objet : le plus courant étant sans doute "Range". Taper
Range ("R2")
=> L’objet sera donc la cellule R2 (colonne R, deuxième ligne). - Faites suivre l’expression
Range ("R2")
d’un point pour lister les propriétés associées à l’objet "Range"
A cette étape, la macro n’est pas fonctionnelle et un message d’erreur sera émis si elle est utilisée
- Créer une macro contenant l’objet
Range ("R2")
et lui attribuer la propriété "value" (pour valeur). - taper ensuite = 66 par exemple. La ligne complète sera donc
Range ("R2").value = 66
- La macro est maintenant fonctionnelle : retourner sur la feuille, insérer un bouton et lui affecter la macro.
- Tout clic sur le bouton écrira 66 dans la cellule R2.
Note : la propriété "value" est automatiquement affectée à un objet si aucune propriété n’est spécifiée.
- Même procédure que pour une valeur numérique mais le texte doit être mis entre guillemets. Exemple :
Range ("R2").value = "Roland"
- Un clic sur le bouton affichera maintenant le mot Roland dans la case R2.
21- Sheets : écrire dans une autre feuille du même classeur
22- Workbooks : écrire dans une feuille d’un autre classeur
- Clearcontents pour effacer le contenu. Exemple :
Range ("R2").ClearContents<code> (c'est une méthode)
-* {{Font}} pour accéder aux "sous-propriétés pour définir : le "gras" ({{bold}} valeur {{True}} ou {{False}}), l'italique ({{Italic}} valeur {{True}} ou {{False}}), la police à utiliser ({{Name}} valeur le nom de la police entre guillemets), la taille de la police ({{Size}} valeur un nombre), le texte souligné ({{Underline}} valeur {{True}} ou {{False}}... Exemple : <code>Range ("R2").Font.Size = 26
- Borders pour ajouter (1) ou retirer (0) une bordure. Exemple :
Range ("R2").Font.Borders = 1
- Selection est un objet qui fait référence à la sélection actuelle (ce peut être une cellule, une colonne, une ligne, toute une feuille, une matrice (un certain nombre de celulles dans une zone rectangulaire) ou une sélection multiple (des cellules non contigües). Exemple :
Selection.Size = 26
pour affecter la taille de police 26 points à toutes les cellules sélectionnées. - ActiveCell est un objet qui fait référence à la celulle active. Exemple :
ActiveCell.value = "Roland"
pour affecter le mot (teste) "Roland" à la celulle active.
sélectionner une ou des cellules
De manière implicite, Les propriétés ActiveSheet et ActiveWorkbook sont définies et peuvent donc être omises.
Les plages, les noms de feuille ou les noms de classeur utilisées entre guillemets peuvent faire référence à une variable nommée (ne pas utiliser alors les guillemets). ActiveWorkbook.Sheets(mafeuille) si mafeuille a été définie comme une variable feuille (mafeuille="Feuille1" par exemple).
- Pour sélectionner la cellule B26 : Range("B26").select ou Range(Cells(26,2).Select
- Pour récupérer la valeur contenue dans la cellule Z2 : Range("B26").value ou Range(Cells(26,2).value
- Pour sélectionner la plage H17:B26 : Range(Cells(17, 8), Cells(26, 2)).Select ou Range("H17:B26").Select ou Range("H17", "B26").Select
Voir en ligne :
https://www.excel-pratique.com/fr/v...
Un message, un commentaire ?