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

Namen op hetzelfde adres samenvoegen adreslijst - complex -

Status
Niet open voor verdere reacties.

arjan de knalle

Gebruiker
Lid geworden
8 mrt 2007
Berichten
52
Geachte Helpmij lezers, ik heb gezocht onder adressen samenvoegen op hetzelfde adres maar ik kom niet echt verder.

Ik beheer een ledenlijst van de tennisvereniging en we willen oud en nieuwe leden aanschrijven voor een reünie, daarnaast ook nog een kaart die later wordt verzonden.
Veel van onze leden zijn ook ouders met kinderen die (soms) nog op hetzelfde adres wonen wat betekend dat wij 900 records hebben maar in feite 600 huizen waar de brieven/kaarten tzt bezorgd moeten worden.
Op de brief zou dan moeten komen staan:

De heer J.W. Zullenwijk
Mevrouw C.G.J.M. Zullenwijk - Baas
Herengracht 170A
1001AC Amsterdam

Ik wil in de brief ook de geboortedatum vermelden met hoelang de leden al lid zijn dus:

Geachte heer en mevrouw Zullenwijk, Zullenwijk - Baas,

U bent uitgenodigd voor onze reünie:

De heer J.W. Zullenwijk 16-8-1957 25 jaar lid
Mevrouw C.G.J.M. Zullenwijk - Baas 11-1-1969 25 jaar lid

Ik heb een fictieve lijst samengesteld in Excel maar zo ziet het bestand er wel uit.
Er zitten namelijk ook adressen bij met gewoon 1 lid op een adres.

Nu weet ik niet of ik dit in Excel dien te splitsen of dien ik dit in Word te doen?
Want de kaart gaat naar een drukker en daar hebben ze een Excel document nodig om gepersonaliseerd op lidmaatschap een logo in te voegen : goldmember of silvermember

Het is een complex dingetje, ik hoop dat iemand me er mee kan helpen.
Dank alvast
 

Bijlagen

  • tennisvereniging.xlsx
    9,2 KB · Weergaven: 37
Laat de macro eens lopen; printpreview veranderen in printout als het goed is bevonden.
 

Bijlagen

  • tennisvereniging.xlsb
    25,1 KB · Weergaven: 52
Dank,

Misschien is die redim arr helemaal niet nodig en zet je het in een string met crlf, maar ik heb daar op dit moment geen behoefte aan om dat te maken.
Stel je voor dat Arjan helemaal niet mee reageert?
 
Beste HSV, superbedankt, ik heb de macro gedraaid en hij voert uit zoals ik het wil. Van het weekend er verder mee aan de slag. Want ik wil de tekst nog even voorleggen aan de rest.
 
Ik had deze:

Code:
Sub M_snb()
  sn = Sheets("blad1").Cells(1).CurrentRegion

  With CreateObject("scripting.dictionary")
    For j = 2 To UBound(sn)
       c00 = Join(Array(sn(j, 1), Trim(sn(j, 6) & " " & sn(j, 7) & " " & sn(j, 8)), sn(j, 9) & "  " & sn(j, 10), "", "", "Geachte heer " & Trim(sn(j, 3)) & ",", "", "U bent uitgenodigd voor onze reunie", "", "", sn(j, 1) & " " & sn(j, 5) & " jaar lid"), vbLf)
       If .exists(sn(j, 9) & sn(j, 7)) Then
         st = Split(.Item(sn(j, 9) & sn(j, 7)), vbLf)
         st(0) = st(0) & vbLf & sn(j, 1)
         st(5) = Replace(st(5), "heer ", "heer en " & sn(j, 2) & " ") & " " & Trim(sn(j, 3)) & ","
         c00 = Join(st, vbLf) & vbLf & sn(j, 1) & " " & sn(j, 5) & " jaar lid"
      End If
      .Item(sn(j, 9) & sn(j, 7)) = c00
    Next
    Sheets("Blad2").Cells(1).Resize(, .Count) = .items
    Sheets("Blad2").Columns.ColumnWidth = 60
  End With
End Sub

NB. Het loont de moeite eerst alle overbodige spaties uit de gegevens te halen.

Als je de gegevens in 1 kolom wil hebben:
Code:
Sub M_snb()
    sn = Sheets("blad1").Cells(1).CurrentRegion
    
    With CreateObject("scripting.dictionary")
        For j = 2 To UBound(sn)
           c00 = Join(Array(sn(j, 1), Trim(sn(j, 6) & " " & sn(j, 7) & " " & sn(j, 8)), sn(j, 9) & "  " & sn(j, 10), "", "", "Geachte heer " & Trim(sn(j, 3)) & ",", "", "U bent uitgenodigd voor onze reunie", "", "", sn(j, 1) & " " & sn(j, 5) & " jaar lid"), vbLf)
           If .exists(sn(j, 9) & sn(j, 7)) Then
             st = Split(.Item(sn(j, 9) & sn(j, 7)), vbLf)
             st(0) = st(0) & vbLf & sn(j, 1)
             st(5) = Replace(st(5), "heer ", "heer en " & sn(j, 2) & " ") & " " & Trim(sn(j, 3)) & ","
             c00 = Join(st, vbLf) & vbLf & sn(j, 1) & " " & sn(j, 5) & " jaar lid"
          End If
          .Item(sn(j, 9) & sn(j, 7)) = c00
        Next
        sp = .items
    End With
    
    With Sheets("Blad2").Cells(1)
         .Resize(, UBound(sp)) = sp
         .Offset(, 1).Resize(, UBound(sp)).Copy
         .Offset(1).PasteSpecial , , , True
         .Offset(, 1).Resize(, UBound(sp)).ClearContents
          .EntireColumn.ColumnWidth = 60
    End With
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan