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

Conversie probleem

Status
Niet open voor verdere reacties.

kobusknots

Gebruiker
Lid geworden
2 jan 2012
Berichten
11
Hallo,

Wie kan mij helpen met het volgende:
Ik moet een conversie van data uitvoeren waarbij de indeling van het doelbestand afwijkt van de indeling van het bronbestand.
Het verschil zit in de wijze waarop adresssen worden opgeslagen. Een voorbeeldbestand is bijgevoegd
De structuur van postcodes en adressen in het bronbestand is als in het tabblad 'bron'
In dit bronbestand wordt gewerkt met met huisnummerkolommen 'NUMMERS VANAF' en 'NUMMERS T/M'
In het doelbestand moet ieder adres (met juiste postcode) op een aparte regel komen. Zie tabblad 'doel'.

Het bronbestand heeft bijna 3400 regels dus ik zou graag een handige oplossing vinden om de conversie naar een nieuwe indeling uit te voeren.
Is er iemand die hiervoor een oplossing kan bedenken? Alvast bedankt voor jullie input!

Groeten,
Marten
 

Bijlagen

  • conversie.xlsx
    10,6 KB · Weergaven: 23
Zoiets? Ik heb in werkblad 'Doel' de cellen blauw gemarkeerd waarvan de formules naar beneden moeten worden gekopieerd.
Zodra je nullen gaat zien in kolommen B t/m G, dan ben je voorbij het einde van de bron.
In het voorbeeld vanaf regel 50. Die kun je dus weer leeg maken.
Na conversie kun je het resultaat naar zichzelf kopiëren met alleen waarden en dan naar hartelust sorteren zoals je het zelf wilt.

Let op: ik heb telkens 2 bij het nummer opgeteld. Je gaat natuurlijk "nat" met eventuele nummertoevoegingen en dergelijke.

Edit: o ja, ik heb hulpkolom A toegevoegd.
 

Bijlagen

  • conversie MB.xlsx
    15,2 KB · Weergaven: 20
Laatst bewerkt:
Of met een een beetje code

Code:
Sub VenA()
ar = Sheets("Bron").Cells(1).CurrentRegion
For j = 2 To UBound(ar)
    t = t + (ar(j, 6) - ar(j, 5)) / 2 + 1
Next j
ReDim ar1(t - 1, 5)
t = 0
For j = 2 To UBound(ar)
    For jj = ar(j, 5) To ar(j, 6) Step 2
        ar1(t, 0) = ar(j, 1)
        ar1(t, 1) = ar(j, 3)
        ar1(t, 2) = ar(j, 4)
        ar1(t, 3) = jj
        ar1(t, 4) = jj
        ar1(t, 5) = ar(j, 7)
        t = t + 1
    Next jj
Next j
Sheets("Doel").Cells(2, 10).Resize(UBound(ar1) + 1, UBound(ar1, 2) + 1) = ar1
End Sub
 
Opgelost

Geweldig, het is gelukt!
Dank voor de snelle reacties. Scheelt enorm veel werk.

Groeten,
Marten
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan