
Sommaire
>
VBA
Quelles sont les macros qui s'exécutent seules dans Word ?
Comment exécuter une macro d'un document Word ?
Quelles sont les syntaxes du langage VBA ?
Comment sélectionne-t-on avec VBA Word
Que représente la collection Sentences ?
Comment mettre en place un moyen d'ouvrir un document à l'endroit de la dernière édition ?
Je reçois un message d'erreur me signalant que le type de données utilisateur est non défini, pourquoi ?
Comment appeler une macro se trouvant dans un autre document ?
Comment déclarer mes variables en VBA ?
Comment connaitre les valeurs des twips en VBA ?
Comment vider le presse-papier en VBA ?
Comment atteindre une plage comprise entre deux signets ?
Pourquoi travailler avec l'objet Range et l'objet Selection ?
Comment faire pour changer l'imprimante par défaut en Word ?
Comment tester le type de données dans mon code ?
Comment déclarer un objet application dans mon code ?
Pourquoi ai-je toujours un texte sélectionné ?
Comment insérer la date du jour dans un signet Word ?
Comment créer un certificat local pour les macros VBA ?
Comment changer le répertoire par défaut de Word ?
Est-il possible d'obtenir plusieurs résultats d'une fonction ?
Comment récupérer les fautes d'orthographe contenues dans un document et les sauvegarder dans un fichier texte ?
Peut-on ajouter des raccourcis-clavier par le code ?
Peut-on générer les statistiques par le code ?
Comment remplacer une macro dans tous fichiers DOT d'un répertoire ?
Comment obtenir l'affichage de certaines boîtes de dialogue prédéfinies ?
Pourquoi lorsque je tape mon code, la liste me proposant la suite du code n'apparaît pas ?
Pourquoi les arguments passés à une méthode ou une propriété sont-ils précédés du nom de l'argument et de := ?
14.1. Fichiers (3)
14.3. Paragraphes (5)
Quelles sont les macros qui s'exécutent seules dans Word ?
Comment exécuter une macro d'un document Word ?
Quelles sont les syntaxes du langage VBA ?
Comment sélectionne-t-on avec VBA Word
Que représente la collection Sentences ?
Comment mettre en place un moyen d'ouvrir un document à l'endroit de la dernière édition ?
Je reçois un message d'erreur me signalant que le type de données utilisateur est non défini, pourquoi ?
Comment appeler une macro se trouvant dans un autre document ?
Comment déclarer mes variables en VBA ?
Comment connaitre les valeurs des twips en VBA ?
Comment vider le presse-papier en VBA ?
Comment atteindre une plage comprise entre deux signets ?
Pourquoi travailler avec l'objet Range et l'objet Selection ?
Comment faire pour changer l'imprimante par défaut en Word ?
Comment tester le type de données dans mon code ?
Comment déclarer un objet application dans mon code ?
Pourquoi ai-je toujours un texte sélectionné ?
Comment insérer la date du jour dans un signet Word ?
Comment créer un certificat local pour les macros VBA ?
Comment changer le répertoire par défaut de Word ?
Est-il possible d'obtenir plusieurs résultats d'une fonction ?
Comment récupérer les fautes d'orthographe contenues dans un document et les sauvegarder dans un fichier texte ?
Peut-on ajouter des raccourcis-clavier par le code ?
Peut-on générer les statistiques par le code ?
Comment remplacer une macro dans tous fichiers DOT d'un répertoire ?
Comment obtenir l'affichage de certaines boîtes de dialogue prédéfinies ?
Pourquoi lorsque je tape mon code, la liste me proposant la suite du code n'apparaît pas ?
Pourquoi les arguments passés à une méthode ou une propriété sont-ils précédés du nom de l'argument et de := ?
14.1. Fichiers (3)
Comment Lire et modifier les propriétés des fichiers Office ?
Comment utiliser le système de fichier dans une procédure ?
Comment fonctionnent les protections Word ?
14.2. Formulaires 'UserForm' (1)Comment utiliser le système de fichier dans une procédure ?
Comment fonctionnent les protections Word ?
14.3. Paragraphes (5)
Comment ajouter un paragraphe dans un document ?
Comment accéder aux paragraphes d'un document Word ?
Lorsque je change le texte de mon paragraphe la mise en page change ?
Pourquoi je n'arrive pas à sélectionner le dernier mot de mon paragraphe ?
Comment supprimer les lignes vides d'un document ?
14.4. Interraction avec d'autres logiciels (3)Comment accéder aux paragraphes d'un document Word ?
Lorsque je change le texte de mon paragraphe la mise en page change ?
Pourquoi je n'arrive pas à sélectionner le dernier mot de mon paragraphe ?
Comment supprimer les lignes vides d'un document ?
Comment envoyer un document par mail ?
Comment utiliser Word avec les autres logiciels de la suite Office ?
Comment ajouter une référence à mon projet ?
14.5. Pages (4)Comment utiliser Word avec les autres logiciels de la suite Office ?
Comment ajouter une référence à mon projet ?
| ||||||||||||||||||||||||||||||||||||
auteur : Lebeau Olivier | ||||||||||||||||||||||||||||||||||||
En attribuant un nom particulier à une macro, la macro pourra s'exécuter lors de certains évènements comme l'ouverture d'un document, la création d'un nouveau document.
|
| ||
auteur : SilkyRoad | ||
Nécessite d'activer la référence "Microsoft Word xx.x Object Library".
|
| ||
auteur : Maxence Hubiche | ||
Un petit tutoriel pour vous guider :
Les cinq syntaxes de base du langage VBA
|
| |||||
auteur : bidou | |||||
Quelques exemples standards.
Sélectionner tout le document
Aller au début du document
Aller à la fin du document
Sélectionner une ligne
Sélectionner le troisième paragraphe
|
| ||
auteur : bidou | ||
Sentences est une collection renvoyant les "phrases" de son conteneur (document, paragraphe ...).
Par phrase on entend tout ce qui est compris entre des points et/ou des retours chariots.
|
| ||||
auteur : Lebeau Olivier | ||||
Alors que les versions précedentes de Word permettaient une recherche rapide du dernier point d'insertion dans le document,
la version 2007 ne possède plus cette fonctionnalité. Le code fournit ci-dessous permet de palier ce manque.
Vous devez utiliser deux codes, l'un sur l'ouverture et l'autre sur la fermeture du document.
Sur l'ouverture, pour atteindre un signet et le supprimer.
Sur la fermeture, pour ajouter un signet à l'endroit de la dernière édition.
Vous pouvez placer ce code dans le document que vous éditez,
auquel cas il ne fonctionnera que pour ce document, ou dans le Normal.dotm,
et il sera utilisé pour tous vos documents.
|
| ||
auteur : Lebeau Olivier | ||
Lors de l'appel en VBA d'une application autre que l'application hôte, il est impératif d'ajouter la bibliothèque de cette application à votre projet.
Ne pas ajouter cette référence, revient à utiliser des types de données qui sont inconnus.
On ajoute ces références par le menu "Outils" "Références" de l'éditeur VBE. La boîte de dialogue contient la liste des bibliothèques disponibles.
|
| ||
auteur : Lebeau Olivier | ||
Il est possible d'utiliser une macro se trouvant dans un autre document. Il faut pour cela que le document contenant la procédure soit ouvert.
Avec "MaRoutine" le nom de la macro située dans l'autre document.
|
| ||
auteur : nico-pyright(c) | ||
L'objet Screen n'existant pas en VBA, on peut retrouver ces valeurs en utilisant les fonctions de l'API Win32 :
|
| ||
auteur : rp | ||
L'objet ClipBoard n'existant pas en VBA, il faut utiliser les fonctions de l'API Windows :
|
| ||
auteurs : Maxence Hubiche, bidou | ||
On utilise la décomposition du range en Start et End
|
| ||
auteur : bidou | ||
Cela permet de gérer des opérations sur une plage sans modifier l'emplacement du point d'insertion.
Supposons que je veuille insérer deux signets, l'un sur un mot, l'autre sur le point d'insertion, je peux faire :
|
| ||
auteur : Lebeau Olivier | ||
Pour changer l'imprimante par défaut en Word, c'est n'est pas sur la collection documents qu'il faut agir mais sur
l'objet application.
Le code ci-dessus permet de changer l'imprimante par défaut en activant PDFCreator et après l'impression, change de nouveau l'imprimante par défaut
en reprenant l'imprimante du départ.
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
auteur : Lebeau Olivier | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Dans le déroulement d'un code, il est parfois intéressant de connaître le type de variable utilisée.
Les résultats renvoyés sont sous la forme d'un entier.
|
| |||
auteur : Lebeau Olivier | |||
Il existe deux grand principe pour la déclaration de vos objets en VBA : - Le EarlyBinding - Le LateBinding
EarlyBinding On pourrait traduire par liaison précoce. Ce mode de déclaration signifie que l'on a ajouté la bibliothèque l'application dans les références du projet. L'avantage est la possibilité d'utiliser l'IntelliSense ou Auto-Completion lors de l'écriture de votre code. L'avantage est que vous éliminez des erreur de frappe ou de syntaxe lors de l'écriture votre code. L'inconvenient est que si vous distribuez votre projet, les bibliothèques doivent aussi se trouver sur les autres PC.
LateBinding On pourrais traduire pas liaison tardive. Dans l'explication précédente, la bibliothèque etéit ajoutée au projet dès le début. Dans ce mode, la bibliothèque est appelée dans le code. L'avantage principal, c'est que votre code peut être distibué sans avoir à tenir compte de la version disponible de l'application. L'inconvenient, ce mode ne permet pas l'utilisation de l'IntelliSense.
| |||
lien : ![]() lien : ![]() |
| ||
auteur : bidou | ||
Il y a beaucoup de confusion possible entre range et selection or les deux objets sont différents.
Pour pouvoir basculer facilement de l'un à l'autre il faut utiliser une variable Range.
Prenons un exemple
Là, malgré le EndOf, le paragraphe est encore selectionné
Place le point d'insertion après le troisième paragraphe
|
| ||
auteur : SilkyRoad | ||
Nécessite d'activer la référence "Microsoft Word xx.x Object Library" :
Dans l'exemple ci-dessous le signet à renseigner doit être nommé "SignetDate"
|
| ||
auteur : ThierryAim | ||
Lorsque le niveau de sécurité intrinsèque des documents Office est réglé sur moyen ou élevé, il est alors impossible d'activer
automatiquement les macros d'un document.
La première solution consiste à régler le niveau de sécurité sur faible (Menu Outils ![]() ![]()
L'autre solution consiste à auto-certifier les macros d'un document.
Un certificat local, valable uniquement sur la machine sur laquelle il est installé, va vous permettre d'éviter le désagrément d'avoir à confirmer l'activation des macros à l'ouverture d'un document, ou pire, la désactivation systématique des macros.
Comment procéder :
Pour supprimer un certificat existant :
|
| ||
auteur : Lebeau Olivier | ||
Deux méthodes pour changer le répertoire par défaut de Word. La première est permanente
La seconde n'est valable que pour la session Word en cours, si vous fermez Word, ce paramètre disparaît.
|
| |||
auteur : Lebeau Olivier | |||
En principe, une fonction ne peut renvoyer qu'une seule variable.
Partant de là, il est possible d'utiliser une variable de type utilisateur.
Voilà un type de donnée défini par l'utilisateur.
Voilà un procédure qui va faire appel à une fonction et passer en paramètre une variable qui contient 2 valeurs.
Notre fonction renvoie bien deux résultats
|
| ||
auteur : Lebeau Olivier | ||
Pour récupérer les fautes d'un document, il faut faire appel à la collection SpellingErrors.
Nous allons parcourir les membres ce cette collection, les ajouter à une variable et ensuite, insérer la variable
dans un nouveau document qui sera sauvegardé au format texte.
|
| ||
auteur : bidou | ||
C'est assez facile.
L'exemple suivant affecte la mise en exposant à CTRL+MAJ+E
|
| ||
auteur : bidou | ||
Oui, il faut par contre demander le calcul pour une statistique
Vous pouvez obtenir les statistiques pour
|
| ||
auteur : SilkyRoad | ||
|
| ||
auteur : Lebeau Olivier | ||
Pour faire appel à une boîte de dialogue :
Je vous conseille de consulter l'aide pour obtenir la liste de toutes les boîtes de dialogue disponibles. |
| ||
auteur : Lebeau Olivier | ||
L'éditeur VBA (VBE) possède une fonction qui ouvre une liste déroulante lorsuqe l'on écrit du code. Si cette fonction n'est pas disponible, c'est que la bibliothèque associée au code que vous utilisez n'a pas été ajoutée à votre projet. ![]() La liste déroulante | ||
lien : ![]() |
| ||||
auteur : Lebeau Olivier | ||||
Cette notation n'est pas obligatoire, mais elle rend la saisie et la compréhension du code plus facile. Ainsi les deux lignes suivantes sont équivalentes :
Si certains arguments sont optionnels et ne sont pas renseignés, si vous n'utilisez pas la notation avec le nom et le :=, vous devrez utiliser des espaces entre les séparateurs.
Il est beaucoup plus facile d'utiliser le nom des arguments, même si la saisie du code est un peu plus longue.
Le premier des deux code est plus explicite !
|