• 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 aan de hand van voorwaarde

  • Onderwerp starter Onderwerp starter vrouw
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

vrouw

Terugkerende gebruiker
Lid geworden
27 mrt 2010
Berichten
1.538
Hallo,

Ik wil graag ingevulde gegevens exporteren naar een formulier (op ander tabblad) en dat die dan word uitgeprint. dus:

Aan de hand van de voorwaarde (kolom F) als die op ja staat dat het er formulieren die op het tweede tabblad staat met de gegevens uit kolom a t/m e word gevuld en geprint.
Of kan ik dit beter anders aanpakken?
 

Bijlagen

Hier ga je tegen een macro/vba script aanlopen :-) ... dit kan natuurlijk; maar wellicht is dit makkelijker op te lossen met de standaard functionaliteit in MS Access :-)
 
Hier ga je tegen een macro/vba script aanlopen :-) ... dit kan natuurlijk; maar wellicht is dit makkelijker op te lossen met de standaard functionaliteit in MS Access :-)

Het zal met Excel moeten en dmv een macro is niet erg.:p
 
Ja dat zier er al goed uit maar het printen gaat niet?

Als ik de macro draai komen er foutmeldingen, moeten de tabbladen andere namen hebben?
 
ik heb het volgende in de module gezet:
Code:
Public Sub PrintAdressen()
Dim rSheet As Worksheet
Dim wSheet As Worksheet
Dim i As Long
Set rSheet = ThisWorkbook.Sheets("Sheet1") 'harde sheetverwijzing
Set wSheet = ThisWorkbook.Sheets("Sheet2") 'harde sheetverwijzing
For i = 0 To rSheet.Range("tbl_adressen").Rows.Count
'in deze "loop" wordt er door de tabel gegaan
    With rSheet.Range("tbl_adressen")
    If .Cells(i, 6) = "ja" Then
    'indien hij een "ja" tegenkomt wordt de data op sheet2 gezet
        wSheet.Range("output.naam") = .Cells(i, 1)
        wSheet.Range("output.adres") = .Cells(i, 2)
        wSheet.Range("output.postcode") = .Cells(i, 4)
        wSheet.Range("output.nummer") = .Cells(i, 3)
        wSheet.Range("output.plaats") = .Cells(i, 5)
    End If
    'hier wordt de selectie naar de printer gestuurd; let op hij gebruikt de 'default' printer
    wSheet.Range("output.totaal").PrintOut
    End With
Next i
End Sub

Hij gebruikt dus de sheet namen (sheet1, sheet2) en de default printer...
 
Foutmelding run-time error 1004
method range of object_ worksheet failed

op regel

For i = 0 To rSheet.Range("tbl_adressen").Rows.Count
 
OOh sorry, vergeten toe te lichten:
Ik ben gewent veel ranges een naam te geven; zo heet de tabel "tbl_adressen"
en hebben de 5 uitvoervelden ook elk hun naam met "output.naam", "output.adres", etc. Dit maakt de code wat leesbaarder als "$D$3", "$VD$45" etc.
Daarnaast het geheel output range een naam gegeven (dus alle cellen die je wilt printen) als: "output.totaal".
Deze kreten komen in de code weer terug.
Je kunt cellen en ranges een naam geven door in het vak linksboven (waar normaal dus "A1", "D5" etc staat) de een naam te tikken.
 
Oké, dat is dus de reden dat ik de foutmelding krijg?
maar.... wat moet ik nou aanpassen om eea werkend te krijgen?
Sorry hoor maar wek erg blond ben ik :-)
 
Je moet je tabellen en cellen een naam geven :-).

Bijvoorbeeld:
Selecteer de gehele tabel (in jouw voorbeeld is dat sheet 1 - range(A4 : A7) )
Klik met je muis op het witte veld (pal boven je kolomnummer 'A') - hierin staat nu waarschijnlijk 'A4'; maak hiervan: tbl_adressen.
Nu heb je het gehele bereik een 'naam' gegeven.

Doe hetzelfde voor de cellen op sheet2, individueel aanklikken en ze de namen geven zoals hierboven is aangegeven.
 
Je moet je tabellen en cellen een naam geven :-).
Bijvoorbeeld:
Selecteer de gehele tabel (in jouw voorbeeld is dat sheet 1 - range(A4 : A7) )

Ik snap er geen "ruk" van:o
(had ik je al bedankt voor je hulp? bij deze)

Ik gebruik het bestand wat jij hier neergezet hebt, daar zit het bovenstaande nog niet in?
en die tabbel naam moet van A4:A7 zijn? en niet A4:F7?:o
 
Hey, dat is inderdaad vreemd (ik dacht dat je een 'voorbeeld' had gepost)...
In het bestand dat ik heb geplaatst (test3.xlsm) kom ik zelf geen problemen tegen (behalve dat ik nu al 3 printjes heb liggen van Jan Klaasen)....

*Vast wel dat Wampier de macro een schop kan geven* :-)
 
Jawel het printen is gelukt...
Maar ik krijg na 1x de macro draaien,
3x tinneke visser
2x jan klaasen
1x jan de boer
 
Dat is `m ook niet.
Hij laat na het lopen van de macro eerst een print voorbeeld zien en als ik dan op print klik komt er één printje uit.alleen van tinneke.
 
hoi,

Heeft iemand hier nog een oplossing voor?
 
Code:
Public Sub PrintAdressen()
Dim rSheet As Worksheet
Dim wSheet As Worksheet
Dim i As Long
Set rSheet = ThisWorkbook.Sheets("Sheet1")
Set wSheet = ThisWorkbook.Sheets("Sheet2")
With rSheet
    For i = 4 To rSheet.Range("F65536").End(xlUp).Row
        If .Cells(i, 6) = "ja" Then
            wSheet.Range("output.naam") = .Cells(i, 1)
            wSheet.Range("output.adres") = .Cells(i, 2)
            wSheet.Range("output.postcode") = .Cells(i, 4)
            wSheet.Range("output.nummer") = .Cells(i, 3)
            wSheet.Range("output.plaats") = .Cells(i, 5)
            wSheet.Range("output.totaal").PrintOut
        End If
    Next i
End With
End Sub
 
Mijn dank is groot voor je code warme bakkertje!
Ik heb je code in mijn bestandje verwerkt maar toch gaat het niet geheel goed.
Ik heb op tabblad1 de tabel en tabel kolommen een naam gegeven een naam gegeven.

Maar op tabblad houd ie als ik bijv. de cel E8 de naam output.naam geef niet vast.
Wat doe ik verkeerd?

Edit:

loopt vast o:
wSheet.Range("output.naam") = .Cells(i, 1)
 

Bijlagen

Laatst bewerkt:
Thanks:thumb:

Wat heb jij nou gedaan om output.name in E8 te krijgen op 2e tabblad.:o
Lukt mij met geen mogelijkheid.:mad:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan