Technologie de l'information et de la communication
Un peu geek mais surtout un dinosaure, de ceux qui ont soudé les composants de leur première machine, flashé la mémoire et publié dans Hebdogiciel.
La citation du jour
Ne rien aimer, ce n'est pas vivre ; n'aimer que faiblement, c'est languir plutôt que vivre.  (Fénelon )
La réflexion du jour
Aimet et détester sont des sentiments intellectuellement proches mais, quand l'un attire l'autre repousse comme les deux pôles d'un aimant.
Activités
geek - cycliste - généalogiste - collectionneur - citoyen - marcheur - scripteur - Photographe - instituteur - enseignant en sciences - formateur - journaliste local - bénévole
Les mots clés
doc TIC * courriels * réseaux sociaux * chats * navigateurs * web & internet * langage Php * hébergeur OVH * informatique * Formation à distance * Chatons * E-learning * Logiciel libre * GAFAM * vidéoconférence * Sécurité * courrielleurs * fil d’informations * messagerie instantanée
Lorand

Site personnel de Roland Bouat. Pour les curieux : Lorand est un anagramme de Roland.

EXCEL : Utiliser VisualBasic dans Excel 2007

Guide ou cours pour autoformation

dimanche 10 février 2019 , par Roland


Des cours sur la toile

Des petits cours pour apprendre à petits pas

0- Vocabulaire

  • 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

1- Démarrer

  • 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.

2- Accéder à Visual Basic

  • 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é.

3- Créer une macro automatiquement

  • 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

4- Visualiser le contenu d’une une macro

  • 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)

5- Lancer une 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

6- Modifier le nom d’une macro

  • 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

7- Ajouter un commentaire dans le code la macro

  • 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

8- positionner un bouton pour lancer une macro dans une feuille de calculs,

  • 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

9- Modifier le texte d’un bouton d’appel de macro

  • 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

10- Sub : Créer une macro depuis l’éditeur Visual Basic

  • 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 !

11- Range & Select : Code pour sélectionner une case précise

Exemple : sélectionner la cellule R2

  • Range("R2").Select

Range est un objet.

12- Sélectionner une plage

Exemple : sélectionner la plage R2:M12

  • Range ("R2:M12").Select

Si la plage est nommée, le nom peut être utilisée. Exemple avec la plage dénommée "roland".

  • Range ("roland").Select

13- Sélectionner des cellules non contigües

Exemple : sélectionner les cellules R2:M12

  • Range ("R2, :M12").Select

14- Cells : Sélectionner une cellule à partir du n° de ligne et de colonne

Exemple : sélectionner la cellule de la 13è colonne et de la 12è ligne

  • Cells(12,13).Select

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.

15- ActiveCell & Offset : sélectionner une cellule relativement à la cellule active

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

16- Rows : Sélectionner une ou plusieurs lignes

Exemple : pour sélectionner les lignes 10 à 12

  • Rows("10:12").Select

Note : on peut aussi utiliser Range : Range(10:12).Select

Attention : on utilise les guillemets.

17- Columns : Sélectionner une ou plusieurs colonnes

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

18-Comment lister les propriétés

  • 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

19- value : attribuer une valeur numérique à un objet

  • 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.

20-attribuer une valeur texte à un objet

  • 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 (...)

21- Sheets : écrire dans une autre feuille du même classeur

22- Workbooks : écrire dans

22- Workbooks : écrire dans une feuille d’un autre classeur

23- Selection & ActiveCell : Quelques propriétés pour les objets de type cellules

  • 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 ?

modération a priori

Ce forum est modéré a priori : votre contribution n’apparaîtra qu’après avoir été validée par un administrateur du site.

Qui êtes-vous ?
Votre message

Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Brèves
19 octobre 2020 – Correction des erreurs d’encodage terminée...

... peut-être !
La probabilité que l’encodage se soit emmêlé les pinceaux vient probablement d’une mise à jour de l’ensemble php/Mysql mais également, (...)

1er juin 2020 – Les "bizarreries" continuent...

Déjà un mois que je me bagarre avec elles ! Le progrès principal est la probable identification. Il s’agit des mises à jour Apache, MySql, PHP, qui (...)

1er mai 2020 – Bizarrerie sur mon site

Depuis que le site a été restauré, il semblerait qu’il y ait eu un bug lors de la restauration, bug ne concernant que certaines informations (dont, (...)