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

VBA codes

Status
Niet open voor verdere reacties.

Saturnus twente

Gebruiker
Lid geworden
4 aug 2010
Berichten
33
Hallo,

ik heb een vraag ik heb vba codes opgenomen maar ik kom er niet uit.

wat ik graag wil is het volgende:

via een button wil ik graag mijn sheet uit printen


B2 is de eerste cel die hij uit mag printen en laaste rij is T
de laaste regel kan varieren...door dat ik regels tussen kan voegen en verwijderen.

nu mag hij kolom D en E niet uit printen

wat ik deed was opname vba

daar deed ik eest select kolm D en E hide
daarna page setup koos ik voor landscape
dan print
dan unhide D en E
en dan tikte ik cel B7 aan om selectie weg te halen.

nu heb ik dus deze code, maar hoe krijg ik mn print bereik vanaf B2 / T2 en dus variable aan het eind .

Sub Printindeling()
'
' Printindeling Macro
' Printen van Indeling
'

'
Columns("D:E").Select
Selection.EntireColumn.Hidden = True
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.PrintTitleRows = "$2:$5"
.PrintTitleColumns = ""
End With
Application.PrintCommunication = True
ActiveSheet.PageSetup.PrintArea = ""
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.708661417322835)
.RightMargin = Application.InchesToPoints(0.708661417322835)
.TopMargin = Application.InchesToPoints(0.748031496062992)
.BottomMargin = Application.InchesToPoints(0.748031496062992)
.HeaderMargin = Application.InchesToPoints(0.31496062992126)
.FooterMargin = Application.InchesToPoints(0.31496062992126)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintSheetEnd
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = False
.PrintErrors = xlPrintErrorsDisplayed
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.ScaleWithDocHeaderFooter = True
.AlignMarginsHeaderFooter = True
.EvenPage.LeftHeader.Text = ""
.EvenPage.CenterHeader.Text = ""
.EvenPage.RightHeader.Text = ""
.EvenPage.LeftFooter.Text = ""
.EvenPage.CenterFooter.Text = ""
.EvenPage.RightFooter.Text = ""
.FirstPage.LeftHeader.Text = ""
.FirstPage.CenterHeader.Text = ""
.FirstPage.RightHeader.Text = ""
.FirstPage.LeftFooter.Text = ""
.FirstPage.CenterFooter.Text = ""
.FirstPage.RightFooter.Text = ""
End With
Application.PrintCommunication = True
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Columns("C:F").Select
Selection.EntireColumn.Hidden = False
Range("B7").Select
End Sub
 
Probeer dit eens
Code:
Sub Printindeling()
    With ActiveSheet
        lr = .Range("A" & Rows.Count).End(xlUp).Row
        .Columns("D:E").Hidden = True
        With .PageSetup
            .PrintArea = "$B$2:$T$" & lr
            .PrintTitleRows = "$2:$5"
            .Orientation = xlLandscape
            .FitToPagesWide = 1
        End With
        .PrintOut
        .Columns("D:E").Hidden = False
        Application.Goto .Cells(7, 2)
    End With
 End Sub
 
Hallo Spaarie

Bedankt
hij werkt, verder helemaal goed
alleen hij neemt de onderste 4 regels niet mee...

ik heb hem ook even in een test documentje gezet ( deze loopt niet toto kolm T ) maar das detail.
daar neemt hij de laaste 2 regels niet mee
 
Code:
lr = .Range("A" & Rows.Count).End(xlUp).Row
Dit stukje bepaalt de laatste regel van het bereik. Deze bepaalt het nu aan het aantal rijen in kolom A. Als kolom T langer is dan zal je de 'A' moeten veranderen in een 'T'.
Waarschijnlijk worden dan de laatste 4 regels wel meegenomen.
 
Laatst bewerkt:
Al weer bedankt toppie

Hij werkt perfect..
kolom A stond een voorwaarde in en gebruik ik niet in de sheet als zichtbaar
dus heb kolom B genomen.



maar nu zou ik het zelfde willen maar dan niet printen maar een pdf maken
met als bestands naam de waarde in cel B2 en deze op laten slaan in de zelfde directory van het exel bestand..

hier ben ik zelf ook al mee aan proberen geweest..maar inmiddels voor beide items 3 dagen verder en u heeft het in paar minuten haha

alvast bedankt
 
Laatst bewerkt:
Als dit al bekend was, kon je dit ook in je originele vraag stellen. Wellicht voor de volgende keer ;)
Code:
Sub Printindeling()
    With ActiveSheet
        p = ThisWorkbook.Path
        f = p & "\" & .Range("B2").Value
        lr = .Range("B" & Rows.Count).End(xlUp).Row
        .Columns("D:E").Hidden = True
        With .PageSetup
            .PrintArea = "$B$2:$T$" & lr
            .PrintTitleRows = "$2:$5"
            .Orientation = xlLandscape
            .FitToPagesWide = 1
        End With
        .ExportAsFixedFormat xlTypePDF, f
        Application.Goto .Cells(7, 2)
    End With
End Sub
 
Bedankt,

Ja klopt was bekend, zou ik de volgende keer in 1 x stellen daar hebt u helemaal gelijk in

ik zie dat u de beide samen gevoegd hebt in 1 vba.

alleen wou ik bijde acties als sepreate buton dus de pdf als andere button
omdat printen vaker voor komt dan PDf
wat moet ik dan veranderen?


groet Gert-jan
 
Je maakt 2 subs (die je zelf kan benoemen) en wijst deze aan de daarvoor bestemde knop.
Code:
Sub Printpapier()
    With ActiveSheet
        lr = .Range("B" & Rows.Count).End(xlUp).Row
        .Columns("D:E").Hidden = True
        With .PageSetup
            .PrintArea = "$B$2:$T$" & lr
            .PrintTitleRows = "$2:$5"
            .Orientation = xlLandscape
            .FitToPagesWide = 1
        End With
        .PrintOut
        .Columns("D:E").Hidden = False
        Application.Goto .Cells(7, 2)
    End With
 End Sub
Code:
Sub PrintPDF()
    With ActiveSheet
        p = ThisWorkbook.Path
        f = p & "\" & .Range("B2").Value
        lr = .Range("B" & Rows.Count).End(xlUp).Row
        .Columns("D:E").Hidden = True
        With .PageSetup
            .PrintArea = "$B$2:$T$" & lr
            .PrintTitleRows = "$2:$5"
            .Orientation = xlLandscape
            .FitToPagesWide = 1
        End With
        .ExportAsFixedFormat xlTypePDF, f
        Application.Goto .Cells(7, 2)
    End With
End Sub

Misschien nog een leuke optie (zie bijlage)
 

Bijlagen

Laatst bewerkt:
Nogmaals Hartelijk bedankt.

Het werkt naar behoren.. al heb ik wel 1 regel toe moeten voegen bij pdf hahaha..
de un hide van kolom D en E zat er niet tussen maar heb ik gekopieerd uit print. en nu werkt het supper.

ook de optie is mooi. ik ga deze toe passen.
dank u
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan