Classeur VBA - Exemples d'utilisation de l'objet de classeur Excel VBA

Table des matières

Classeur Excel VBA

VBA Workbook est un objet qui fait partie de la collection d'objets Workbooks. Nous voyons facilement la différence d'une partie de la collection d'objets et de l'objet lui-même, le mot pluriel de «Workbooks» se réfère à de nombreux «Workbook». Dans VBA, nous avons plusieurs autres objets tels que les feuilles de calcul, les cellules et plages, les graphiques et les formes.

Dans la plate-forme Excel, le fichier Excel est appelé «classeur», en particulier dans VBA. Nous ne l'appelons jamais un fichier; nous l'appelons plutôt un «classeur».

En nous référant au classeur, nous pouvons effectuer toutes les tâches qui y sont liées. Certaines des tâches importantes sont «Ouvrir le classeur», «Enregistrer le classeur», «Enregistrer en tant que classeur» et «Fermer le classeur». Nous pouvons sélectionner, activer les classeurs qui sont ouverts.

Syntaxe

Maintenant, regardez quelle est la syntaxe du classeur.

Un index n'est rien d'autre que le classeur que vous souhaitez sélectionner. Nous pouvons faire référence au classeur par numéro de classeur ou par nom de classeur.

Utilisation du code d'objet VBA WorkBook

Exemple 1

Par exemple, j'ai deux fichiers ouverts en ce moment. Le premier nom de classeur est «Fichier 1» et le second nom de classeur est «Fichier 2».

J'écris maintenant le code dans le troisième fichier. À partir de ce fichier, je souhaite activer le classeur nommé «Fichier 1».

Étape 1: démarrez la macro en créant une sous-procédure VBA.

Code:

Sous Workbook_Example1 () End Sub

Étape 2: sélectionnez maintenant l'objet classeur.

Étape 3: Maintenant, entrez le classeur que nous voulons activer.

Code:

Sous Workbook_Example1 () Workbooks ("File 1 End Sub

Étape 4: Après avoir entré le nom du classeur, nous devons également entrer l'extension de fichier. J'ai enregistré ce classeur en tant que classeur normal, c'est-à-dire, classeur «xlsx» .

Code:

Sous Workbook_Example1 () Workbooks ("File 1.xlsx") End Sub

Étape 5: Nous devons maintenant décider de ce que nous voulons faire avec ce classeur. Entrez un point pour voir toutes les options disponibles avec ce classeur.

Étape 6: Maintenant, nous devons activer le classeur, sélectionnez la méthode comme «Activer».

Code:

Sous Workbook_Example1 () Workbooks ("File 1.xlsx"). Activer End Sub

Peu importe le classeur dans lequel vous vous trouvez. Cela activera le classeur spécifié.

Dès que vous sélectionnez le classeur, il devient un "classeur actif".

Exemple # 2 - Entrez des valeurs dans le classeur

Comme je l'ai dit dès que vous sélectionnez le classeur, il devient un classeur actif. En utilisant Active Workbook, nous pouvons référencer la cellule.

Dans le classeur actif, nous devons sélectionner la feuille par son nom, sinon nous utilisons le mot Feuille active.

Dans la feuille de calcul active, nous devons sélectionner la cellule à l'aide de l'objet Range.

Code:

Sous Workbook_Example1 () Workbooks ("File 1.xlsx"). Activez ActiveWorkbook.ActiveSheet.Range ("A1"). Value = "Hello" End Sub

Lorsque vous exécutez ce code à l'aide de la touche F5 ou manuellement, il insère le mot «Bonjour» dans la cellule A1 du classeur «Fichier 1.xlsx».

Nous pouvons également utiliser le code ci-dessous pour faire le même travail.

Code:

Sub Workbook_Example1 () Workbooks ("File 1.xlsx"). ActiveSheet.Range ("A1"). Value = "Hello" End Sub

Cela insérera également le mot «Bonjour» dans le classeur «Fichier 1.xlsx».

Exemple # 3 - Attribuer un classeur à une variable

Nous pouvons également attribuer le type de données en tant que «classeur» à la variable déclarée. Déclarez la variable comme classeur.

Code:

Sous Workbook_Example2 ()

Dim WB comme classeur

End Sub

Nous devons maintenant définir la variable objet sur le nom du classeur en utilisant le mot «Définir».

Code:

Sub Workbook_Example2 () Dim WB As Workbook Set WB = Workbooks ("File 1.xlsx") End Sub

Désormais, la variable «WB» contient le nom du classeur «Fichier 1.xlsx».

En utilisant le nom de la variable, nous pouvons insérer les mots.

Code:

Sub Workbook_Example2 () Dim WB As Workbook Set WB = Workbooks ("File 1.xlsx") WB.Worksheets ("Sheet1"). Range ("A1") = "Hello" WB.Worksheets ("Sheet1"). Range ( "B1") = "Good" WB.Worksheets ("Sheet1"). Range ("C1") = "Morning" End Sub

Exécutez ce code manuellement ou utilisez la touche de raccourci F5 et voyez le résultat, comme indiqué dans la capture d'écran ci-dessous.

WB.Worksheets ("Sheet1"). Range ("A1") = "Bonjour"

Ici, WB fait référence au classeur, dans ce classeur, nous référençons la feuille de calcul Sheet1 à l'aide de l'objet Worksheets. Dans cette cellule de feuille de calcul, A1 est égal à la valeur de «Bonjour».

Nous pouvons également référencer le classeur par numéro d'index. Par exemple, regardez le code ci-dessous.

Code:

Sub Workbook_Example3 () Workbooks (1) .Activate Workbooks (2) .Activate Workbooks (3) .Activate End Sub

Ici, Workbooks (1) signifie quel que soit le classeur en premier dans la liste, de la même manière, Workbooks (2) fait référence au deuxième classeur et Workbooks (3) fait référence au troisième classeur.

Le principal problème avec ce référencement de numéro d'index est que nous ne savons pas exactement quel classeur est activé. Il est dangereux d'utiliser des numéros d'index.

Exemple # 4 - Pour chaque boucle pour un objet de classeur

Comme je l'ai dit au début, le classeur est un objet de collection de classeurs dans VBA. Chaque fois que nous voulons effectuer le même type d'activité pour tous les classeurs ouverts, nous devons utiliser la boucle For Each dans VBA.

For Each Loop est la boucle de tous les objets dans VBA. Utilisez le code ci-dessous pour enregistrer tous les classeurs ouverts.

Code:

Sub Save_All_Workbooks () Dim WB comme classeur pour chaque WB dans les classeurs WB.Save Next WB End Sub

Lorsque vous exécutez ce code via la touche F5 ou manuellement, une fenêtre contextuelle apparaît, qui vous demande d'enregistrer le classeur. Cliquez sur Ok pour enregistrer.

Utilisez le code ci-dessous pour fermer tous les classeurs à l'exception de celui sur lequel vous travaillez.

Code:

Sub Close_All_Workbooks () Dim WB As Workbook For Each WB In Workbooks If WB.Name ThisWorkbook.Name Then WB.Close End If Next WB End Sub

Une fenêtre contextuelle vient avant de fermer le classeur.

Articles intéressants...