Impression de données à partir de différentes feuilles à l’aide de VBA dans Microsoft Excel
Dans cet article, nous allons créer une macro pour imprimer des données à partir de différentes feuilles.
Nous avons différentes données brutes sur deux feuilles et nous voulons personnaliser l’impression à partir de ces feuilles.
Avant d’exécuter la macro, nous devons spécifier le type d’impression requis et spécifier le nom, la plage ou la vue personnalisée.
Nous avons créé une vue personnalisée «customView1».
Explication logique
Nous avons créé une macro «PrintReports» pour une impression personnalisée. Cette macro boucle à partir de la cellule A13 jusqu’à la dernière ligne. Nous pouvons spécifier trois types différents pour une impression personnalisée.
Pour le type 1, nous devons spécifier le nom de la feuille dans la colonne suivante.
Pour le type 2, nous devons spécifier la plage pour laquelle nous voulons l’impression.
Pour le type 3, nous devons spécifier le nom de la vue personnalisée.
Explication du code
Pour chaque Cell1 In Range (« A13 », ActiveCell.End (xlDown))
Le code ci-dessus est utilisé pour effectuer une boucle à partir de la cellule A13 jusqu’à la dernière ligne.
DefinedName = ActiveCell.Offset (0, 1) .Value Le code ci-dessus est utilisé pour obtenir la valeur de la cellule dans la colonne suivante de la cellule active.
Sélectionnez Case Cell1.Value Case 1 ‘Sélection de la feuille définie Feuilles (DefinedName) .Select Case 2’ Sélection de la plage définie Application.Goto Reference: = DefinedName Case 3 ‘Sélection de la vue personnalisée définie ActiveWorkbook.CustomViews (DefinedName) .Show End Select L’instruction Select ci-dessus est utilisée pour sélectionner la zone spécifiée en fonction du type défini par l’utilisateur.
ActiveWindow.SelectedSheets.PrintOut Le code ci-dessus est utilisé pour imprimer la zone sélectionnée.
Veuillez suivre ci-dessous pour le code
Option Explicit Sub PrintReports() 'Declared variables Dim DefinedName As String Dim Cell1 As Range 'Disabling screen updates Application.ScreenUpdating = False 'Looping through all the cells For Each Cell1 In Range("A13", ActiveCell.End(xlDown)) Sheets("Main").Activate 'Selecting the cell Cell1.Select 'Getting value of sheet name or defined range DefinedName = ActiveCell.Offset(0, 1).Value Select Case Cell1.Value Case 1 'Selecting the defined sheet Sheets(DefinedName).Select Case 2 'Selecting the defined range Application.Goto Reference:=DefinedName Case 3 'Selecting the defined custom view ActiveWorkbook.CustomViews(DefinedName).Show End Select 'Printing the required data ActiveWindow.SelectedSheets.PrintOut Next Application.ScreenUpdating = True End Sub
Si vous avez aimé ce blog, partagez-le avec vos amis sur Facebook et Facebook.
Nous serions ravis de vous entendre, faites-nous savoir comment nous pouvons améliorer notre travail et le rendre meilleur pour vous. Écrivez-nous à [email protected]