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

achteraf kolommen maken/gegevens splitsen?

Status
Niet open voor verdere reacties.

westerweeltje

Gebruiker
Lid geworden
26 jul 2013
Berichten
6
Beste mensen,

ik heb twee excel bestanden waarvan ik de data van sheet 1 moet overzetten naar sheet 2.

In sheet 2 heb ik een aantal kolommen:
- naam
- voorletters
- straatnaam
- huisnummer
- toevoeging
- postcode
- telefoonnummer

In sheet 1 heb minder kolommen:
- naam (spatie) voorletters
- straatnaam + huisnummer + postcode
- telefoonnummer

Het gaat om een groot adressenbestand welke ik dus uit elkaar zou moeten trekken... of kolommen maken bij de spatie oid.
De gegevens van sheet 1 moeten gesplitst in sheet 2 komen te staan.

Wie heeft de gouden tip hoe ik dat op een snelle manier kan doen?

Alvast ontzettend bedankt!

gr. Jochem
 
beetje wanordig uitelegd
kun je een simpelere versie even?
PcE
 
Normaal ga je scheiden op een spatie, maar dat is niet simpel en zeker niet zonder voorbeeldje.
Het probleem is dat er zich tig mogelijkheden voor doen, bv straat_huisnummer_bus_postcode ipv straat_huisnummer_postcode
Of "DeBruyne Jochem" en "De Bruyne Jochem", etc, etc
 
een voorbeeldje

Bedankt voor de reactie en sorry voor mij onduidelijke omschrijving ;-)

ik heb even snel een voorbeeldje gemaakt met twee sheets waarvan de info uit sheet 2 in sheet moet komen.
Gaat om bijna drieduizend leden....

Alvast bedankt!

gr. Jochem
 

Bijlagen

Gewoon lekker ouderwets met de hand oplossen. Wel een paar functionaliteiten van excel gebruiken. Denk hierbij aan tekst naar kolommen, sorteren en filteren. Met een uurtje ben je dan klaar.
 

Bijlagen

Laatst bewerkt:
Je omschrijving klopt naar mijn mening niet.
Je moet van sheet 2 naar sheet 1 data over zetten.
 
Met een macrootje met deze indeling.
Ook als alle gegevens niet compleet zijn moet je het maar eens testen.

Code:
Sub hsv()
Dim i As Long, j As Long, sq, x As Long, y As Long, n As Long, arr
With Sheets(2)
ReDim arr(.UsedRange.Cells.Count, 7)
For i = 3 To .Range("B2").End(xlDown).Row
For j = 2 To .Range("B2").End(xlToRight).Column
   sq = Split(.Cells(i, j))
    For x = 0 To UBound(sq)
    If UBound(sq) = 0 And j = 2 Then
         arr(n, x + y) = sq(x)
           y = y + 1
         arr(n, x + y) = " "
   ElseIf UBound(sq) = 0 And j = 3 Then
            arr(n, x + y) = sq(x)
                y = y + 1
            arr(n, x + y) = " "
                y = y + 1
            arr(n, x + y) = " "
    ElseIf UBound(sq) = 1 And j = 3 Then
          arr(n, x + y) = sq(x)
             If x > 0 Then
               y = y + 1
            arr(n, x + y) = " "
          End If
    Else
          arr(n, x + y) = sq(x)
     End If
    Next x
        y = y + x
    Next j
         n = n + 1: y = 0
     Next i
  End With
 With Sheets(1).Range("B2")
  On Error Resume Next
    .CurrentRegion.Offset(1).SpecialCells(2).ClearContents
    .Offset(1).Resize(n, 7) = arr
 End With
End Sub
 

Bijlagen

Met een macrootje met deze indeling.
Ook als alle gegevens niet compleet zijn moet je het maar eens testen.

Dit is inderdaad helemaal wat ik bedoel! Geweldig!!!

Bedankt! Ik ga het nu met een kopie van het grote adresbestand proberen.

TOP!!

gr. Jochem
 
Ik kan u nu al zeggen dat het op het grote adressenbestand niet gaat werken. En we zijn ook al een paar uurtjes verder dan post #5
 
Nog niet helemaal...

Met een macrootje met deze indeling.
Ook als alle gegevens niet compleet zijn moet je het maar eens testen.

Dit werkt inderdaad mooi op het voorbeeldje, ik krijg het nog niet werkend op het origineel...

In de bijlage een voorbeeld van hoe het was en hoe het moet worden.
Sheet2 is "oud"
Sheet 1 is hoe het moet worden.

Kan dit met die macro gedaan worden?

gr. JochemBekijk bijlage voorbeeld2.xlsxBekijk bijlage voorbeeld2.xlsx
 
Ik kan u nu al zeggen dat het op het grote adressenbestand niet gaat werken. En we zijn ook al een paar uurtjes verder dan post #5

Jammer van zo'n reactie.
Voegt niets aan dit onderwerp toe.

@westerweeltje
Helaas ziet dit er weer anders uit dan je vorige post, nu heb je de postcode in een ander kolom en weer gescheiden door een spatie.
Dit kost tijd om dit weer te onderzoeken, en de zin ontbreekt dan al gauw.
 
Beste HSV, ik ben je al enorm dankbaar voor je hulp. Ik had verwacht dat ik het met een simpel voorbeeldje gewoon voor elkaar zou kunnen krijgen.
Het is blijkbaar wat ingewikkelder dan ik had verwacht.

Ik hoop dat je me wilt helpen....

alvast enorm bedankt!

gr. Jochem
 
Laatst bewerkt door een moderator:
Dit is wat ik er van kan maken.
Je moet de kolommen in 'Sheets("Sheet1")' maar aanpassen aan de weggeschreven gegevens.

Anders wordt het zoals @cow18 schreef (het probleem is dat er zich tig mogelijkheden voor doen).
Code:
Sub hsv()
Dim i As Long, j As Long, sq, x As Long, y As Long, n As Long, arr
With Sheets(2)
ReDim arr(.UsedRange.Cells.Count, 9)
For i = 1 To .Cells(Rows.Count, 2).End(xlUp).Row
For j = 2 To .Range("B1").End(xlToRight).Column
   sq = Split(Trim(.Cells(i, j)))
    For x = 0 To UBound(sq)
    If UBound(sq) = 0 And j = 2 Then
         arr(n, x + y) = sq(x)
           y = y + 1
         arr(n, x + y) = " "
   ElseIf UBound(sq) = 0 And j = 3 Then
            arr(n, x + y) = sq(x)
                y = y + 1
            arr(n, x + y) = " "
                y = y + 1
            arr(n, x + y) = " "
    ElseIf UBound(sq) = 1 And j = 3 Then
          arr(n, x + y) = sq(x)
             If x > 0 Then
               y = y + 1
            arr(n, x + y) = " "
          End If
    Else
          arr(n, x + y) = sq(x)
     End If
    Next x
        y = y + x
    Next j
         n = n + 1: y = 0
     Next i
  End With
 With Sheets(1).Range("A1")
  On Error Resume Next
    .CurrentRegion.Offset(1).SpecialCells(2).ClearContents
    .Offset(1).Resize(n, 9) = arr
 End With
End Sub
 
Jammer van zo'n reactie.
Voegt niets aan dit onderwerp toe.
@HSV dit was niet als kritiek op uw code bedoeld. Maar uit de praktijk blijkt dat het, zonder het bestand te kennen, nagenoeg onmogelijk is om het middels een stukje code te splitsen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan