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

Internationale adressen splitsen (Straat en nummer apart

Status
Niet open voor verdere reacties.

Yourid94

Gebruiker
Lid geworden
11 nov 2015
Berichten
19
Hallo,

Ik heb een hele lijst met onze partners die opgevoerd moeten worden in ons nieuwe systeem.
Om invoer zo efficient mogelijk te maken zou ik bij de adressen de straat en het nummer willen opsplitsen.
Het zijn adressen uit verschillende landen wat het extra lastig maakt, omdat de nummers op verschillende plaatsen kunnen staan.

Wie mij uit de brand kan helpen zou geweldig zijn.

Groet,
Youri
 

Bijlagen

sommige nummers zijn postcodes.
 
Het is inderdaad dat de data in sommige gevallen foutief kan zijn.
Het wordt opgezocht op internet en met veel verschillende landen en postcodes is dit soms lastig te onderscheiden.
Het is ook niet zo heel belangrijk. Het moet er gewoon in staan en mocht het nu zo zijn dat een van deze gegevens fout is, dan kan het nog worden aangepast.

Wat zijn nu echt de lastige? Ik snap dat wanneer het nummer in het midden staat, dit lastiger kan zijn of wanneer er uberhaupt wat minder consistentie is?
Het zou in ieder geval fijn zijn als diegene waarvan het nummer vooraan of achter aan staat is gesplitst. De overige 25% doe ik dan zelf wel en misschien kom ik op basis van jullie hulp zelf ook op ideeen.
 
Gebruik 'tekst naar kolommen'.

PS. Wat moet Avans met al deze adressen ?
 
Ik heb wat zitten knutselen. Ik heb de aanname gedaan dat alles voor het nummer de straat is, en dat alles wat een nummer bevat als nummer moet worden gezien.

Dus bv. "70-01 Blockue 9, oficina 118" staat in nummer.

Als je dit anders wilt kun je hier natuurlijk mee spelen. Ook als je wilt dat als voor het nummer leeg is dat je dan alles achter het nummer wilt is gemakkelijk in te bouwen.

Code:
Function posFirstNum(ByVal s As String) As Integer
Dim i, c, pos As Integer

For i = 1 To Len(s)
    For c = 48 To 57
        If Chr(c) = Mid(s, i, 1) Then
            pos = i
            c = 57
            i = Len(s)
        End If
    Next c
Next i
posFirstNum = pos
End Function

Function posLastNum(ByVal s As String) As Integer
Dim i, c, pos As Integer

For i = Len(s) To 1 Step -1
    For c = 48 To 57
        If Chr(c) = Mid(s, i, 1) Then
            pos = i
            c = 57
            i = 1
        End If
    Next c
Next i
posLastNum = pos
End Function

Sub extractNumber()
Dim sInput, s1, s2, s3 As String
Dim pos1, pos2 As Integer
Dim rij, rijMax As Long

    rijMax = Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row
    For rij = 9 To rijMax
        sInput = Cells(rij, 1).Value
        pos1 = posFirstNum(sInput)
        pos2 = posLastNum(sInput)
        If pos1 > 0 Then
            s1 = Left(sInput, pos1 - 1)
            s2 = Right(sInput, Len(sInput) - pos2)
            s3 = Mid(sInput, pos1, pos2 - pos1 + 1)
        Else
            s1 = sInput
            s2 = ""
            s3 = ""
        End If
        Cells(rij, 2).Value = s1
        Cells(rij, 3).Value = s3
    Next rij
End Sub

Succes!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan