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

Voorwaardelijk Printen

Status
Niet open voor verdere reacties.

Fredemel

Gebruiker
Lid geworden
2 jun 2008
Berichten
117
Als nieuwkomer deze vraag:

Ik heb vaak te maken met het afnemen van sporttesten die resulteren (mits voldaan) aan een certificaat.
Nu.... print ik mijn tabblad "data' af door in het tabblad "printen" (die de juiste lay-out heeft voor het
certificaat) steeds in een cel een nummer in te voeren die alle data van het tabblad "data" ververst in het
tabblad "printen". (vert.zoeken)
Ik zoek een oplossing (macro) die in een kolom (in tabblad:"data") zolang doorloopt tot er geen waarde
meer in die kolom zit. Én die natuurlijk alle andere waardes ververst in het tabblad "printen" voordat ie gaat printen.

Mijn dank zal aan "hondsdolheid" gaan grenzen..... (Het zijn vaak meer dan 100 regels data....)
Bvkb (bijVoorbaatKei-jBedankt)
Fred
 
Code:
Sub tst()
With Sheets("Data")
    For Each cl In .Range("A2:A" & .Cells(Rows.Count, 1).End(xlUp).Row)
        [Printen!A1] = cl.Value
        Sheets("Printen").PrintOut
    Next
End With
End Sub
 
Zo makkelijk....????

Hallo "warm bakkertje",....

met stomheid geslagen..... Aangezien ik de code zou willen begrijpen..... Zou je kunnen uitleggen wat jou code betekend en doet....?
En.... Nog een mogelijkheid om mee te nemen in de voorwaarde.....
In een cel komt "Vold" of "ONVold" te staan.... Kan die voorwaarde er ook ingezt worden, dus ALS de regel niet leeg is en cel "xx" IN die regel is "Vold" dan pas mag ie de printopdracht uitvoeren....

Pffffff.... 'k mot nog veul leren/lezen.....

Bvd
 
Code:
Sub tst()
With Sheets("Data")
'in werkblad Data
    For Each cl In .Range("A2:A" & .Cells(Rows.Count, 1).End(xlUp).Row)
    'hier wordt gekeken hoelang de reeks is in kolom A en wordt deze
    'waarde per waarde doorlopen
        If cl.Offset(, 4) = "Vold" Then
        'tel het aantal kolommen naar rechts en controleert de waarde v/d cel
        'indien voldaan wordt aan de voorwaarde ga dan verder met de uitvoering
            [Printen!A1] = cl.Value
            'cel A1 van tabblad Printen wordt ingevuld met de waarde (cl) in kolom A
            'v/d reeks op tabblad Data en met de VertZoeken-formule worden alle
            'andere waarden aangepast
            Sheets("Printen").PrintOut
            'het blad wordt afgedrukt
        End If
        'de controle v/d voorwaarde wordt afgesloten
    Next
    'de volgende waarde in kolom A wordt geselecteerd en code wordt opnieuw doorlopen
End With
End Sub
 
Laatst bewerkt:
Voorwaardelijk printen...? "eitje".... ;-)

Warme bakkertje,.......

Écht kei-j bedankt.....
Wat kan het (programmeer)leven toch mooi zijn.....
Hier kan ik écht mee uit de voeten. Ik dacht dat VB
véél lastiger zou zijn. je moet natuurlijk wel weten
welke mogelijkheden te kunt gebruiken, zoals:
.Cells(Rows.Count, 1).End(xlUp).Row

Maar daar kom ik nog wel ooit achter,.....

Nog één vraag: Welk boek adviseer je me om VB
tot behoorlijk "diep" te leren, van scratch af aan...?

Nogmaals..... zéér vriendelijk bedankt....!

Gr Fred uit Weert
 
Je hebt de boeken van John Walkenbach en Guy Hart-Davis. Verschillende websites van oa cpearson, Ron de Bruin, Andy Pope en uiteraard onze eigen Wim Gielis. En natuurlijk ook dit forum, WorksheetNl, Office Web Forum, en de ontelbare engelstalige fora waaronder Ozgrid.
Zoals je ziet is er keuze genoeg :d
 
Helaas

Warme bakkertje,

helaas...... de code werkt niet... :-(

Binnen de VB script worden alle VB-codes in het blauw aangegeven (toch..?)
Onder andere deze:.. If cl.Offset(, 4) = "Vold" Then (regel 7)
"krijgen" dat niet.... En dat vond ik al onlogisch

De uitleg tussen de code-regels is duidelijk (nog bedankt natuurlijk..!)
Waar de code hapert..... weet ik niet.
Ik hoop dat dat jou wel lukt ('kweet het wel zeker..)
Wil er aub nog eens naar kijken.....

B.v.d.,

Fred uit Weert
 
Kan je misschien verduidelijken wat er juist niet werkt, want de opmerking 'Het werkt niet' daar hebben we niet veel aan :eek:
Kloppen alle bladnamen ? Staan de gegevens in kolom A of een andere ? Klopt de kolom met de voorwaarde met het cijfer in de Offset ?
 
Laatst bewerkt:
Kloppen alle bladnamen ? ja

Staan de gegevens in kolom A of een andere ? ja

Klopt de kolom met de voorwaarde met het cijfer in de Offset
Deze snapte ik al niet.
Het gaat dus om:

If cl.Offset(, 4) = "Vold" Then

Dit heb ik veranderd in 3 (3e kolom heeft de waarde "Vold")

Ik heb het bestand bijgevoegd. Het meest rara vind ik dat;

- zonder het "IF-Then-End If"-statement, worden de data-regels wel uitgeprint...
Dus ergens.... zit daar een kink in de kabel......

Wederom bijvoorbaatdank

Fred uit Weert.....
 

Bijlagen

  • _PrintenAlsVoldoende_03.rar
    15,3 KB · Weergaven: 47
Basale "vaudt"

Tja,.... wat moet ik zeggen.....?

Als men in kolom A staat en je wilt checken of kolom C een bepaalde waarde heeft..... dan
"ga je dus 2 kolommen naar rechts en geen 3 (als zijnde de 3e kolom).

Pffff, simpel, maar wel "dodelijk" voor het resultaat.

Beste "warme bakkertje", thanks voor je steun en ik hoop dat ik je vaken mag "lastig vallen" als ik er niet zelf uit kan komen. Een ding is zeker, ik ben erg "getriggered" aangaande VB,.... ;)

KEI-J bedankt......!

Gr Fred uit Weert
 
De aanhouder wint :):thumb:
De Offset zal je in elk geval niet meer vergeten :p
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan