• 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 van meerdere brieven met verschillende gegevens

Status
Niet open voor verdere reacties.

Andre175

Gebruiker
Lid geworden
2 feb 2018
Berichten
351
Hallo.

Wie kan mij op weg helpen om het dmv VBA het mogelijk te maken om een brieven met een standaard opmaak maar met verschillende gegevens automatisch te printen.
Het gaat om ongeveer 300 brieven.
Zoals ik het nu heb moet ik stuk voor stuk een printopdracht geven.
De verschillende gegevens worden dmv een slicer gekozen.

Ik heb een verkleind bestand gemaakt en bijgevoegd met dezelfde opzet als mijn "grote" bestand.
in dit bestand op tabblad "brief" mijn probleem/wensen verder beschreven.

Bvd André
 

Bijlagen

probeer deze eens onder je knop "print meerdere brieven"

Code:
Sub Andre175()
With Sheets("Brief")
    For i = 1 To 7
        ActiveWorkbook.SlicerCaches("Slicer_ID").VisibleSlicerItemsList = Array("[Tbl_indeling_kind].[ID].&[" & i & "]")
            If i >= .Range("M20").Value And i <= .Range("M21").Value And InStr(.Range("B4").Value, .Range("M22").Value) > 0 Then
                .Range("A1:F38").PrintOut
            End If
    Next
End With
End Sub
 
Ik kom hier wel verder mee, denk ik:d
Alleen als ik de selectie "alle scholen" kies dan wordt er niets afgedrukt :confused:

Ben aan het puzzelen hoe dit op te lossen. (eigenlijk voor mij voor het eerst zo met VBA te werken, aan de hand van voorbeelden kom ik wel een heel eind, afwachten of ik de eindstreep haal.)
 
Waarom zit er een draaitabel tussen?

Code:
Sub VenA()
  ar = Sheets("Indeling_kind").ListObjects(1).DataBodyRange
  With Sheets("Brief")
    For j = 1 To UBound(ar)
      If ar(j, 1) >= .[M20] And ar(j, 1) <= .[M21] And (.[M22] = "Alle scholen" Or .[M22] = ar(j, 5)) Then
        .Cells(3, 2).Resize(3) = Application.Transpose(Array(ar(j, 2) & " " & ar(j, 3), "School: " & ar(j, 5), "Groep: " & ar(j, 4)))
        .Range("A1:F38").PrintPreview
      End If
    Next j
  End With
End Sub
 
in dit bestandje lijkt het overbodig idd.
het bestand waar het voor bedoeld is, is een stukje groter.
planning voor 60 activiteiten voor ruim 400 kinderen, heb datgene eruit gehaald wat me nodig leek om mijn probleem op te lossen.
en dat lukt aardig.... thanks.
ik ga laatst gegeven voorbeeld proberen.

andré
 
ik heb het nu als volgt werkend. (voor mijn definitieve bestand)
Per school werkt het prima, de keuze "alle scholen" snap ik dat ie niet werkt, "alle scholen" wordt immers niet gevonden in cel "B4"
In cel "L7" staat de keuze mogelijkheid voor de scholen.

Code:
Sub Print_meerdere_test()
With Sheets("Brief")
    For i = .Range("L5").Value To .Range("L6").Value
        ActiveWorkbook.SlicerCaches("Slicer_kind_nr").VisibleSlicerItemsList = Array("[Tbl_indeling_kind].[ID].&[" & i & "]")
            If i >= .Range("L5").Value And i <= .Range("L6").Value And InStr(.Range("B4").Value, .Range("L7").Value) > 0 Then
                .Range("A1:F38").PrintPreview
            End If
    Next
End With
End Sub

Kan er iets tussen gezet worden dat wanneer L7 gelijk is aan "alle scholen" dat er dan niet naar schoolnaam gezocht wordt?


André
 
Waarom wil je het via een draaitabel laten lopen of had ik dat al gevraagd? Als de voorwaarden bekend zijn dan gaat het veel sneller als je de gegevens in een array zet. Plaats het echte bestand maar even. (gevoelige gegevens even fictief maken)
 
bij deze het complete bestand.
de eerste 4 tabbladen spreken denk ik wel voor zich

Tabblad "Planning Evenementen":
NR Ladder:
dit is de nummering die overeenkomt met een programmaboekje, de kinderen geven dit nummer door
ze mogen zich voor maximaal 8 evenementen opgeven.

Groep 1,2,3....Peuters
hier wordt door middel van een "x" aangegeven of dit evenement voor de desbetreffende groep is
deze gegevens worden gebruikt om op het tabblad "Opgave Kinderen" ter controle bij de invoer van de opgaves.
of het kind zich wel opgeven heeft voor het juiste evenement.

Tabblad "Opgave Kinderen":
op dit tabblad worden alle opgaves ingevoerd. Daarna kan er per evenement gepland gaan worden.
wanneer een kind ingedeeld wordt voor een evenement wordt de desbetreffende cel groen gemaakt.

tabbladen "Contole_gr_evenem" "Indeling kinderen" en "Drtbl_brief" worden verborgen Tabbladen.
 

Bijlagen

Laatst bewerkt:
Waarom wil je het via een draaitabel laten lopen of had ik dat al gevraagd? Als de voorwaarden bekend zijn dan gaat het veel sneller als je de gegevens in een array zet.

Had niet direct in de gaten wat je bedoelde, maar je hebt gelijk nu ik er over nadenk. ga het aanpassen.

het is trouwens nog wel de bedoeling dat de gegevens van deze ladder (voorjaar 2018) in een verzamelblad bewaard gaan worden.
Zodat bij de volgende ladders (najaar 2018, voorjaar 2019, enz....) gekeken kan worden welke kinderen al met een evenement meegedaan hebben. om te voorkomen dat steeds dezelfde kinderen ingedeeld worden als er meer opgaves zijn dan dat er ruimte is.

vroeger waren er 2 of 3 vrijwilligers een aantal dagen bezig alles te verwerken en te plannen, de vorige ladder werd gepland door 1 persoon binnen 3 uur mbv mijn vorige opzet in excel. Echter moest deze persoon wel met excel kunnen werken.... (knip, plak en filter)
Wil het nu zo maken dat iedereen er mee kan werken....het begin is er, hoop het gewenste resultaat te bereiken.


André
iov werkgroep de Brede School.
 
Ik dacht dat ik zo ff de code in vba kon aanpassen..... valt dat ff tegen.
wil dus graag een macro voor het printen van brieven voor elk kind.
in Cel I1 kan de keuze voor welk kind gemaakt worden.
in dit voorbeeld wijzigen alleen de groen gekleurde cellen.... (alles wat in rode tekst is zal uiteindelijk ook per kind veranderen)

De knop "Selectie afdrukken" zal dus de selectie die in N5, N6 en N7 wordt aangegeven moeten afdrukken.
De Knop "maak pdf bestanden" zal me wel lukken als mij de code voor "Selectie afdrukken" bekend is.




Bekijk bijlage Brieven.xlsb

André

PS.... als iemand nog een basishandleiding of cursus voor VBA codes heeft of weet....hoor het graag.... begin het leuk te vinden en wil graag meer weten.
 
Heb je al geprobeerd om de brief in WORD te maken en deze in te vullen met de gegevens uit EXCEL

Nope...Wil het wel graag in 1 bestand houden aangezien er vrijwilligers mee gaan werken.
Om ze dan ook nog met 2 programma's moeten gaan werken..... gaat niet goed komen.
 
alles opgelost

Iedereen bedankt, heb alles werkend gekregen.
veel geleerd mbv deze site :thumb::thumb::thumb:

op naar de volgende uitdaging.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan