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

print opdracht

Status
Niet open voor verdere reacties.

ronnie123

Gebruiker
Lid geworden
21 nov 2007
Berichten
628
beste forum leden
wie kan me helpen met een print opdracht?
het gaat erom dat er gekeken wordt naar kolom K als daar "nee"staat moet die regel's ( kolom B,C,D en E )afgedrukt worden.
maar voordat het afgedrukt wordt moet het eerst nog gesorteerd worden op kolom B
( oplopend )is dit mogelijk en kan iemand me daar mee helpen
zou zeer dankbaar zijn.
groetjes ronnie
 
beste forum leden
wie kan me helpen met een print opdracht?
het gaat erom dat er gekeken wordt naar kolom K als daar "nee"staat moet die regel's ( kolom B,C,D en E )afgedrukt worden.
maar voordat het afgedrukt wordt moet het eerst nog gesorteerd worden op kolom B
( oplopend )is dit mogelijk en kan iemand me daar mee helpen
zou zeer dankbaar zijn.
groetjes ronnie

ronnie123 , ik kolom K > welke cel waar de "nee" komt te staan , print > landschap of portret ? wat is de te printen range B2:E23 of ? ; voor het gemak waarschijnlijk heb jij al iets ( bestandje ) load dit eens up ;) moeten de helpers niet nabootsen .
 
Laatst bewerkt:
hallo Trucker10
bedankt voor je reactie
doe er wel een voorbeeld bestandje bij
het gaat om ongeveer 250 rijen
groetjes ronnie
 

Bijlagen

Wat dacht je hier van:
Code:
Sub Betaald_Sorteren_en_Afdrukken()
    '   Bepaald de laatste regel van de tabel
    LastRow = ActiveSheet.UsedRange.Rows.Count
    '   Als er een filter bestaat, wordt deze nu weg gehaald
    ActiveSheet.AutoFilterMode = False
    '   Stelt een filter in, op Betaald = Ja
    ActiveSheet.Range("$A$1:$M$" & LastRow).AutoFilter Field:=12, Criteria1:="ja"
    '   Haalt een eventuele sortering weg
    ActiveWorkbook.Worksheets("Blad1").AutoFilter.Sort.SortFields.Clear
     LastRow = ActiveSheet.UsedRange.Rows.Count
    '   Sorteert de boel op kolom B
    ActiveWorkbook.Worksheets("Blad1").AutoFilter.Sort.SortFields.Add Key:=Range( _
        "B2:B" & LastRow), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
         xlSortNormal
    With ActiveWorkbook.Worksheets("Blad1").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    ' Stelt het afdrukbereik in
    LastRow = ActiveSheet.UsedRange.Rows.Count
    ActiveSheet.PageSetup.PrintArea = "$B$1:$E$" & LastRow
    ' Afdrukvoorbeeld. Als je direct wilt afdrukken, de ", , , True" weghalen
    ActiveSheet.PrintOut , , , True
    ' Stelt het afdrukbereik weer op het hele blad in
    ActiveSheet.PageSetup.PrintArea = False
    ' Haalt het filter weer weg.
    ActiveSheet.AutoFilterMode = False
End Sub
 
hallo PSVsupporter
bedankt voor je hulp, maar zit met een fout melding:
Fout 438 tijdens uitvoering.
Deze eigenschap of methode wordt niet ondersteund door dit object.
En de volgende regel is geel
Code:
 ActiveWorkbook.Worksheets("Blad1").AutoFilter.Sort.SortFields.Clear

wat moet ik hier aan doen?
groetjes ronnie
 
Vervang:
Code:
    '   Haalt een eventuele sortering weg
    ActiveWorkbook.Worksheets("Blad1").AutoFilter.Sort.SortFields.Clear
     LastRow = ActiveSheet.UsedRange.Rows.Count
    '   Sorteert de boel op kolom B
    ActiveWorkbook.Worksheets("Blad1").AutoFilter.Sort.SortFields.Add Key:=Range( _
        "B2:B" & LastRow), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
         xlSortNormal
    With ActiveWorkbook.Worksheets("Blad1").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

door

Code:
    Range("A1:M" & Lastrow).Select
    Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    Range("A1").select

Eerstgenoemde is versie 2007 functionaliteit, die in 2000/2003 niet bestaat.
 
goede middag PSVsupporter
het werkt prima maar zit nog met een probleempje in mijn originele bestand moet het vanaf regel 5 werken want in regel 1 t/m 4 zitten samen gevoegde cellen en geeft het problemen met sorteren, ben zelf al aan het veranderen geweest maar dat lijkt nergens op
kun je me vertellen wat ik aan moet passen.
groetjes ronnie
 
Lees de code rustig door.

Tip: Een methode om te kijken hoe deze werkt: Gebruik F8 om stap voor stap door de regels te gaan, zie je precies wat er gebeurd met je tabel.
Dit start je op door in de code te gaan staan en F8 drukt. De regel die uitgevoerd gaat worden, wordt dan geel.
 
Hallo PSVsupporter
ik kom er niet uit heb het nu aangepast komt goed op papier maar hij pakt nu maar 1 persoon terwijl het er 3 moeten zijn.
dit is het nu

Code:
Sub Betaald_Sorteren_en_Afdrukken()
    '   Bepaald de laatste regel van de tabel
    Lastrow = ActiveSheet.UsedRange.Rows.Count
    '   Als er een filter bestaat, wordt deze nu weg gehaald
    ActiveSheet.AutoFilterMode = False
    '   Stelt een filter in, op Betaald = nee
    ActiveSheet.Range("$A$5:$M$" & Lastrow).AutoFilter Field:=12, Criteria1:="nee"
       Range("A5:M" & Lastrow).Select
    Selection.Sort Key1:=Range("B5"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    Range("A1").Select
    ' Stelt het afdrukbereik in
    Lastrow = ActiveSheet.UsedRange.Rows.Count
    ActiveSheet.PageSetup.PrintArea = "$B$4:$E$" & Lastrow
    ' Afdrukvoorbeeld. Als je direct wilt afdrukken, de ", , , True" weghalen
    ActiveSheet.PrintOut , , , True
    ' Stelt het afdrukbereik weer op het hele blad in
    ActiveSheet.PageSetup.PrintArea = False
    ' Haalt het filter weer weg.
    ActiveSheet.AutoFilterMode = False
End Sub
wat heb ik niet goed gedaan
groetjes ronnie
 
Het zit 'm in Lastrow:
Code:
Lastrow = ActiveSheet.UsedRange.Rows.Count

Als je nu gaat rekenen vanaf regel 4, i.p.v. 1, zit je 3 regels te hoog in feite. Dan is het niet vreemd dat de selectie die geprint wordt dan niet klopt.
Je moet Lastrow dus ophogen met 3.

Dus:
Code:
Lastrow = ActiveSheet.UsedRange.Rows.Count + 3
 
sorry PSVsuporter ik heb het op alle twee de regels veranderd maar er veranderd niets in de afdruk
grt ronnie
 
Code:
Sub Betaald_Sorteren_en_Afdrukken()
  With ActiveSheet
    .AutoFilterMode = False
    With .UsedRange.offset(4).Range("A:M") 
      .AutoFilter 12, "nee"
      .Sort .specialcells(xlcelltypevisible).cells(1,2) 
     end with
     .PageSetup.PrintArea = .usedrange.offset(3).range("B:E").address
     .PrintOut , , , True
     .PageSetup.PrintArea = False
     .AutoFilterMode = False
  End With 
End Sub
 
hier is een gesloopt bestandje
en snb bedankt voor het meedenken maar bij jou code krijg ik een fout melding voor de volgende regel

Code:
With .UsedRange.Offset(4).Range("A:M")
grt ronnie
 

Bijlagen

Code aangepast.
Fout zat 'm in meerdere regels.
Als je deze code toepast, werkt het.

Let op: Indien je allerlei regels of kolommen gaat verbergen, heeft dit invloed op deze VBA.
Je had bijvoorbeeld een kolom toegevoegd, waardoor je niet kolom 12, maar 13 (Field:=13) moet gebruiken.

Code:
Sub Betaald_Sorteren_en_Afdrukken()
    '   Bepaald de laatste regel van de tabel
    Lastrow = ActiveSheet.UsedRange.Rows.Count
    '   Als er een filter bestaat, wordt deze nu weg gehaald
    ActiveSheet.AutoFilterMode = False
    '   Stelt een filter in, op Betaald = nee
    ActiveSheet.Range("$A$4:$M$" & Lastrow).AutoFilter Field:=13, Criteria1:="nee"
       Range("A4:M" & Lastrow).Select
    Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    Range("A5").Select
    ' Stelt het afdrukbereik in
    Lastrow = ActiveSheet.UsedRange.Rows.Count
    ActiveSheet.PageSetup.PrintArea = "$B$4:$E$" & Lastrow
    ' Afdrukvoorbeeld. Als je direct wilt afdrukken, de ", , , True" weghalen
    ActiveSheet.PrintOut , , , True
    ' Stelt het afdrukbereik weer op het hele blad in
    ActiveSheet.PageSetup.PrintArea = False
    ' Haalt het filter weer weg.
    ActiveSheet.AutoFilterMode = False
End Sub
 
PSVsupporter het is gelukt.
bedankt voor je hulp en tijd
groetjes ronnie
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan