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.

ArrowRawFirst

ArrowRawSecond

ArrowMain

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.

ArrowCustomView

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]