comprendre le code vba impression
Hors ligneValyann Le 01/03/2025 à 23:36 Profil de Valyann Configuration de Valyann

Bonjour je voudrais comprendre le code vba d'impression ci dessous?

Function PrintSelectedSheets()

Dim I As Long

Dim TopPos As Long

Dim SheetCount As Long

Dim PrintDlg As DialogSheet

Dim CurrentSheet As Worksheet

Dim CB As CheckBox

Dim Numcop As Long

Dim X

Application.Dialogs(xlDialogPrinterSetup).Show

Application.ScreenUpdating = False

If ActiveWorkbook.ProtectStructure Then

MsgBox "Workbook is protected.", vbCritical

Exit Function

End If

Set CurrentSheet = ActiveSheet

X = CurrentSheet.Name

Set PrintDlg = ActiveWorkbook.DialogSheets.Add

SheetCount = 0

TopPos = 40

For I = 1 To ActiveWorkbook.Worksheets.Count

Set CurrentSheet = ActiveWorkbook.Worksheets(I)

If Application.CountA(CurrentSheet.Cells) <> 0 And CurrentSheet.Visible Then

SheetCount = SheetCount + 1

PrintDlg.CheckBoxes.Add 78, TopPos, 150, 16.5

PrintDlg.CheckBoxes(SheetCount).Text = CurrentSheet.Name

TopPos = TopPos + 13

End If

Next I

PrintDlg.Buttons.Left = 240

With PrintDlg.DialogFrame

.Height = Application.Max(68, PrintDlg.DialogFrame.Top + TopPos - 34)

.Width = 230

.Caption = "Sélectez les Fuielles de calcul à imprimer"

End With

PrintDlg.Buttons("Button 2").BringToFront

PrintDlg.Buttons("Button 3").BringToFront

Numcop = Application.InputBox("Entrez le nombre de copies à imprimer:", "Combien de copies?", 1, Type:=1)

If Numcop = 0 Then

ElseIf Len(Numcop) > 0 Then

End If

CurrentSheet.Activate

Dim cnt As Integer

Application.ScreenUpdating = True

If SheetCount <> 0 Then

If PrintDlg.Show Then

For Each CB In PrintDlg.CheckBoxes

If CB.Value = xlOn Then

If cnt = 0 Then

Worksheets(CB.Caption).Select

Else

Worksheets(CB.Caption).Select Replace:=False

End If

cnt = cnt + 1

End If

Next CB

ActiveWindow.SelectedSheets.PrintOut copies:=Numcop

End If

Else

MsgBox "Toutes les feuilles de calcul sont vides."

End If

Application.DisplayAlerts = False

PrintDlg.Delete

Sheets(X).Select

Application.DisplayAlerts = True

End Function

Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels