Résoudre les problèmes courants

Vous trouverez ci-dessous la liste des problèmes courants que vous pouvez rencontrer lorsque vous convertissez votre code VBA en Apps Script à l'aide de Macro Converter.

Impression

Les API VBA qui impriment des fichiers sont automatiquement converties au format Apps Script, mais peuvent se comporter différemment de l'API VBA d'origine. Voici deux exemples:

API VBAComportement dans Apps Script
PrintOutConversion au format Apps Script, mais l'API Apps Script imprime dans un fichier plutôt que dans une imprimante. Vous pouvez imprimer manuellement le fichier PDF.
PrintToFileConversion 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 Macro Converter et doivent être converties manuellement:

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 sous forme de 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é sur lequel cliquer afin d'effectuer l'action à effectuer avant la fermeture de la feuille de calcul.

Étant donné que Google Sheets enregistre automatiquement chaque modification, il n'est pas possible d'utiliser des solutions de contournement pour des événements tels que BeforeSave.

Formulaires utilisateur

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 UserForms. Vous pouvez les créer manuellement dans Apps Script.

Créer une boîte de dialogue de formulaire utilisateur

  1. Sur votre ordinateur, ouvrez le fichier converti dans Google Sheets.
  2. En haut, cliquez sur Extensions > ** Apps Script**.
  3. À gauche de l'éditeur, à côté de "Fichiers", cliquez sur Ajouter un fichier > HTML. Nous vous recommandons de donner au fichier HTML le même nom que votre UserForm VBA d'origine.
  4. Ajoutez les champs et les informations que vous souhaitez voir apparaître dans le formulaire. En savoir plus sur les formulaires HTML sur W3school.com.
  5. À gauche, cliquez sur le fichier Apps Script (fichier GS) contenant votre code converti.
  6. Si votre code comporte déjà un déclencheur onOpen(), mettez-le à jour avec le code ci-dessous. Si le déclencheur onOpen() ne figure pas 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);
    }
        
  7. Remplacez userform_module_name par le nom du fichier HTML que vous avez ajouté.
  8. En haut de la page, cliquez sur Enregistrer le projet .
  9. Passez à la feuille de calcul Google Sheets et actualisez la page.
  10. 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 donnés à une seule cellule ou plage de cellules.

Lorsque vous convertissez votre fichier Excel en feuille de calcul Google Sheets, certains types de plages nommées ne sont pas convertis, car ils ne sont pas compatibles. Voici deux exemples:

Plages nommées non acceptéesDescription
TablesCet outil n'est pas 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 du tableau. Utilisez le même nom que la plage nommée d'origine dans votre code VBA afin que le code converti la reconnaisse.
Liste des plagesNon disponible dans Google Sheets. Il n'existe aucune solution de secours.