Utilisation de l'objet classeur dans Excel VBA (ouvrir, fermer, enregistrer, définir)

Dans ce didacticiel, je vais expliquer comment travailler avec des classeurs dans Excel à l'aide de VBA.

Dans Excel, un « Classeur » est un objet qui fait partie de la collection « Classeurs ». Dans un classeur, vous avez différents objets tels que des feuilles de calcul, des feuilles de graphique, des cellules et des plages, des objets de graphique, des formes, etc.

Avec VBA, vous pouvez faire beaucoup de choses avec un objet classeur - comme ouvrir un classeur spécifique, enregistrer et fermer des classeurs, créer de nouveaux classeurs, modifier les propriétés du classeur, etc.

Alors, commençons.

Tous les codes que je mentionne dans ce tutoriel doivent être placés dans Visual Basic Editor. Rendez-vous dans la section « Où mettre le code VBA » pour savoir comment cela fonctionne.

Si vous souhaitez apprendre VBA en toute simplicité, consultez mon Formation en ligne Excel VBA.

Référencer un classeur en utilisant VBA

Il existe différentes manières de faire référence à un objet Workbook dans VBA. La méthode que vous choisirez dépendra de ce que vous voulez faire. Dans cette section, je couvrirai les différentes manières de faire référence à un classeur avec quelques exemples de codes.

Utilisation des noms de classeur

Si vous avez le nom exact du classeur auquel vous souhaitez vous référer, vous pouvez utiliser le nom dans le code.

Commençons par un exemple simple.

Si vous avez deux classeurs ouverts et que vous souhaitez activer le classeur avec le nom - Example.xlsx, vous pouvez utiliser le code ci-dessous :

Sub ActivateWorkbook() Workbooks("Examples.xlsx").Activate End Sub

Notez que vous devez utiliser le nom du fichier avec l'extension si le fichier a été enregistré. S'il n'a pas été enregistré, vous pouvez utiliser le nom sans l'extension de fichier.

Si vous n'êtes pas sûr du nom à utiliser, demandez l'aide de l'explorateur de projet.

Si vous souhaitez activer un classeur et sélectionner une cellule spécifique dans une feuille de calcul de ce classeur, vous devez donner l'adresse complète de la cellule (y compris le classeur et le nom de la feuille de calcul).

Sub ActivateWorkbook() Workbooks("Examples.xlsx").Worksheets("Sheet1").Activate Range ("A1").Select End Sub

Le code ci-dessus active d'abord Sheet1 dans le classeur Example.xlsx, puis sélectionne la cellule A1 dans la feuille.

Vous verrez souvent un code où une référence à une feuille de calcul ou à une cellule/plage est faite sans faire référence au classeur. Cela se produit lorsque vous faites référence à la feuille de calcul/aux plages du même classeur qui contient le code et qui est également le classeur actif. Cependant, dans certains cas, vous devez spécifier le classeur pour vous assurer que le code fonctionne (plus d'informations à ce sujet dans la section ThisWorkbook).

Utilisation des numéros d'index

Vous pouvez également vous référer aux classeurs en fonction de leur numéro d'index.

Par exemple, si vous avez trois classeurs ouverts, le code suivant vous montrera les noms des trois classeurs dans une boîte de message (un à la fois).

Sub WorkbookName() MsgBox Workbooks(1).Name MsgBox Workbooks(2).Name MsgBox Workbooks(3).Name End Sub

Le code ci-dessus utilise MsgBox - qui est une fonction qui affiche une boîte de message avec le texte/la valeur spécifié (qui est le nom du classeur dans ce cas).

L'un des problèmes que j'ai souvent avec l'utilisation des numéros d'index avec les classeurs est que vous ne savez jamais lequel est le premier classeur et lequel est le deuxième et ainsi de suite. Pour être sûr, vous devrez exécuter le code comme indiqué ci-dessus ou quelque chose de similaire pour parcourir les classeurs ouverts et connaître leur numéro d'index.

Excel traite le classeur ouvert en premier pour avoir le numéro d'index 1 et le suivant 2 et ainsi de suite.

Malgré cet inconvénient, l'utilisation de numéros d'index peut s'avérer utile. Par exemple, si vous souhaitez parcourir tous les classeurs ouverts et tout enregistrer, vous pouvez utiliser les numéros d'index. Dans ce cas, puisque vous voulez que cela se produise pour tous les classeurs, vous ne vous souciez pas de leurs numéros d'index individuels.

Le code ci-dessous parcourrait tous les classeurs ouverts et les fermerait tous, à l'exception du classeur contenant ce code VBA.

Sub CloseWorkbooks() Dim WbCount As Integer WbCount = Workbooks.Count For i = WbCount To 1 Step -1 If Workbooks(i).Name ThisWorkbook.Name Then Workbooks(i).Close End If Next i End Sub

Le code ci-dessus compte le nombre de classeurs ouverts, puis parcourt tous les classeurs à l'aide de la boucle For Each.

Il utilise la condition IF pour vérifier si le nom du classeur est le même que celui du classeur dans lequel le code est exécuté.

Si ce n'est pas une correspondance, il ferme le classeur et passe au suivant.

Notez que nous avons exécuté la boucle de WbCount à 1 avec un pas de -1. Ceci est fait comme à chaque boucle, le nombre de classeurs ouverts diminue.

Ce cahier d'exercices est traité en détail dans la section suivante.

Utiliser ActiveWorkbook

ActiveWorkbook, comme son nom l'indique, fait référence au classeur actif.

Le code ci-dessous vous montrerait le nom du classeur actif.

Sub ActiveWorkbookName() MsgBox ActiveWorkbook.Name End Sub

Lorsque vous utilisez VBA pour activer un autre classeur, la partie ActiveWorkbook dans le VBA commence ensuite à faire référence au classeur activé.

Voici un exemple de cela.

Si vous avez un classeur actif et que vous y insérez le code suivant et que vous l'exécutez, il affichera d'abord le nom du classeur contenant le code, puis le nom de Example.xlsx (qui est activé par le code).

Sub ActiveWorkbookName() MsgBox ActiveWorkbook.Name Workbooks("Examples.xlsx").Activate MsgBox ActiveWorkbook.Name End Sub

Notez que lorsque vous créez un nouveau classeur à l'aide de VBA, ce classeur nouvellement créé devient automatiquement le classeur actif.

Utilisation de ce classeur

ThisWorkbook fait référence au classeur dans lequel le code est exécuté.

Chaque classeur aurait un objet ThisWorkbook en tant que partie de celui-ci (visible dans l'explorateur de projet).

« ThisWorkbook » peut stocker des macros régulières (similaires à celles que nous ajoutons aux modules) ainsi que des procédures événementielles. Une procédure événementielle est quelque chose qui est déclenché en fonction d'un événement, tel qu'un double-clic sur une cellule, ou l'enregistrement d'un classeur ou l'activation d'une feuille de calcul.

Toute procédure d'événement que vous enregistrez dans ce « Ce classeur » serait disponible dans l'ensemble du classeur, par rapport aux événements au niveau de la feuille qui sont limités aux feuilles spécifiques uniquement.

Par exemple, si vous double-cliquez sur l'objet ThisWorkbook dans l'explorateur de projet et que vous y copiez-collez le code ci-dessous, l'adresse de la cellule s'affichera chaque fois que vous double-cliquez sur l'une des cellules du classeur entier.

Private Sub Workbook_SheetBeforeDoubleClick (ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) MsgBox Target.Address End Sub

Bien que le rôle principal de ThisWorkbook soit de stocker la procédure événementielle, vous pouvez également l'utiliser pour faire référence au classeur dans lequel le code est exécuté.

Le code ci-dessous renverrait le nom du classeur dans lequel le code est exécuté.

Sub ThisWorkbookName() MsgBox ThisWorkbook.Name End Sub

L'avantage d'utiliser ThisWorkbook (par rapport à ActiveWorkbook) est qu'il ferait référence au même classeur (celui qui contient le code) dans tous les cas. Donc, si vous utilisez un code VBA pour ajouter un nouveau classeur, l'ActiveWorkbook changerait, mais ThisWorkbook ferait toujours référence à celui qui a le code.

Création d'un nouvel objet classeur

Le code suivant créera un nouveau classeur.

Sub CreateNewWorkbook() Workbooks.Add End Sub

Lorsque vous ajoutez un nouveau classeur, il devient le classeur actif.

Le code suivant ajoutera un nouveau classeur, puis vous montrera le nom de ce classeur (qui serait le nom de type Book1 par défaut).

Sub CreateNewWorkbook() Workbooks.Add MsgBox ActiveWorkbook.Name End Sub

Ouvrir un classeur avec VBA

Vous pouvez utiliser VBA pour ouvrir un classeur spécifique lorsque vous connaissez le chemin d'accès au fichier du classeur.

Le code ci-dessous ouvrira le classeur - Example.xlsx qui se trouve dans le dossier Documents de mon système.

Sub OpenWorkbook() Workbooks.Open ("C:\Users\sumit\Documents\Examples.xlsx") End Sub

Si le fichier existe dans le dossier par défaut, qui est le dossier dans lequel VBA enregistre les nouveaux fichiers par défaut, vous pouvez simplement spécifier le nom du classeur - sans le chemin complet.

Sub OpenWorkbook() Workbooks.Open ("Examples.xlsx") End Sub

Si le classeur que vous essayez d'ouvrir n'existe pas, vous verrez une erreur.

Pour éviter cette erreur, vous pouvez ajouter quelques lignes à votre code pour vérifier d'abord si le fichier existe ou non et s'il existe, essayez de l'ouvrir.

Le code ci-dessous vérifierait l'emplacement du fichier et s'il n'existe pas, il affichera un message personnalisé (pas le message d'erreur):

Sub OpenWorkbook() If Dir("C:\Users\sumit\Documents\Examples.xlsx") "" Then Workbooks.Open ("C:\Users\sumit\Documents\Examples.xlsx") Else MsgBox "Le fichier ne 't exist" End If End Sub

Vous pouvez également utiliser la boîte de dialogue Ouvrir pour sélectionner le fichier que vous souhaitez ouvrir.

Sub OpenWorkbook() En cas d'erreur Resume Next Dim FilePath As String FilePath = Application.GetOpenFilename Workbooks.Open (FilePath) End Sub

Le code ci-dessus ouvre la boîte de dialogue Ouvrir. Lorsque vous sélectionnez un fichier que vous souhaitez ouvrir, il attribue le chemin du fichier à la variable FilePath. Workbooks.Open utilise ensuite le chemin du fichier pour ouvrir le fichier.

Si l'utilisateur n'ouvre pas de fichier et clique sur le bouton Annuler, FilePath devient False. Pour éviter d'obtenir une erreur dans ce cas, nous avons utilisé l'instruction « On Error Resume Next ».

En rapport: Tout savoir sur la gestion des erreurs dans Excel VBA

Enregistrer un classeur

Pour enregistrer le classeur actif, utilisez le code ci-dessous :

Sub SaveWorkbook() ActiveWorkbook.Save End Sub

Ce code fonctionne pour les classeurs qui ont déjà été enregistrés précédemment. De plus, étant donné que le classeur contient la macro ci-dessus, si elle n'a pas été enregistrée en tant que fichier .xlsm (ou .xls), vous perdrez la macro lorsque vous l'ouvrirez ensuite.

Si vous enregistrez le classeur pour la première fois, il vous affichera une invite comme indiqué ci-dessous :

Lors de la première sauvegarde, il est préférable d'utiliser l'option « Sauvegarder ».

Le code ci-dessous enregistrerait le classeur actif en tant que fichier .xlsm dans l'emplacement par défaut (qui est le dossier de documents dans mon système).

Sub SaveWorkbook() ActiveWorkbook.SaveAs Filename:="Test.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled End Sub

Si vous souhaitez que le fichier soit enregistré dans un emplacement spécifique, vous devez le mentionner dans la valeur Nom de fichier. Le code ci-dessous enregistre le fichier sur mon bureau.

Sub SaveWorkbook() ActiveWorkbook.SaveAs Filename:="C:\Users\sumit\Desktop\Test.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled End Sub

Si vous souhaitez que l'utilisateur ait la possibilité de sélectionner l'emplacement d'enregistrement du fichier, vous pouvez utiliser la boîte de dialogue Saveas. Le code ci-dessous montre la boîte de dialogue Saveas et permet à l'utilisateur de sélectionner l'emplacement où le fichier doit être enregistré.

Sub SaveWorkbook() Dim FilePath As String FilePath = Application.GetSaveAsFilename ActiveWorkbook.SaveAs Filename:=FilePath & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled End Sub

Notez qu'au lieu d'utiliser FileFormat:=xlOpenXMLWorkbookMacroEnabled, vous pouvez également utiliser FileFormat:=52, où 52 est le code xlOpenXMLWorkbookMacroEnabled.

Enregistrer tous les classeurs ouverts

Si vous avez plusieurs classeurs ouverts et que vous souhaitez enregistrer tous les classeurs, vous pouvez utiliser le code ci-dessous :

Sub SaveAllWorkbooks() Dim wb comme classeur pour chaque wb dans les classeurs wb.Save Next wb End Sub

Ce qui précède enregistre tous les classeurs, y compris ceux qui n'ont jamais été enregistrés. Les classeurs qui n'ont pas été enregistrés précédemment seraient enregistrés dans l'emplacement par défaut.

Si vous souhaitez uniquement enregistrer les classeurs précédemment enregistrés, vous pouvez utiliser le code ci-dessous :

Sub SaveAllWorkbooks() Dim wb As Workbook For Each wb In Workbooks If wb.Path "" Then wb.Save End If Next wb End Sub

Enregistrer et fermer tous les classeurs

Si vous souhaitez fermer tous les classeurs, à l'exception du classeur qui contient le code actuel, vous pouvez utiliser le code ci-dessous :

Sub CloseandSaveWorkbooks() Dim wb As Workbook For Each wb In Workbooks If wb.Name ThisWorkbook.Name Then wb.Close SaveChanges:=True End If Next wb End Sub

Le code ci-dessus fermerait tous les classeurs (sauf le classeur qui a le code - ThisWorkbook). En cas de modifications dans ces classeurs, les modifications seraient enregistrées. S'il existe un classeur qui n'a jamais été enregistré, il affichera la boîte de dialogue Enregistrer sous.

Enregistrer une copie du classeur (avec horodatage)

Lorsque je travaille avec des données complexes et un tableau de bord dans des classeurs Excel, je crée souvent différentes versions de mes classeurs. Ceci est utile en cas de problème avec mon classeur actuel. J'en aurais au moins une copie sauvegardée sous un nom différent (et je ne perdrais le travail que j'ai fait après avoir créé une copie).

Voici le code VBA qui créera une copie de votre classeur et l'enregistrera à l'emplacement spécifié.

Sub CreateaCopyofWorkbook() ThisWorkbook.SaveCopyAs Filename:="C:\Users\sumit\Desktop\BackupCopy.xlsm" End Sub

Le code ci-dessus enregistre une copie de votre classeur chaque fois que vous exécutez cette macro.

Bien que cela fonctionne très bien, je me sentirais plus à l'aise si j'avais différentes copies enregistrées chaque fois que j'exécute ce code. La raison pour laquelle c'est important est que si je fais une erreur par inadvertance et que j'exécute cette macro, cela sauvera le travail avec les erreurs. Et je n'aurais pas accès à l'œuvre avant de faire l'erreur.

Pour gérer de telles situations, vous pouvez utiliser le code ci-dessous qui enregistre une nouvelle copie du travail à chaque fois que vous l'enregistrez. Et il ajoute également une date et un horodatage dans le nom du classeur. Cela peut vous aider à suivre toute erreur que vous avez commise, car vous ne perdez jamais aucune des sauvegardes précédemment créées.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) ThisWorkbook.SaveCopyAs Filename:="C:\Users\sumit\Desktop\BackupCopy" & Format(Now(), "dd-mm-yy-hh-mm-ss -AMPM") & ".xlsm" End Sub

Le code ci-dessus crée une copie chaque fois que vous exécutez cette macro et ajoute un horodatage au nom du classeur.

Créer un nouveau classeur pour chaque feuille de calcul

Dans certains cas, vous pouvez avoir un classeur contenant plusieurs feuilles de calcul et vous souhaitez créer un classeur pour chaque feuille de calcul.

Cela peut être le cas lorsque vous avez des rapports mensuels/trimestriels dans un seul classeur et que vous souhaitez les diviser en un seul classeur pour chaque feuille de calcul.

Ou, si vous avez des rapports par département et que vous souhaitez les diviser en classeurs individuels afin que vous puissiez envoyer ces classeurs individuels aux chefs de département.

Voici le code qui va créer un classeur pour chaque feuille de calcul, lui donner le même nom que celui de la feuille de calcul et l'enregistrer dans le dossier spécifié.

Sub CreateWorkbookforWorksheets() Dim ws as Worksheet Dim wb as Workbook For each ws In ThisWorkbook.Worksheets Set wb = Workbooks.Add ws.Copy Before:=wb.Sheets(1) Application.DisplayAlerts = False wb.Sheets(2).Delete Application.DisplayAlerts = True wb.SaveAs "C:\Users\sumit\Desktop\Test\" & ws.Name & ".xlsx" wb.Close Next ws End Sub

Dans le code ci-dessus, nous avons utilisé deux variables « ws » et « wb ».

Le code parcourt chaque feuille de calcul (à l'aide de la boucle For Each Next) et crée un classeur pour celle-ci. Il utilise également la méthode de copie de l'objet feuille de calcul pour créer une copie de la feuille de calcul dans le nouveau classeur.

Notez que j'ai utilisé l'instruction SET pour affecter la variable 'wb' à tout nouveau classeur créé par le code.

Vous pouvez utiliser cette technique pour affecter un objet classeur à une variable. Ceci est couvert dans la section suivante.

Affecter un objet classeur à une variable

Dans VBA, vous pouvez affecter un objet à une variable, puis utiliser la variable pour faire référence à cet objet.

Par exemple, dans le code ci-dessous, j'utilise VBA pour ajouter un nouveau classeur, puis j'affecte ce classeur à la variable wb. Pour ce faire, je dois utiliser l'instruction SET.

Une fois que j'ai affecté le classeur à la variable, toutes les propriétés du classeur sont également mises à la disposition de la variable.

Sub AssigntoVariable() Dim wb As Workbook Set wb = Workbooks.Add wb.SaveAs Filename:="C:\Users\sumit\Desktop\Examples.xlsx" End Sub

Notez que la première étape du code consiste à déclarer « wb » en tant que variable de type classeur. Cela indique à VBA que cette variable peut contenir l'objet classeur.

L'instruction suivante utilise SET pour affecter la variable au nouveau classeur que nous ajoutons. Une fois cette affectation terminée, nous pouvons utiliser la variable wb pour enregistrer le classeur (ou faire autre chose avec).

Parcourir les classeurs ouverts

Nous avons déjà vu quelques exemples de codes ci-dessus qui utilisaient une boucle dans le code.

Dans cette section, j'expliquerai différentes manières de parcourir des classeurs ouverts à l'aide de VBA.

Supposons que vous souhaitiez enregistrer et fermer tous les classeurs ouverts, à l'exception de celui contenant le code, vous pouvez utiliser le code ci-dessous :

Sub CloseandSaveWorkbooks() Dim wb As Workbook For Each wb In Workbooks If wb.Name ThisWorkbook.Name Then wb.Close SaveChanges:=True End If Next wb End Sub

Le code ci-dessus utilise la boucle For Each pour parcourir chaque classeur de la collection Workbooks. Pour ce faire, nous devons d'abord déclarer « wb » comme variable de type classeur.

Dans chaque cycle de boucle, chaque nom de classeur est analysé et s'il ne correspond pas au nom du classeur qui a le code, il est fermé après avoir enregistré son contenu.

La même chose peut également être obtenue avec une boucle différente, comme indiqué ci-dessous :

Sub CloseWorkbooks() Dim WbCount As Integer WbCount = Workbooks.Count For i = WbCount To 1 Step -1 If Workbooks(i).Name ThisWorkbook.Name Then Workbooks(i).Close SaveChanges:=True End If Next i End Sub

Le code ci-dessus utilise la boucle For Next pour fermer tous les classeurs, à l'exception de celui qui contient le code. Dans ce cas, nous n'avons pas besoin de déclarer une variable de classeur, mais à la place, nous devons compter le nombre total de classeurs ouverts. Lorsque nous avons le décompte, nous utilisons la boucle For Next pour parcourir chaque classeur. De plus, nous utilisons le numéro d'index pour faire référence aux classeurs dans ce cas.

Notez que dans le code ci-dessus, nous bouclons de WbCount à 1 avec l'étape -1. Cela est nécessaire car à chaque boucle, le classeur est fermé et le nombre de classeurs est diminué de 1.

Erreur lors de l'utilisation de l'objet classeur (erreur d'exécution « 9 »)

L'une des erreurs les plus courantes que vous pouvez rencontrer lorsque vous travaillez avec des classeurs est - Erreur d'exécution '9' - Indice hors limites.

En règle générale, les erreurs VBA ne sont pas très informatives et vous laissent souvent le soin de comprendre ce qui s'est mal passé.

Voici quelques-unes des raisons possibles qui peuvent conduire à cette erreur :

  • Le classeur auquel vous essayez d'accéder n'existe pas. Par exemple, si j'essaie d'accéder au cinquième classeur à l'aide de Workbooks(5) et qu'il n'y a que 4 classeurs ouverts, j'obtiendrai cette erreur.
  • Si vous utilisez un mauvais nom pour faire référence au classeur. Par exemple, si le nom de votre classeur est Example.xlsx et que vous utilisez Example.xlsx. alors il vous montrera cette erreur.
  • Si vous n'avez pas enregistré de classeur et que vous utilisez l'extension, vous obtenez cette erreur. Par exemple, si le nom de votre classeur est Book1 et que vous utilisez le nom Book1.xlsx sans l'enregistrer, vous obtiendrez cette erreur.
  • Le classeur auquel vous essayez d'accéder est fermé.

Obtenir une liste de tous les classeurs ouverts

Si vous souhaitez obtenir une liste de tous les classeurs ouverts dans le classeur actuel (le classeur dans lequel vous exécutez le code), vous pouvez utiliser le code ci-dessous :

Sub GetWorkbookNames() Dim wbcount As Integer wbcount = Workbooks.Count ThisWorkbook.Worksheets.Add ActiveSheet.Range("A1").Activate For i = 1 To wbcount Range("A1").Offset(i - 1, 0). Valeur = Workbooks(i).Name Next i End Sub

Le code ci-dessus ajoute une nouvelle feuille de calcul, puis répertorie le nom de tous les classeurs ouverts.

Si vous souhaitez également obtenir leur chemin de fichier, vous pouvez utiliser le code ci-dessous :

Sub GetWorkbookNames() Dim wbcount As Integer wbcount = Workbooks.Count ThisWorkbook.Worksheets.Add ActiveSheet.Range("A1").Activate For i = 1 To wbcount Range("A1").Offset(i - 1, 0). Valeur = Workbooks(i).Path & "\" & Workbooks(i).Name Next i End Sub

Ouvrez le classeur spécifié en double-cliquant sur la cellule

Si vous avez une liste de chemins de fichiers pour les classeurs Excel, vous pouvez utiliser le code ci-dessous pour simplement double-cliquer sur la cellule avec le chemin du fichier et il ouvrira ce classeur.

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) Workbooks.Open Target.Value End Sub

Ce code serait placé dans la fenêtre de code ThisWorkbook.

Pour faire ça:

  • Double-cliquez sur l'objet ThisWorkbook dans l'explorateur de projet. Notez que l'objet ThisWorkbook doit se trouver dans le classeur où vous souhaitez cette fonctionnalité.
  • Copiez et collez le code ci-dessus.

Maintenant, si vous avez le chemin exact des fichiers que vous souhaitez ouvrir, vous pouvez le faire en double-cliquant simplement sur le chemin du fichier et VBA ouvrira instantanément ce classeur.

Où mettre le code VBA

Vous vous demandez où va le code VBA dans votre classeur Excel ?

Excel a un backend VBA appelé éditeur VBA. Vous devez copier et coller le code dans la fenêtre de code du module VB Editor.

Voici les étapes à suivre :

  1. Allez dans l'onglet Développeur.
  2. Cliquez sur l'option Visual Basic. Cela ouvrira l'éditeur VB dans le backend.
  3. Dans le volet Explorateur de projets de l'éditeur VB, cliquez avec le bouton droit sur n'importe quel objet du classeur dans lequel vous souhaitez insérer le code. Si vous ne voyez pas l'Explorateur de projets, accédez à l'onglet Affichage et cliquez sur Explorateur de projets.
  4. Allez dans Insérer et cliquez sur Module. Cela insérera un objet module pour votre classeur.
  5. Copiez et collez le code dans la fenêtre du module.

Vous aimerez peut-être également les didacticiels Excel VBA suivants :

  • Comment enregistrer une macro dans Excel.
  • Création d'une fonction définie par l'utilisateur dans Excel.
  • Comment créer et utiliser un complément dans Excel.
  • Comment réactiver les macros en les plaçant dans le classeur de macros personnelles.
  • Obtenez la liste des noms de fichiers d'un dossier dans Excel (avec et sans VBA).
  • Comment utiliser la fonction Excel VBA InStr (avec des EXEMPLES pratiques).
  • Comment trier les données dans Excel à l'aide de VBA (un guide pas à pas).

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave