Avatar billede hjald8 Nybegynder
10. maj 2007 - 11:07 Der er 6 kommentarer og
2 løsninger

Print udvalgte ark fra projektmappe - markeret som gruppe

Jeg vil gerne lave en makro til en fælles værktøjslinie for flere skabeloner, som kan udprinte en gruppe ark ud, udfra en kode i de ark som udprint skal omfatte. P.t. er der en kode (P) i celle V2 på de ark, som skal udskrives.

Fordelen skulle være, at makroen kan håndtere forskellige varianter af skabeloner uden hensyn til antal ark eller arknavne.
Jeg har forsøgt -  men uden held. Håber at der er en der kan hjælpe:

Sub PrintArk()
For Each ws In ActiveWorkbook.Worksheets

If ws.Range("U2") = P Then
  ??Kode?? 'Selectfunktionen kan jeg ikke få til at fungere.
End If
Next
Application.Dialogs(xlDialogPrint).Show
End Sub

Måske er der en meget smartere løsning.
Avatar billede stefanfuglsang Juniormester
10. maj 2007 - 13:54 #1
Hvad med
Sub PrintArk()
For Each ws In ActiveWorkbook.Worksheets
If ws.Range("U2") = "P" Then
  ws.PrintOut Copies:=1, Collate:=True
End If
Next
End Sub
Avatar billede kabbak Professor
10. maj 2007 - 18:49 #2
Hvis de skal komme med sidenummereringen fortløbende, så

Sub PrintArk()
    Dim Ark As Variant
    For Each ws In ActiveWorkbook.Worksheets
        If ws.Range("U2") = "P" Then
            Ark = Ark & ws.Name & Chr(44)
        End If
    Next
    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
    'fortsæt selv med flere, hvis du vælger mere end 5 ark
    End Select
    ActiveWindow.SelectedSheets.PrintPreview
End Sub
Avatar billede excelent Ekspert
10. maj 2007 - 19:00 #3
en anden mulighed:

Sub ArkValg()

Dim myArr() As Long
Dim tal, sh, Antal

Antal = ActiveWorkbook.Worksheets.Count
ReDim myArr(1 To Antal)

For sh = 1 To Antal
If Sheets(sh).Range("U2") = "P" Then
  tal = tal + 1
  myArr(tal) = sh
End If
Next

ReDim Preserve myArr(1 To tal)
Sheets(myArr).Select

ActiveWindow.SelectedSheets.PrintPreview

End Sub
Avatar billede hjald8 Nybegynder
10. maj 2007 - 20:37 #4
Hej Kabbak og Excelent. Begge løsninger virker perfekt.
Alletiders - og tusind tak. Smid et svar
Avatar billede excelent Ekspert
10. maj 2007 - 20:48 #5
ok velbekom - her er mit
Avatar billede kabbak Professor
10. maj 2007 - 21:56 #6
et svar ;-))
Avatar billede kabbak Professor
10. maj 2007 - 22:23 #7
Mon ikke de 2 kan koges sammen til

Sub ArkValg()
For Each ws In ActiveWorkbook.Worksheets
        If ws.Range("U2") = "P" Then
            ark = ark & ws.Name & Chr(44)
        End If
    Next
    ark = Left(ark, Len(ark) - 1)
Sheets(Split(ark, ",")).Select
ActiveWindow.SelectedSheets.PrintPreview
End Sub
Avatar billede hjald8 Nybegynder
11. maj 2007 - 16:46 #8
Jeg har ikke nået at checke det sidste forslag fra Kabbak
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester