• 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.

meerdere werkbladen in vba formule

Status
Niet open voor verdere reacties.

matthijsdekker

Gebruiker
Lid geworden
11 jan 2011
Berichten
77
Hallo
ik ben bezig om een knop te maken om te printen in excel. hij werkt nu voor een werkblad alleen nu wil ik meer werkbladen laten printen met de zelfde knop hoe doe ik dat?

dit heb ik tot nu toe

Code:
Sub MyPrint()
Private Sub CommandButton2_Click()
    If MsgBox(Title:=ActiveWorkbook.Author, Buttons:=vbQuestion + vbYesNo, Prompt:="Weet u zeker dat u wilt afdrukken?") = vbYes Then
    curPrtArea = Worksheets("OVERVIEW").PageSetup.PrintArea
    Worksheets("OVERVIEW").PrintOut
    Worksheets("OVERVIEW").PageSetup.PrintArea = curPrtArea
    End If
End Sub
 
1 to 3 staat voor de sheetnummers die je wilt afdrukken.


Code:
Private Sub CommandButton2_Click()
    If MsgBox(Title:=ActiveWorkbook.Author, Buttons:=vbQuestion + vbYesNo, Prompt:="Weet u zeker dat u wilt afdrukken?") = vbYes Then
    For sh = 1 To 3
    Sheets(sh).PrintOut
    Next
    End If
End Sub

Niels
 
dankje voor het snelle antwoord

is er ook en mogelijkheid om het met de werkblad namen te doen want de printpagina's staan namelijk niet op volgorde het is namelijk werkbladen 1, 5,6,10,11 waarbij voor 5 en 6 een ander afdrukbereik moet zijn dan nu is ingesteld
 
Afdruk bereik maakt niet uit.
Stel deze eenmalig op de tabbladen in.
printout houdt zich aan het afdrukbereik dat bij het af te drukken blad hoort.

blad1 , blad2 enz vervangen door de namen van jouw tabbladen.

Code:
Private Sub CommandButton2_Click()
    If MsgBox(Title:=ActiveWorkbook.Author, Buttons:=vbQuestion + vbYesNo, Prompt:="Weet u zeker dat u wilt afdrukken?") = vbYes Then
    sq = Array("blad1", "blad2", "blad3")
    For i = 0 To UBound(sq)
    Sheets(sq(i)).PrintOut
    Next
    End If
End Sub

Niels
 
Helaas loop ik nu weer tegen een ander probleem (het moet natuurlijk alijd mooier en beter als van te voren gedacht)

zie bijgaande bestandje ik hoop dat het duidelijk is
 

Bijlagen

zoiets?

Code:
Private Sub CommandButton1_Click()
    If MsgBox(Title:=ActiveWorkbook.Author, Buttons:=vbQuestion + vbYesNo, Prompt:="Weet u zeker dat u wilt afdrukken?") = vbYes Then
    If ActiveSheet.Range("a1").Value = "massief" Then
    sq = Array("m1", "m2", "m-h1", "m-h2")
    ElseIf ActiveSheet.Range("a1").Value = "hol" Then
    sq = Array("m-h1", "m-h2")
    End If
    
    For i = 0 To UBound(sq)
    Sheets(sq(i)).PrintOut
    Next
    End If

End Sub

Private Sub CommandButton2_Click()
    If MsgBox(Title:=ActiveWorkbook.Author, Buttons:=vbQuestion + vbYesNo, Prompt:="Weet u zeker dat u wilt afdrukken?") = vbYes Then
    If ActiveSheet.Range("a1").Value = "massief" Then
    sq = Array("m1", "m2", "m-h1", "m-h2")
    ElseIf ActiveSheet.Range("a1").Value = "hol" Then
    sq = Array("m-h1", "m-h2")
    End If

    For i = 0 To UBound(sq)
    j = ActiveSheet.Range("a2").Value * 2
    With Sheets(sq(i))
    .Range("G1").Resize(12, j).PrintOut
    End With
    Next
    End If
End Sub

Niels
 
Als je een reeel voorbeeld hebt gegeven dan kan dat geen probleem zijn.;)

Niels
 
de eerste vier zijn gelukt en de laatste halverwege ik loop alleen op 3 dingen vast en het gaat in alle drie de gevallen om het laatste stukje van knop 2

de afmeting lengte heb ik gewijzigd alleen die in de breedte lukt niet?
op 1 tabblad is beginrange, lengte en breedte niet het zelfde als de andere 3 hoe kan ik dit het beste oplossen?

En als laatste waar ik een vraag over heb is het afdrukken. Voor de cellen die ik wil afdrukken maar niet in het afdruk bereik staan gelden daar de zelfde voorwaardes voor als in het afdrukbereik?

alvast bedankt.
 
Lastig beantwoorden zonder uitleg of voorbeeld.
Ik denk dat je dit bedoelt, voor blad m1 en m2 kun je in dit voorbeeld een andere breedte opgeven.

Code:
Sub test()
        If MsgBox(Title:=ActiveWorkbook.Author, Buttons:=vbQuestion + vbYesNo, Prompt:="Weet u zeker dat u wilt afdrukken?") = vbYes Then
    If ActiveSheet.Range("a1").Value = "massief" Then
    sq = Array("m1", "m2", "m-h1", "m-h2")
    ElseIf ActiveSheet.Range("a1").Value = "hol" Then
    sq = Array("m-h1", "m-h2")
    End If


    For I = 0 To UBound(sq)

    With Sheets(sq(I))
    If InStr("m1|m2", .Name) Then
        j = ActiveSheet.Range("a2").Value * 2 'hier ander waarde aanhangen
    .Range("G1").Resize(12, j).PrintOut
    Else
        j = ActiveSheet.Range("a2").Value * 2
    .Range("G1").Resize(12, j).PrintOut
    End If
    End With
    Next
    End If


    End Sub

Wat bedoel je met dezelfde voorwaarde voor het afdrukken?

Niels
 
De formules werken nu perfect dankje wel voor het snelle antwoorden:D

Met het afdrukken bedoel ik dat de kolommen nu doorgaan bijv. de linkerkolom van 2 staat op blad 1 en de rechterkolom van 2 staat op blad 2 terwijl het beter is als de cijfers 1 op blad 1 staan en 2 op blad 2 etc.
 
Op de volgende manier kun je aangeven hoeveel kolommen er op 1 blad passen en dan de rest op een 2de blad.

Code:
    If InStr("m1|m2", .Name) Then
        j = ActiveSheet.Range("a2").Value * 2 'hier ander waarde aanhangen
        If j > 6 Then
         .Range("G1").Resize(12, (j / 2)).PrintOut
          .Range("G1").Offset(0, (j / 2)).Resize(12, (j / 2)).PrintOut
          Else
    .Range("G1").Resize(12, j).PrintOut
    Else

om hoeveel bladzijdes gaat het?


Niels
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan