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

Macro aanpassen voor printen enkel gevulde cellen

Status
Niet open voor verdere reacties.

coolsluc

Gebruiker
Lid geworden
2 mei 2013
Berichten
332
Aan iedereen die wil helpen.
In bijlage een tabel met macro voor opvullen en printen.
Nu zou ik graag de macro willen laten aanpassen zodat hij na het opvullen enkel de opgevulde cellen print .
ps:graag ook een uitleg hoe de formule is opgebouwd zodat ik deze zelf kan aanpassen (heb verschillende tabellen/sheets die ook met zo een macro moeten werken).
Dan hoe ik telkens geen nieuw vraag te stellen (ken niet veel van vba).

Bekijk bijlage Inschrijvingsnummer per tafel.xlsm

mvg,Luc
 
Test deze eens:
Code:
Sub Printen()
  If WorksheetFunction.CountA(Range("B1:E33")) > 0 Then
    LaatsteRij = Range("B1:E33").Find(What:="*", After:=[B1], SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
  End If
   Range("B1:E" & LaatsteRij).PrintOut Copies:=1, Collate:=True
    ActiveWorkbook.Save
End Sub
 
Cobbe,

Bedankt voor de snelle reactie
Ik heb de formule getest en deze werkt perfect.
ps:weet niet of de geheimen achter de formule blootgeven u past,dit zou ik sterk waarderen indien liever niet ook in orde.
maar als ik deze formule wil kopiëren naar een nader werkblad en dan nog moet laten werken is een klein beetje uitleg bij de formule toch gewenst.
zelf ken ik niet veel van vba (ben een leek).
Alvast bedankt voor de aangebrachte oplossing.


mvg,Luc
 
Nu met een beetje uitleg:
Code:
Sub Printen()
' deze code loopt enkel als er een waarde in het bereik B4:E33 is ingevuld
  If WorksheetFunction.CountA(Range("B4:E33")) > 0 Then
' eesrt wordt de laatste rij met ingevulde waarde bepaald
    LaatsteRij = Range("B4:E33").Find(What:="*", After:=[B4], SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
  End If
' Nu wordt het bereik van de eerste rij tot en met Laatsterij geprint
   Range("A1:E" & LaatsteRij).PrintOut Copies:=1, Collate:=True
' Het bestand wordt opgeslagen onder dezelfde naam
    ActiveWorkbook.Save
End Sub
 
Laatst bewerkt:
Cobbe,

Bedankt voor de verhelderende uitleg bij de code,begrijp nu hoe ze is opgebouwd.


mvg,Luc
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan