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

Celinhoud splitsen, aantal regels extra aanmaken

Status
Niet open voor verdere reacties.

Gert Bouwmeeste

Verenigingslid
Lid geworden
28 nov 2007
Berichten
827
Goedemorgen :cool:

Ik krijg een download binnen van een aantal velden uit een ledenadministratie (Sportlink). Eén lid kan aan één of meerdere sportlessen meedoen. Als ze >1 sportlessen volgen dan worden alle sportlessen in één cel gezet, gescheiden door een komma. Zie voorbeeldbestand, de oranje gemarkeerde leden.

Om de gegevens verder te kunnen bewerken heb ik een extra regel nodig als een lid 2 sportlessen volgt. Of 2 extra regels als ze er 3 volgen enz. Zie de groen gemarkeerde leden in het voorbeeldbestand.

Vorig jaar had ik hetzelfde probleem, toen kwam de export uit een andere ledenadministratie (Davilex) . In december 2019 ben ik door VenA zeer geholpen met een macro, zie dit gesloten topic.
Dit was de code van vorig jaar.
Code:
Sub SplitsCellen()
  Dim j As Long, jj As Long, jjj As Long, t As Long, ar, ar1, x1, x2, x3, x4
  ar = Sheets("Helpmij").Cells(1).CurrentRegion
  ReDim ar1(39, 0)
  For j = 2 To UBound(ar)
    x1 = Split(ar(j, 33), vbLf)
    x2 = Split(ar(j, 34), vbLf)
    x3 = Split(ar(j, 35), vbLf)
    x4 = Split(ar(j, 36), vbLf)
    For jj = 0 To UBound(x1)
      For jjj = 1 To 30
        ar1(jjj - 1, t) = ar(j, jjj)
      Next jjj
      ar1(30, t) = Format(ar(j, 31), "mm-dd-yyyy")
      ar1(31, t) = Format(ar(j, 32), "mm-dd-yyyy")
      ar1(32, t) = x1(jj)
      ar1(33, t) = x2(jj)
      ar1(34, t) = CDbl(x3(jj))
      ar1(35, t) = CDbl(x4(jj))
      ar1(36, t) = ar(j, 37)
      ar1(37, t) = ar(j, 38)
      ar1(38, t) = Format(ar(j, 39), "mm-dd-yyyy")
      ar1(39, t) = Format(ar(j, 40), "mm-dd-yyyy")
      t = t + 1
      ReDim Preserve ar1(39, t)
    Next jj
  Next j
  Sheets("Sheet2").Cells(1).Resize(t, 40) = Application.Transpose(ar1)
End Sub

Het in te lezen bestand is gewijzigd. Aan dat bestand kan ik niet veel veranderen helaas.

Ik heb geprobeerd bovenstaande macro aan te passen maar ik kom er gewoon niet uit. Kan iemand mij helpen om de macro aan te passen naar de nieuwe situatie?

Veel dank alvast!
 

Bijlagen

Dank je wel. Het resultaat is precies zoals ik dat graag zou willen hebben.

Maar na de keuze "Gegevens -> van Tabel", wat moet ik dan doen/instellen? Als ik "kolom splitsen" gebruik krijg ik hetzelfde als met "Gegevens -> Tekst naar Kolommen"
Heb je wat meer tips?
 
De stappen zijn:

- De te splitsen kolom naar rechts slepen zodat het de laatste wordt
- Die kolom splitsen op de komma
- De eerste 7 kolommen selecteren (klik de eerste, shift+klik de laatste), dus de kolommen exclusief de gesplitste
- Klik op de tab Transformeren op het pijltje naast de knop "Draaitabel opheffen voor kolommen" en kies de optie "Draaitabel voor andere kolommen opheffen"
- Verwijder de een-na-laatste kolom
- Rechts-klik op de kop van de nieuwe laatste kolom en kies transformeren, Omloopspaties wissen.
- KLaar!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan