Table des matières:
Vidéo: Excel : Ma 1ère macro VBA Excel (Partie 1/2) 2025
Vous pouvez parfois avoir besoin de créer un classeur Excel de manière automatisée. Par exemple, vous devrez peut-être copier des données d'une table et les coller dans un classeur nouvellement créé. La macro suivante copie une plage de cellules de la feuille active et colle les données dans un nouveau classeur.
Fonctionnement de la macro
Comme vous le verrez quand vous lisez les lignes du code, cette macro est relativement intuitive:
Sous Macro1 () 'Étape 1 Copiez les feuilles de données ("Exemple 1"). Plage ("B4: C15"). Copier 'Étape 2 Créer un nouveau classeur classeurs. Ajouter 'Étape 3 Coller les données ActiveSheet. Coller Destination: = Plage ("A1") 'Étape 4 Désactiver les alertes d'application Application. DisplayAlerts = False 'Étape 5 Enregistrez le classeur ActiveWorkbook nouvellement créé. SaveAs _ Filename: = "C: TempMyNewBook.xlsx" 'Étape 6 Retournez les alertes de l'application sur Application. DisplayAlerts = True End Sub
À l'étape 1, vous copiez simplement les données qui vont des cellules B4 à C15. Notez que vous spécifiez à la fois la feuille et la plage par nom. Cette approche est une meilleure pratique lorsque vous travaillez avec plusieurs classeurs ouverts.
À l'étape 2, vous utilisez la méthode Add de l'objet Classeur pour créer un classeur. Le classeur vide équivaut à sélectionner Fichier → Nouveau → Document vierge dans le ruban Excel.
À l'étape 3, vous utilisez la méthode Coller pour envoyer les données copiées à la cellule A1 du nouveau classeur.
Faites attention au fait que le code fait référence à l'objet ActiveSheet. Lorsque vous ajoutez un classeur, le nouveau classeur obtient immédiatement le focus, devenant le classeur actif. (Excel fait la même chose lorsque vous ajoutez manuellement un classeur.)
À l'étape 4 du code, vous définissez la méthode DisplayAlerts sur False, désactivant ainsi les avertissements d'Excel. Vous faites cela parce qu'à l'étape suivante du code, vous enregistrez le classeur nouvellement créé. Vous pouvez exécuter cette macro plusieurs fois, auquel cas Excel tente d'enregistrer le fichier plusieurs fois.
Que se passe-t-il lorsque vous essayez d'enregistrer un classeur plusieurs fois? C'est vrai - Excel vous avertit qu'il existe déjà un fichier portant ce nom et vous demande ensuite si vous voulez écraser le fichier existant. Parce que votre objectif est d'automatiser la création du classeur, vous souhaitez supprimer cet avertissement.
À l'étape 5, vous enregistrez le fichier en utilisant la méthode SaveAs. Notez que vous entrez le chemin complet de l'emplacement de sauvegarde, y compris le nom de fichier final.
Comme vous avez désactivé les modifications d'application à l'étape 4, vous devez les réactiver (voir l'étape 6). Si vous ne le faites pas, Excel continue à supprimer tous les avertissements pendant la session en cours.
Comment utiliser la macro
Pour implémenter cette macro, vous pouvez la copier et la coller dans un module standard:
-
Activez Visual Basic Editor en appuyant sur Alt + F11.
-
Cliquez avec le bouton droit sur le nom du projet / classeur dans la fenêtre du projet.
-
Choisissez Insérer → Module.
-
Tapez ou collez le code dans le nouveau module.
Vous devrez probablement modifier le nom de la feuille, l'adresse de la plage et l'emplacement de sauvegarde.
