07. februar 2018 - 15:14Der er
12 kommentarer og 1 løsning
Brevflet - med tabel i variable størrelse
Jeg har to tabeller: Tabel 1: Navn, ID og email Her er én række er lig én person, som skal modtage en mail
Tabel 2: ID, Tillæg, Kroner Her fremgår ID (på personen) for hvert tillæg og kroner.
Udfordring: Hver flettet mail skal indeholde en liste over de 10 tillæg, som personen skal have. Da der er 200 tillægsstyper i alt, så jeg skal have "skjult" alle de tillæg der ikke er relevante for personen...
Jeg misforstod dig måske. Hvis de 10 tillæg var et eksempel og antallet af tillæg pr. person varierer og du - naturligt nok - ikke ønsker en hel masse blanke felter i resultatet, kan mine forslag ikke bruges.
Prøv eventuelt at kigge på denne mulighed. Opret linjer til alle 200 mulige tillæg i hoveddokumentet og så se på dette (søg efter/gå ned til "Mailmerge Empty Space Suppression"):
Tak for linket. Der er nogle interessante muligheder.
Umiddelbart kan jeg bruge "Mailmerge Empty Space Suppression" såfremt jeg rykker de 200 tillæg ind i arket der skal brevflette og sætter 200 kolonner på... det virker blot lidt omstændigt ;o)
Det kunne være fedt hvis man kunne "merge" en pivottabel baseret på et id... :oD
Hej JeppeH Jeg har et bud på en løsning. Den involverer Excel til at holde dine to tabeller og en makro til at generere en oversigt over tillæg for hver enkelt medarbejder. Oversigten placeres i en ny kolonne i tabellen over medarbejdere. Samtlige tillæg for en given medarbejder bliver skrevet i en og samme celle. Når oversigten er blevet oprettet, bruger du Exceltabellen over medarbejderne til at flette mails fra. Oversigten over den enkelte medarbejders tillæg kan nu indsættes som et almindeligt fletfelt.
Din løsning giver et samlet tillæg per medarbejder. Her kunne jeg også bruge en SUM.HVIS formel (på ID og kroner). Det løser desværre ikke problemet. Jeg skal nemlig have listen over de eksakte tillæg for hver enkelt medarbejder.
Fx har medarbejder id 101 følgende tillæg: Tillæg Kroner Type1 10 Type12 81 Type21 10
mens medarbejder id 104 har følgende tillæg: Tillæg Kroner Type22 90 Type4 77 Type8 91 Type21 48 Type25 58 Type10 10 Type12 68 Type10 63
Altså ligger udfordringen i at antallet af tillæg er forskellig og kun dem med værdier skal medtages i brevfletningen...
Ifølge dit oprindelige spørgsmål (#1) gik udfordringen på at få en liste over tillæggene for hver enkelt medarbejder med i en brevfletning. Det burde mit forslag give dig. Nu vil du også have satserne med, det kan nok fixes. Jeg forstår ikke din bemærkning om, at mit forslag giver summen af satserne for en given medarbejder, makroen burde kun indsamle tillæggenes navne. For afklaringens skyld: - Skal du kunne regne videre på tallene, eller medtages de bare for at modtageren kan se størrelsen af de enkelte fradrag? - Vil du have summen af tillæggene for hver medarbejder med i din brevfletning? - Har du prøvet at simulere en brevfletning med mit XL-ark som input, efter at du har kørt makroen?
Der var jeg vist lidt for hurtigt. Jeg svarede baseret på din tekst og ikke på test af selve makroen. Interessant løsning du har lavet, hvor alle teksterne på tillæggene samles i én celle. *thumbs up*
Men ja, jeg har brug for at bruge en oversigte over alle tillæg, inklusiv beløb på det enkelte tillæg. Kan du klare det? Også så det ser nogenlunde pænt ud i output? (Så beløb står under hinanden?)
Hej Jeppe Erstat makroen med følgende kode Sub FindTillaeg() Dim TillaegList As String, SatsList As String Dim cl As Range, cl2 As Range
For Each cl In Worksheets("Medarbejdere").Range("MedID") TillaegList = "" SatsList = "" For Each cl2 In Worksheets("Tillæg").Range("IDtillaeg") If cl = cl2 Then TillaegList = TillaegList & cl2.Offset(0, 1) & vbNewLine SatsList = SatsList & cl2.Offset(0, 2) & " kr" & vbNewLine End If Next If Len(TillaegList) > 0 Then TillaegList = Left(TillaegList, Len(TillaegList) - 2) SatsList = Left(SatsList, Len(SatsList) - 2) End If cl.Offset(0, 2).Value = TillaegList cl.Offset(0, 3).Value = SatsList Next End Sub
Så skrives satserne i kolonnen ved siden navnene på tillæggene. Hvis du ikke vil have skrevet "kr", så fjern " kr" & fra koden i linjen SatsList = SatsList & cl2.Offset(0, 2) & " kr" & vbNewLine. Mht. formateringen, så tror jeg du skal fiddle lidt i dit Word masterdokument, hvor du indsætter fletfelterne. Måske noget med tabulatorer, så beløbene bliver højrestillede... Eller indsætte en tabel (1 række, 2 kolonner), hvor du indsætter fletfelterne for tillægsnavne og satser. Her kan du også lege med justeringen. /Jakob
Hej Jakob Jeg sidder netop og forsøger at bruge arket til at udsende en oversigt over tillæg. Jeg har brug for at få øre (altså to decimaler) med i listen over satser. Fx. skal 2000 vises som 2000,00. Jeg antager at korrektionen skal være i linien her: SatsList = SatsList & cl2.Offset(0, 2) & vbNewLine og prøvede da også uden held at bruge afrund() formlen.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.