Vous trouverez ci-dessous les problèmes courants que vous pouvez rencontrer lorsque vous convertissez votre code VBA en Apps Script avec Macro Converter.
Impression
Les API VBA qui impriment des fichiers sont automatiquement converties en Apps Script, mais elles peuvent se comporter différemment de l'API VBA d'origine. Vous trouverez deux exemples ci-dessous :
API VBA | Comportement dans Apps Script |
---|---|
PrintOut | Convertit en Apps Script, mais l'API Apps Script imprime dans un fichier au lieu d'une imprimante. Vous pouvez imprimer manuellement le fichier PDF. |
PrintToFile | Convertit en Apps Script. Le fichier PDF est enregistré dans votre dossier Mon Drive. |
Éléments non convertis
Les fonctionnalités suivantes ne sont pas converties par le convertisseur de macro et doivent être converties manuellement:
- Exemples de déclencheurs
- Userforms
- Types de plages nommées non compatibles
Déclencheurs
Deux types de déclencheurs, les raccourcis clavier et certains déclencheurs basés sur des événements, ne sont pas convertis par Macro Converter. Dans de nombreux cas, vous pouvez créer ces déclencheurs manuellement.
Raccourcis clavier
Pour ajouter des raccourcis clavier, suivez la procédure permettant d'importer des fonctions en tant que macros.
Déclencheurs basés sur les événements
Certains événements du code VBA, tels que BeforeClose
ou BeforeSave
, n'ont pas d'équivalent dans Apps Script, mais vous pouvez peut-être créer une solution de contournement.
Pour des événements tels que BeforeClose
, vous pouvez créer un menu ou un bouton personnalisé à cliquer pour effectuer l'action qui doit être effectuée avant de fermer la feuille de calcul.
Étant donné que Google Sheets enregistre automatiquement chaque modification, il n'est pas possible de contourner les problèmes liés aux événements tels que BeforeSave
.
Userforms
Dans VBA, un UserForm est une fenêtre ou une boîte de dialogue dans l'interface utilisateur (UI) d'une application. Macro Converter ne convertit pas les UserForms. Vous pouvez les créer manuellement dans Apps Script.
Créer une boîte de dialogue de formulaire utilisateur
- Sur votre ordinateur, ouvrez le fichier converti dans Google Sheets.
- En haut, cliquez sur Extensions > Apps Script.
- À gauche de l'éditeur, à côté de "Fichiers", cliquez sur Ajouter un fichier > HTML. Nous vous recommandons d'attribuer au fichier HTML le même nom que votre UserForm VBA d'origine.
- Ajoutez les champs et les informations que vous souhaitez afficher dans votre formulaire. Pour en savoir plus sur les formulaires HTML, consultez le site W3school.com.
- À gauche, cliquez sur le fichier Apps Script (fichier GS) contenant votre code converti.
- Si vous disposez déjà d'un déclencheur
onOpen()
dans votre code, mettez-le à jour avec le code ci-dessous. Si le déclencheuronOpen()
n'est pas présent dans votre code, ajoutez le code ci-dessous.function onOpen() { SpreadsheetApp.getUi() .createMenu('User Form') .addItem('Show Form', 'showForm') .addToUi(); } function showForm() { var html = HtmlService.createHtmlOutputFromFile('userform_module_name') .setWidth(100) .setTitle('Sign-up for Email Updates'); SpreadsheetApp.getUi().showSidebar(html); }
- Remplacez
userform_module_name
par le nom du fichier HTML que vous avez ajouté. - En haut de la page, cliquez sur Enregistrer le projet .
- Basculez sur la feuille de calcul Google et actualisez la page.
- En haut de la feuille de calcul Google Sheets, cliquez sur User Form > Show Form (Formulaire utilisateur > Afficher le formulaire).
Plages nommées
Dans Excel, les plages nommées sont des noms attribués à une cellule ou à une plage de cellules.
Lorsque vous convertissez votre fichier Excel en feuilles de calcul Google, certains types de plages nommées ne sont pas convertis, car ils ne sont pas compatibles. Vous trouverez deux exemples ci-dessous :
Plages nommées non autorisées | Description |
---|---|
Tables | Non compatible avec Google Sheets, mais il existe une solution de contournement.
Pour recréer cette plage nommée dans Sheets, ajoutez une plage nommée qui pointe vers la notation A1 de la plage de la table. Utilisez le même nom que la plage nommée d'origine dans votre code VBA pour que le code converti la reconnaisse. |
Liste des plages | Non compatible avec Google Sheets. Il n'existe pas de solution de contournement. |
Articles associés
- Présentation du module complémentaire Macro Converter
- Déterminer si les macros VBA sont compatibles
- Convertir des macros VBA en Apps Script
- Corriger les erreurs dans votre code converti
- Regarder les tutoriels sur Macro Converter
- Liste des API VBA compatibles