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

brieven genereren op basis van een lijst

Status
Niet open voor verdere reacties.

rolf1980

Gebruiker
Lid geworden
20 jan 2017
Berichten
74
Beste Excel deskundige,

Ik heb een lijst met openstaande posten en klantgegevens (tabblad openstaande posten) en een sjabloon voor een rekeningoverzicht (RO template). Hoe kan ik de lijst van openstaande posten automatisch per klant een rekeningoverzicht laten maken in een nieuw tabblad zijnde het tabblad Output?

Het aantal openstaande facturen is variabel en kan meerder pagina's groot zijn. Het template is zo gemaakt dat het past op ons briefpapier en het adres in het venster van de envelop. Er zou een sortering dienen te komen op ouderdom, oftewel de oudste factuur boven aan.
 

Bijlagen

Met een draaitabel kom je een heel eind...

Bedankt daarmee zit ik al een heel eind in de goede richting. Hoe kan ik van deze layout naar een brieflayout en kan ik van hieruit ook voor alle debiteuren ineens een brieflayout genereren. Ben er niet zo in thuis vandaar mijn vraag hier ;).
 
Met wat code is het wel automatiseren. Maar ik heb niet echt een idee wat je hier nu mee wil. Waarom alles naar de tab 'Output'? Waarom gebruik je lege kolommen? Hoe moet het resultaat eruitzien in de tab 'Output'? Je hebt nu 18 regels gereserveerd voor de detailregels. Hoe moet het eruitzien als er meer dan 18 regels zijn?

Als basis voor de code zou je zoiets kunnen gebruiken:

Code:
Sub VenA()
  With Sheets("Openstaande facturen").Cells(1).CurrentRegion.Resize(, 14)
    .Sort .Cells(1, 1), , .Cells(1, 7), , , , , xlYes
    ar = .Value
  End With
  
  Set d = CreateObject("Scripting.Dictionary")
    For j = 2 To UBound(ar)
      c00 = ar(j, 2) & "|" & ar(j, 12) & "|" & ar(j, 13) & "|" & ar(j, 1) & "|" & ar(j, 11)
      d(c00) = d(c00) & "|" & j
      ar(j, 7) = CDbl(ar(j, 7))
      ar(j, 14) = CDbl(Date - ar(j, 7))
    Next j
    
    With Sheets("RO template")
    .Cells(20, 2) = Date
    For Each it In d
      .Range("A35:G52").ClearContents
      a = Split(it, "|")
      b = Split(Mid(d.Item(it), 2), "|")
      .Cells(9, 1).Resize(4) = Application.Transpose(Array(a(0), "T.a.v. Crediteuren administratie", a(1), a(2)))
      .Cells(26, 3).Resize(2) = Application.Transpose(Array(a(3), a(4)))
      For j = 0 To UBound(b)
        .Cells(35, 1).Offset(j).Resize(, 4) = Application.Index(ar, b(j), Array(3, 7, 6, 10))
      Next j
      .PrintPreview
    Next it
  End With
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan