« Macros-commandes VBA/Devenez un expert » : différence entre les versions

Contenu supprimé Contenu ajouté
m WPCleaner v1.41 - Corrigé avec P:CS (Section « Notes et références » manquante - Titre de section ne finissant pas par « = » - Flèche en caractères de texte)
m Robot : Remplacement de texte automatisé (-\n(==={0,3})(?: *)([^\n=]+)(?: *)\1(?: *)\n +\n\1 \2 \1\n)
Ligne 7 :
}}
 
== Introduction ==
 
Le langage ou code VBA contient différentes entités : des données, des modules, des classes, des structures, des instructions, des objets, des procédures, des fonctions, … Ces entités représentées par des lignes de texte s’organisent de façon purement hiérarchique
Ligne 15 :
* les procédures et fonctions contiennent des instructions (lignes de code)
 
== Les contenants de code VBA ==
 
Le code VBA est saisi et stocké dans 2 types de récepteurs sous un format uniquement textuel : des feuilles et des modules
Ligne 23 :
* Module de classe : objet VBA contenant les données et procédures pour un objet (on parle alors de propriétés et de méthodes). Ex : un objet compte en banque qui décrit ses données (mouvement, solde, …) et les opérations sur ses données (retrait, dépôt, virement, …).
 
== Les données des experts ==
 
=== Les variables ===
 
Les variables permettent de stocker toutes sortes de données et de faire évoluer les valeurs notamment lors de l’utilisation de boucles.
Ligne 95 :
Une variable est définie selon l’utilisation que l’on va en faire. Le type de variable choisi était auparavant fondamental au niveau de la mémoire utilisée par l’ordinateur, mais de nos jours ce problème n’est plus d’actualité car les ordinateurs ont de grandes mémoires.
 
=== Les nombres spéciaux VBA ===
 
'''Définition''' : les nombres sont des variables contenant des chiffres et des séparateurs décimaux, il y a 2 types expert de nombres
Ligne 104 :
monNombre est une variable destinée à contenir des nombres booléens(par exemple "0")
 
=== Les tableaux VBA ===
 
'''Définition''' : les tableaux sont des variables contenant d'autres variables de même type
Ligne 111 :
monTableau est un tableau contenant 10 éléments dont le type est une chaîne de caractères.
 
=== Les constantes VBA intégrées ===
 
'''Définition''' : les constantes intégrées sont fournies par les applications OFFICE (Word, Excel, …) ou le langage Visual Basic :
Ligne 122 :
Exemple : vbCrLf = retour à la ligne mais on ne peut pas écrire vbCrLf = Chr(13) + Chr(14)
 
== Les mots clés des experts ==
 
Les mots-clés des experts permettent de programmer des problématiques délicates ou complexes
Ligne 128 :
Exemple : ReDim, Static, Do, Loop, Break, On, Continue, Set, etc.
 
== Les objets experts de la bibliothèque Excel ==
 
Les objets des experts permettent de programmer des problématiques délicates ou complexes
Ligne 134 :
Exemples : Workbooks, Worksheets, Sheets, Rows, Columns, Object, Windows, Font , Interior , Offset, Calendar, Charts, Names, CommandBars, UserForms, ...
 
=== Les objets classeurs ===
 
Ouvrir un fichier avec trois feuilles déjà remplies pour y exécuter la macro :
Ligne 164 :
</source>
 
=== Les objets feuilles ===
 
Il faut définir une première plage, sur laquelle trier une deuxième :
Ligne 187 :
</source>
 
=== Les objets cellules ===
 
Ici on simule un copier-coller :
Ligne 221 :
{{remarque|contenu=Le problème du ''copy/paste'' est qu’il utilise le même presse-papier que l'utilisateur. Il suffit donc de changer de cellule manuellement (ou de copier du texte) pour que les données du programme lui échappent. La solution consiste ici à balayer les cellules une par une}}
 
=== Les objets lignes ===
 
<source lang="vb">
Ligne 240 :
</source>
 
=== Les objets colonnes ===
 
<source lang="vb">
Ligne 253 :
</source>
 
=== Les objets liens ===
 
La macro suivante placée dans une feuille crée automatiquement un hyperlien à chaque fois que l’on tape un mot dans une de ses cellules, vers sa définition du Wiktionnaire :
Ligne 267 :
</source>
 
=== Les objets Word ===
 
La macro suivante placée dans une feuille ouvre automatiquement un fichier Word et écrit une nouvelle phrase :
Ligne 292 :
</source>
 
=== Les objets Outlook ===
 
La fonction ''createitem'' de l’objet Outlook génère les différentes entités du logiciel<ref>http://msdn.microsoft.com/en-us/library/office/aa255722%28v=office.10%29.aspx</ref> :
Ligne 320 :
</source>
 
=== Les objets ActiveX ===
 
On peut facilement insérer dans une feuille de calcul Excel ou dans une feuille Word divers objets (des "contrôles")comme
Ligne 335 :
On peut également utiliser tous ces "contrôles" dans une boite de dialogue (Userform) que l’on peut créer dans VBA par formulaire / Userform, puis faire apparaître à l'exécution d'une macro par: Userform("truc").Show et disparaître par Userform("truc").Hide.
 
== Les procédures et les fonctions expertes ==
 
=== Usages complexes ===
 
* Les paramètres ou arguments
Ligne 344 :
* Les fonctions récursives
 
=== Les arguments des procédures ===
 
'''Définition''' : les arguments passés aux procédures sont aussi nommés paramètres, ce sont des valeurs nécessaires au traitement de la procédure. Exemple : après l'appel de la procédure ⇒ afficherMessageCible "ToiKeuJème", le résultat affiché à l’écran est : "Bonjour à ToiKeuJème"
Ligne 354 :
</source>
 
=== Les arguments et le résultat des fonctions ===
 
'''Définition''' : les arguments passés aux fonctions fonctionnent comme pour les procédures, le résultat est rangé sous le nom de la fonction. Exemple : après l'appel de la fonction ⇒ monBenefice = calculerBenefice(150,100), la variable monBenefice prend la valeur 150
Ligne 364 :
</source>
 
== Les instructions de débranchement ==
 
=== Les instructions conditionnelles complexes ===
 
{{Exemple
Ligne 380 :
⇒ L'exemple affiche "MILLE BRAVO !!!" si la valeur de la cellule E8 est 20 sinon affiche "PETIT BRAVO !!!" si la valeur de la cellule E8 est supérieure à 10, sinon affiche "PAS BRAVO DU TOUT !!!"
 
=== Les instructions de distinctions de cas ===
 
Cette instruction est utilisée lorsque le nombre de cas à tester(comme ci-dessus) devient important rendant difficiles les instructions employant des conditionnelles imbriquées (if...if...)
Ligne 406 :
 
 
=== Les Instructions de boucles avec bornes inconnues ===
 
'''Les boucles non bornées''' le plus souvent utilisées sont les boucles de type « « While … Wend » », elles permettent de répéter un nombre de fois indéfini au départ un bloc d'instructions, elles utilisent une condition qui est testée au début de chaque répétition.
 
==== La boucle While / Wend ====
 
L'instruction While Wend répète une action tant qu'une condition est vraie.
Ligne 433 :
}}
 
==== La boucle Do While / Loop ====
 
Cette boucle fonctionne de la même manière que While Wend (tant que la condition est vraie, la boucle est exécutée) :
Ligne 441 :
Loop
 
==== La boucle Do / Loop Until ====
 
Cette boucle fonctionne de la même manière que While Wend, exceptée la une condition qui est testée à la fin de chaque répétition.
Ligne 451 :
Le corps de la boucle (instructions) est alors toujours exécuté au moins une fois.
 
== REGEX ==
 
Nécessite de cocher "Microsoft VBScript Regular Expressions 5.5" dans "Outils\Références".
Ligne 460 :
* .Replace() : remplace le pattern par le paramètre deux.
 
=== Recherche ===
Obtenir les emplacements dans une chaine :
<source lang=vb>
Ligne 482 :
</source>
 
=== Extraire un mot ===
<source lang=vb>
Public Sub RegexExtraction()
Ligne 499 :
</source>
 
=== Remplacement ===
Supprimer toutes les balises HTML :
<source lang=vb>
Ligne 517 :
</source>
 
== Références ==
<references/>
{{Exemple
Ligne 531 :
}}
 
== Annexes ==
 
=== Bibliographie ===
* Jensen O.G., 2003, '''Initiation à la programmation VBA Word, KNOWWARE''', Ecuelles
* Greg Harvey et John Walkenbach, 2013, '''Excel 2013 et VBA Pour Les Nuls''', FIRST, Hoboken
* Amelot M., 2011, '''VBA Excel 2010''', ENI, St Herblain
 
=== Liens internes ===
* [[Visual Basic|Leçon VISUAL BASIC]]
* [[Tableur EXCEL|Leçon Tableur EXCEL]]
 
=== Liens externes ===
* [http://www.excel-pratique.com/fr/vba/procedures_fonctions.php Les procédures et les fonctions]
* [http://www.info-3000.com/vbvba/fichiers/index.php Les fichiers]