25. januar 2007 - 20:01Der er
18 kommentarer og 1 løsning
Makro - udskriv
Jeg har følgende markro:
Private Sub cmdOK_Click() Dim navn As String, i As Long 'Lukker Formular Unload Me 'Åbner Udkrivdialogbox så printer kan vælges A = Application.Dialogs(xlDialogPrinterSetup).Show If A = True Then
If cbOpgørelsesark = True Then
If cbDiagram = True Then 'Udskriv både Opgøresesark og Diagram Sheets(Array("Opgørelsesark", "Diagram")).Select ActiveWindow.SelectedSheets.PrintOut Else 'Udskriv Opgørelsesark Sheets("Opgørelsesark").Select ActiveSheet.PrintOut End If
Else
'Udskriv Diagram If cbDiagram = True Then Sheets("Diagram").Select ActiveSheet.PrintOut
Else Unload Me End If End If
Sheets("info").Select Range("C3").Select
End If
End Sub
I dette tilfælde er der 2 forskellige ar der kan udskrives på 3 forskellige måder:
Ark A alene Ark B alene Ark A + B sammen
Nu har jeg 6 ark, hvilket betyder at antallet af udskrivninger kan endnu flere!
Hvordan undgår jeg at "ActiveSheet.PrintOut" vises før hvert ark udskrives?
Tak elvstine, hvordan vælger jeg så de enkelte ark via en makro?
Jeg har en formular, hvor jeg vælger de enkelte ark - Det er det der sker i min makro, der er i mit spørgsmål - Mit problem er at jeg ikke kan udskrive dem samlet, hvilket betyder, at når jeg udskriver til PDF-format, kommer alle ark enkeltvis - Det er lidt træls når jeg har 25 ark :-)
>Stine Det jeg har brug for er én makro, der kan udskrive de valgte ark i et regneark. De vælges ud fra en "Form", hvor der er en checkbox pr. ark. Når checkboxen er "true" udskrives arket. Dette giver ikke noget problem, når jeg udskriver til en normal printer. Delvist heller ikke når jeg udskriver til en PDF-fil, men kun når jeg har få ark (ovenstående tilfælde 2 ark) der skal vælges imellem. Hvis der er 18 ark, der kan vælges mellem. (1-18 ark) giver det problemer. Der kan vælges imellem 1 til 18 ark. Derfor er der brug for en makro, der kan udskrive mange ark i en fil (PDF-fil).
If Range("udskrift_forside") = True Then Ark = "for" & Chr(44) If Range("udskrift_indholdsfortegnelse") = True Then Ark = Ark & "ind" & Chr(44) If Range("udskrift_selskabsoplysninger") = True Then Ark = Ark & "selopl" & Chr(44) If Range("udskrift_revisionspåtegning") = True Then Ark = Ark & "Revp" & Chr(44) If Range("udskrift_ledelsespåtegning") = True Then Ark = Ark & "ledp" & Chr(44) If Range("udskrift_ledelsesberetning") = True Then Ark = Ark & "ledb" & Chr(44) If Range("udskrift_regnskabspraksis") = True Then Ark = Ark & "praks" & Chr(44) If Range("udskrift_resultatopgørelse") = True Then Ark = Ark & "Res.opg." & Chr(44) If Range("udskrift_balance") = True Then Ark = Ark & "balance" & Chr(44) If Range("udskrift_noter") = True Then Ark = Ark & "noter" & Chr(44) If Range("udskrift_specifikationer") = True Then Ark = Ark & "spec1" & Chr(44) If Range("udskrift_skattemæssigtresultat") = True Then Ark = Ark & "skat" & Chr(44) If Range("udskrift_skattemæssigespecifikationer") = True Then Ark = Ark & "skatspec" & Chr(44) If Range("udskrift_afstemninger") = True Then Ark = Ark & "afstem" & Chr(44) If Range("udskrift_sambeskatning") = True Then Ark = Ark & "sam" & Chr(44) If Range("udskrift_andet") = True Then Ark = Ark & "andet" & Chr(44)
Ark = Left(Ark, Len(Ark) - 1) A = Split(Ark, ",")
Select Case UBound(A) Case 0: Sheets(Array(A(0))).Select Case 1: Sheets(Array(A(0), A(1))).Select Case 2: Sheets(Array(A(0), A(1), A(2))).Select Case 3: Sheets(Array(A(0), A(1), A(2), A(3))).Select Case 4: Sheets(Array(A(0), A(1), A(2), A(3), A(4))).Select Case 5: Sheets(Array(A(0), A(1), A(2), A(3), A(4), A(5))).Select Case 6: Sheets(Array(A(0), A(1), A(2), A(3), A(4), A(5), A(6))).Select Case 7: Sheets(Array(A(0), A(1), A(2), A(3), A(4), A(5), A(6), A(7))).Select Case 8: Sheets(Array(A(0), A(1), A(2), A(3), A(4), A(5), A(6), A(7), A(8))).Select Case 9: Sheets(Array(A(0), A(1), A(2), A(3), A(4), A(5), A(6), A(7), A(8), A(9))).Select Case 10: Sheets(Array(A(0), A(1), A(2), A(3), A(4), A(5), A(6), A(7), A(8), A(9), A(10))).Select Case 11: Sheets(Array(A(0), A(1), A(2), A(3), A(4), A(5), A(6), A(7), A(8), A(9), A(10), A(11))).Select Case 12: Sheets(Array(A(0), A(1), A(2), A(3), A(4), A(5), A(6), A(7), A(8), A(9), A(10), A(11), A(12))).Select Case 13: Sheets(Array(A(0), A(1), A(2), A(3), A(4), A(5), A(6), A(7), A(8), A(9), A(10), A(11), A(12), A(13))).Select Case 14: Sheets(Array(A(0), A(1), A(2), A(3), A(4), A(5), A(6), A(7), A(8), A(9), A(10), A(11), A(12), A(13), A(14))).Select Case 15: Sheets(Array(A(0), A(1), A(2), A(3), A(4), A(5), A(6), A(7), A(8), A(9), A(10), A(11), A(12), A(13), A(14), A(15))).Select End Select ActiveWindow.SelectedSheets.PrintPreview end sub
ret denne linie If Range("udskrift_forside") = True Then Ark = "for" & Chr(44) til f.eks. if cbOpgørelsesark = True Then Ark = "Opgørelsesark" & Chr(44)
ligeså for de andre linier
Du skal nok tilføje flere, da du skriver at du har op til 18 ark.
Ret disse linier til at passe på dine checkbox, du skal selvfølgelig også rette arknavnet, det er det der står i "" lige foran & Chr(44) så vil din linie komme til at se sådan ud f.eks. if cbOpgørelsesark = True Then Ark = "Opgørelsesark" & Chr(44)
If Range("udskrift_forside") = True Then Ark = "for" & Chr(44) If Range("udskrift_indholdsfortegnelse") = True Then Ark = Ark & "ind" & Chr(44) If Range("udskrift_selskabsoplysninger") = True Then Ark = Ark & "selopl" & Chr(44) If Range("udskrift_revisionspåtegning") = True Then Ark = Ark & "Revp" & Chr(44) If Range("udskrift_ledelsespåtegning") = True Then Ark = Ark & "ledp" & Chr(44) If Range("udskrift_ledelsesberetning") = True Then Ark = Ark & "ledb" & Chr(44) If Range("udskrift_regnskabspraksis") = True Then Ark = Ark & "praks" & Chr(44) If Range("udskrift_resultatopgørelse") = True Then Ark = Ark & "Res.opg." & Chr(44) If Range("udskrift_balance") = True Then Ark = Ark & "balance" & Chr(44) If Range("udskrift_noter") = True Then Ark = Ark & "noter" & Chr(44) If Range("udskrift_specifikationer") = True Then Ark = Ark & "spec1" & Chr(44) If Range("udskrift_skattemæssigtresultat") = True Then Ark = Ark & "skat" & Chr(44) If Range("udskrift_skattemæssigespecifikationer") = True Then Ark = Ark & "skatspec" & Chr(44) If Range("udskrift_afstemninger") = True Then Ark = Ark & "afstem" & Chr(44) If Range("udskrift_sambeskatning") = True Then Ark = Ark & "sam" & Chr(44) If Range("udskrift_andet") = True Then Ark = Ark & "andet" & Chr(44)
Resten af koden skal du ikke rette i, men hvis du har flere end 15 ark der kan vælges, skal de tilføjes efter
Det er rigtigt jeg har 18 ark, men de 18 ark vil altid blive udskrevet på en gang. Men derudover har jeg 5 ark. Dvs. jeg har 6 "potioner" (5 potioner med 1 ark i hver og 1 potion med 18 ark), som gerne skal udskrives samlet, så jeg kan få udskrifterne i én pdf-fil. Hvad skal jeg ændre i din makro, for at få det.
Her er koden: Private Sub cmdOK_Click() Dim navn As String, i As Long 'Lukker Formular Unload Me
'Åbner Udkrivdialogbox så printer kan vælges A = Application.Dialogs(xlDialogPrinterSetup).Show If A = True Then
' Dim Ark As String, A
Application.ScreenUpdating = False
'Valg af ark der skal udskrives If cbOpgørelsesark = True Then Ark = "Opgørelsesark" & Chr(44) If cbDiagram = True Then Ark = Ark & "Diagram" & Chr(44)
Ark = Left(Ark, Len(Ark) - 1) A = Split(Ark, ",")
Select Case UBound(A) Case 0: Sheets(Array(A(0))).Select Case 1: Sheets(Array(A(0), A(1))).Select
End Select
'Udskriver de valgte ark ActiveWindow.SelectedSheets.PrintOut
End If
'Stiller sig i celle C3 i ark Info Sheets("info").Select Range("C3").Select
End Sub
Vil du smide et svar, så du kan få dine point igen.. :-)
Nej, desværre havde jeg slettet mit forsøg, så jeg måtte lave det igen. Og der lykkedes det!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.