Catégorie : Macros utiles

Outlook

Signer numériquement ses macros

Créer une macro implique d’abaisser le niveau de sécurité de son poste de travail.
Pourtant, Microsoft propose une solution gratuite pour allier macro et sécurité : l’auto-certification.
Grâce à cette astuce, vous pourrez lancer vos macros signées tout en inhibant toutes les autres !

Localiser Selfcert.exe

Selfcert.exe est un utilitaire gratuit installé sur votre poste de travail en même temps que la suite Office.

Il est localisé dans votre répertoire c:\Program files (x86)\Microsoft Office\version_de_votre_suite.

En cas de souci, utilisez le moteur de recherche de votre explorateur pour localiser cet utilitaire.

Double cliquez sur son Selfcert.exe pour lancer le programme.

Une boîte de dialogue vous invite à créer un certificat : affectez-lui un nom, par exemple, le nom de votre société. Validez. Votre certificat est créé.

Signer une macro à l'aide de votre certificat

Toutes les macros créées par vos soins devront désormais être rattachées à votre certificat pour s’exécuter sur votre poste de travail.

Pour cela :

  • Ouvrez votre macro.
  • Activez le menu Outils puis Signature électronique.
  •  Cliquez sur Choisir et pointez vers le certificat créé (ou sur le lien Autre choix si plusieurs certificats sont présents sur votre disque dur). 
  • Validez. Votre macro est signée.

Gérer le niveau de sécurité de vos macros

Une fois votre certificat installé, pensez à ajuster le niveau de sécurité de votre poste de travail en activant l’onglet Développeur puis Sécurité des macros.

Optez pour Notifications pour les macros signées numériquement, toutes les autres macros sont désactivées.

 

 

Cette manipulation est à effectuer une fois pour chacun des programmes Office (une fois pour Outlook, une fois pour Excel, etc.).

Refermez la boîte de dialogue.

 

Partager un certificat avec d'autres utilisateurs

Lors de l’ouverture d’un fichier contenant une macro signée, l’utilisateur est informé de la présence d’un certificat par le biais d’un message.

Pour valider votre certificat, il devra cliquer sur  Approuver tous à partir de l’éditeur. Il pourra ensuite ajuster ses paramètres de sécurité comme expliqué précédemment. Désormais, toutes vos macros signées seront automatiquement acceptées.

 

Supprimer un certificat

On « révoque » un certificat par le biais soit de votre navigateur, soit en passant par le Panneau de configuration.

Sous Chrome :

Activez Paramètres Paramètres avancés (tout en bas de la page) – Gérer les certificats.

La liste de vos certificats s’affiche et vous pouvez alors les supprimer.

Par le panneau de configuration :

Bouton Démarrer Paramètres (roue dentée).
Dans la zone de moteur de recherche, tapez « certificats » et sélectionnez l’option Gérer les certificats utilisateur.
Cette action ouvre un nouveau panneau.
Double cliquez sur Personnel Certificats.
Sélectionnez le certificat et cliquez ensuite sur X et validez.

 

PowerPoint

Comment réaliser un quiz/questionnaire à l’aide des macros

En juin dernier, je vous proposais d’utiliser un petit module pour réaliser un quiz/questionnaire sous PowerPoint. Je vous propose aujourd’hui, une version plus élaborée faisant appel aux macros. La différence ? Cette version permet de calculer le score obtenu et affiche une image contextualisée en fonction du score obtenu. Contrepartie de cette amélioration, un sujet bien plus complexe à maîtriser !
Quelques explications, plus bas dans la page, sous les vidéos.
Dans la partie présentation du quiz, je parle d’un bouton Fin qu’on ne retrouve pas dans la vidéo : après réflexion, j’ai préféré attacher le code correspondant (initialisation des variables) au bouton Commencer.

 

La création de ce quiz se déroule en deux temps :

  • phase 1 : élaboration du questionnaire
  • phase 2 : rédaction du code et tests correctifs;

L’élaboration du questionnaire

Les diapositives composant le questionnaire ne présentent aucune difficulté particulière : il s’agit de simples dias dans lesquelles les réponses sont constituées d’images mais vous pourriez vous contenter de zones de textes (il est important de dessiner une zone de texte indépendante par réponse possible) ou même un mixte des deux : une réponse image/une réponse texte !

Comme la structure de la diapositive de test est toujours identique, vous pouvez réaliser un masque spécifique mais cela est optionnel et ne change rien au niveau du code.

Dans la version finale, j’ai préféré dessiner une forme à l’aide des outils de dessin pour Question suivante qu’utiliser le contrôle bouton de la barre développeur car cette option est finalement plus simple à mettre en oeuvre.

La rédaction du code

Les variables

Comme précisé dans la vidéo, j’utilise toujours une combinaison de minuscules/majuscules dans le nom de mes variables ou contrôles.

Je fais référence à ces variables/contrôles dans mon code en les saisissant en minuscules. Ainsi, lorsque je valide ma saisie, je vois immédiatement ceux qui sont mal orthographiés : vba ne modifie pas la graphie, ce qui indique une faute de frappe.

Je fais parfois référence à certains contrôles en indiquant le nom du masque (ex : slidelayout19) quand le même nom de variable existe sur des masques (slidelayout en anglais) différents : ne pas préciser le masque générerait un message d’erreur.

Les propriétés utilisées sont les suivantes :

  • Application.ActivePresentation.SlideShowWindow.View.Next : permet de passer à la diapositive suivante.
  • nomdel’objet.visible : permet d’afficher une image (true) ou non (false).

Le code init() met tous les paramètres à 0 et rend toutes les images visibles.

Le code ScoreFinal est à associer au bouton figurant sur la dernière diapositive de question.

Enfin, j’ai utilisé l’instruction conditionnelle If pour tester le score final. Sa structure est la suivante :

If test then

instructions 

elseif test then

instructions

elseif test then

instructions

else

instructions

end if

 

On peut avoir autant de Elseif qu’il y a de conditions -1 puisque pour la dernière, on utilisera Else.

La version ci-jointe du diaporama est quelque peu différente : la slide de score intermédiaire affiche également la bonne réponse mais je gage que vous auriez su gérer ce point ;-).

Le nom de certains contrôles ont pu être modifiés.

Word

Conversion automatique de guillemets anglais en français (et réciproquement)

Rien de plus fastidieux que de convertir des guillemets anglais en français et réciproquement. Heureusement, les macros sont là pour nous soulager de ces tâches chronophages…

Cette macro m’a paru intéressante dans le cas où l’on est fréquemment écrire des documents en anglais. Elle permet, grâce à une combinaison de touche (Ctrl+Maj+G) de modifier le format des guillemets.

Dans un nouveau document Word, activez la combinaison de touches Alt + F11 et sélectionnez Normal dans la fenêtre Projet, puis Module dans le menu Insertion. Collez cette macro dans la fenêtre vierge qui s’ouvre :

Public Sub LangueGuillemets()
If Options.AutoFormatAsYouTypeReplaceQuotes = False Then
Options.AutoFormatAsYouTypeReplaceQuotes = True
StatusBar = « Guillemets FRANCAIS activés »
Else
Options.AutoFormatAsYouTypeReplaceQuotes = False
StatusBar = « Guillemets ANGLAIS activés »
End If
End Sub

Fermez l’éditeur de macro.

Dans le document Word, activez Fichier, Options, Personnaliser le ruban. Tout en bas, repérez le bouton Personnaliser et cliquez dessus. Dans Catégories, sélectionnez Macros, et LangueGuillemets dans la liste des macros.

Personnaliser ses raccourcis clavier sous Word

Dans le champ Nouvelle touche, appuyez simultanément sur les touches Ctrl+Maj+G.
Acceptez d’enregistrer le nouveau normal.dot.

Remarque Top-Assistante : en anglais, la règle d’écriture de signes de ponctuation varie de l’écriture française. Ainsi, il n’y a aucun espace avant les signes de ponctuation, notamment « : », le « ; », le « ! », le « ? ».

Cette macro devrait également fonctionner sous PowerPoint.

Une contribution de Bugstar