• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Printen + pagina's overslaan

Status
Niet open voor verdere reacties.

Bertus78

Gebruiker
Lid geworden
17 aug 2017
Berichten
209
Beste Lezer.

Ik heb een probleem.
Ik wil verschillende sheets uitprinten.
Echter als een bepaalde cel leeg is in de sheet dan hoeft hij die niet uit te printen.
Ik heb zelf zitten knutselen, maar hij print alleen de eerste pagina uit.

Code:
Private Sub Image4_Click()
If MsgBox("Weet u zeker dat alles uit wil printen?", vbYesNo + vbInformation, "ALLES WISSEN") = vbYes Then
        Sheets("totaal").Select
        ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False
        End If
            Sheets("1").Select
            For Each cell In Range("A8")
            If IsEmpty(cell) Then: GoTo 2
            Exit For
            Sheets("1").Select
            ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
            IgnorePrintAreas:=False
            Next    
2:
           Sheets("2").Select
            For Each cell In Range("A8")
            If IsEmpty(cell) Then: GoTo einde
            Exit For
            Sheets("1").Select
            ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
            IgnorePrintAreas:=False
            Next
einde:
            End Sub

* beginner
 
Is dit niet voldoende?
Code:
Private Sub Image4_Click()
If MsgBox("Weet u zeker dat alles uit wil printen?", vbYesNo + vbInformation, "ALLES WISSEN") = vbYes Then
  For Each ws In ThisWorkbook.Sheets
      If Not IsEmpty(ws.Range("A8")) Then
         ws.Cells(1, 1).UsedRange.PrintPreview 'Copies:=1, Collate:=True
      End If
  Next
End If
End Sub
 
Ik krijg een foutmelding bij het volgende:
Code:
 ws.Cells(1, 1).UsedRange.PrintPreview 'Copies:=1, Collate:=True

Wat ik wil is het volgende:
Sheets "totaal" moet altijd geprint worden.
Daarna heb ik sheets met de naam 1 t/m 20.
Voor deze sheets geld als er niets in de cel A8 staat dan hoeft die niet geprint te worden dus moet hij naar de volgende sheets om te kijken of deze wel geprint moet worden.
 
Doe eens de test:
Code:
Private Sub Image4_Click()
If MsgBox("Weet u zeker dat alles uit wil printen?", vbYesNo + vbInformation, "ALLES WISSEN") = vbYes Then
 Sheets("totaal").UsedRange.PrintPreview
  For Each ws In ThisWorkbook.Sheets
   If Not ws.Name = "totaal" Then
     If Not IsEmpty(ws.Range("A8")) Then
         ws.UsedRange.PrintPreview 'Copies:=1, Collate:=True
     End If
   End If
  Next
End If
End Sub
 
Bedankt voor je hulp,

Dan print hij niet maar krijg ik alle sheets op het scherm.
Maar hij pakt nu alle sheets.
Alleen Sheets "totaal" moet altijd geprint worden en daarna sheets met de naam 1 t/m 20.
 
PrintPreview wijzigen naar PrintOut

Code:
Private Sub Image4_Click()
If MsgBox("Weet u zeker dat alles uit wil printen?", vbYesNo + vbInformation, "ALLES WISSEN") = vbYes Then
 Sheets("totaal").UsedRange.[COLOR="#FF0000"]PrintOut[/COLOR]
  For Each ws In ThisWorkbook.Sheets
   If Not ws.Name = "totaal" Then
     If Not IsEmpty(ws.Range("A8")) Then
         ws.UsedRange.[COLOR="#FF0000"]PrintOUT [/COLOR]Copies:=1, Collate:=True
     End If
   End If
  Next
End If
End Sub
 
Code:
Private Sub Image4_Click()
 If MsgBox("Afdrukken bevestigen", , " ") = vbNo Then exit sub
 
  For Each ws In Sheets
     If ws.name="totaal" or (ws.Name <> "totaal" and ws.cells(8,1)<>"") Then ws.Printout
  Next
End Sub
 
Laatst bewerkt:
Ja het werkt.
Alleen print hij alle sheets uit.
Ik wil dat hij alleen sheets totaal en sheets 1 t/m 20 uitprint.
 
Verklap dan eerst eens alle namen van alle werkbladen.
 
Sheets :

begin
opvragen
invoeren
voertuig
afdeling
temp
per_afdeling
splitsen
totaal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
Dan pas je dat toch gewoon aan:
Code:
Private Sub Image4_Click()
If MsgBox("Weet u zeker dat alles uit wil printen?", vbYesNo + vbInformation, "ALLES WISSEN") = vbYes Then
 Sheets("totaal").UsedRange.PrintPreview
  For Each ws In ThisWorkbook.Sheets
   If Not ws.Name = "totaal" And IsNumeric(ws.Name) Then
     If Not IsEmpty(ws.Range("A8")) Then
         ws.UsedRange.PrintPreview
     End If
   End If
  Next
End If
End Sub

of volgens de meester:
Code:
Private Sub Image4_Click()
 If MsgBox("Afdrukken bevestigen", , " ") = vbNo Then Exit Sub
 
  For Each ws In Sheets
     If ws.Name = "totaal" Or (IsNumeric(ws.Name) And ws.Name <> "totaal" And ws.Cells(8, 1) <> "") Then ws.PrintPreview
  Next
End Sub
 
Laatst bewerkt:
Bijna....

Code:
Private Sub Image4_Click()
 If MsgBox("Afdrukken bevestigen", , " ") = vbNo Then Exit Sub
 
  For Each ws In Sheets
     If ws.Name = "totaal" Or (IsNumeric(ws.Name) And ws.Cells(8, 1) <> "") Then ws.PrintOut
  Next
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan