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

adres opsplitsen

  • Onderwerp starter Onderwerp starter webm
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.
Is je bladnaam - proefversie met VBA ?

Dit moet de naam van de tab zijn.
 
... is waarschijnlijk omdat er geen werkblad bestaat met de naam "proefversie met VBA".
Jouw vraag is prima op te lossen met formules, zonder VBA. Kijk nog eens naar post #11.
 
yes is me gelukt foutmelding 9 is opgelost nu krijg ik foutmelding bij:
Part = Left(cl, i - 2) 'Hier wordt het gesplits
 
Part = Left(cl, i - 2) 'Hier wordt het gesplits dit betekent waarschijnlijk de kolom waarin het opgesplitst wordt toch?
 
Je moet als beginneling zeker blijven kiezen voor de moeilijkste weg dan zal je er wel komen.
 
ik geef niet graag op! en ben toe om met VBA's te kunnen werken, door ik nu al een paar het geprobeerd heb begin ik bijna te snappen wat in de codes staan. Ik moet gewoon goed lezen wat er staat.
 
Loop de code eens met F8 door en als je dan bij Part = komt zet je de cursor erop en kun je zien wat de inhoud is.
Als het goed is moet dat de straatnaam zijn.

Ik moet nu even een boodschap doen, ben dus wel een half uur weg.
 
foutsporing 5= ongeldige procedure of ongeldig argument

als ik met de muis erop sta zie ik straatnaam naar voren komen "Cyclaamstraat,"

yes nog goed gekeken blijkt dat de macro juist gestopt is bij een cel waar geen straat ingevuld staat :) begin het nog beter te snappen.
hoe kan ik dit oplossen?

oke prima.

ik pauzeer even. ik zie inmiddels dat ik de foutmelding vooral krijg bij lege cellen.
kan ik het oplossen door de lege cellen te voorzien van een "x adres"?

Verder vroeg ik me mij af als je lege cel voorziet van een "x adres"? hoe kan ik de macro weer opnieuw laten uitvoeren?

alvast super bedankt voor de goede uitleg hoor.
 
Laatst bewerkt:
De cellen moeten natuurlijk wel gevuld en aaneen gesloten zijn.
Ik neem aan dat je een copy van de file heb.

Zet daar desnoods een fake adres in, kun je naderhand weg halen.
 
Het is volgens mij niet zoals het hoort maar dit werkt ook bij lege cellen.

Code:
Sub Splitsen()
  With Sheets("Blad1") 'Zet je eigen Bladnaam tussen de " "
    regel = [S1048576].End(xlUp).Row 'Laatste regel in de kolom

    For Each cl In Range("S2:S" & regel)
      If cl.Value = "" Then GoTo volgende
        A = cl.Value 'Inhoud van de cel
      For i = 1 To Len(cl)
        If IsNumeric(Mid(cl, i, 1)) Then Exit For
      Next
        Part = Left(cl, i - 2) 'Hier wordt het gesplits
        cl.Offset(0, 1).Value = Right(A, Len(A) - Len(Part))
        cl.Value = Part
volgende:
    Next
  End With
End Sub
 
Laatst bewerkt:
stapje bij stapje kom ik er.
ik heb jou vorige vba aangehouden. je laatste genoemde voor de 'lege cellen" werkt niet echt.
ik heb gewoon de lege cellen voorzien van "fake adres". Echter krijg zo en dan een foutmelding, maar kan niet herleiden waar deze fout precies zit. Hoe kom ik er achter? als ik met muis erop klik staat er part="Cyclaamstraat"
daar is de macro ook gestopt uiteindelijk zie ik. hoe kan ik nou ervoor zorgen dat de macro weer verder gaat?
 
Ik kan het ook zo niet zeggen.
Had de laatste code met als de cel leeg is, dan de volgende cel nemen, hier getest en werkte goed.

Zo als je schrijft heeft hij het wel gesplitst en waarom het dan niet verder gaat, is mij een raadsel.

Anders moet je nog een voorbeeldje hier plaatsen met de cellen die problemen geven.
 
Laatst bewerkt:
Waar ik ook tegen aanloop, als ik een foutmelding krijg, en ik corrigeer en vervolgens de macro weer opnieuw wil laten uitdraaien, dan begint de macro weer vanaf het begin, waardoor alle adressen 2 letters korten worden.
hoe kan ik ervoor zorgen, dat als er geen getal (numeriek) gevonden worden, de macro de cellen overslaat?
 
Kijk in dit bestandje of het nu goed werkt.
Zowel met een lege regel als met alleen een straatnaam.

Ik denk dat als je gelijk het goede voorbeeld had gegeven, het allang klaar was.
Misschien zelfs met het idee van Cobbe.
 

Bijlagen

Laatst bewerkt:
Zelf zou ik als het met VBA moet voor de UDF van Cobbe gaan.

Van de sub kan je de code nog een beetje inkorten tot zoiets. (Mits er gegevens in kolom S staan.)

Code:
Sub VenA()
For Each cl In Sheets("Blad1").Columns(19).SpecialCells(2)
    s = cl.Value
    For j = 1 To Len(cl)
        If IsNumeric(Mid(cl, j, 1)) Then Exit For
    Next j
    Cells(cl.Row, 19) = Trim(Left(s, j - 1))
    Cells(cl.Row, 20) = Trim(Mid(s, j))
Next cl
End Sub
 
Of een iets langere code met meer snelheid.
Code:
Sub hsv()
Dim Regex As Object, i As Long, sn As String, sq, sv
Set Regex = CreateObject("VBscript.Regexp")
 With Sheets("Blad1")
  sq = .Columns(1).SpecialCells(2)
    ReDim arr(1 To UBound(sq), 1)
        With Regex
          For i = 1 To UBound(sq)
                    .Pattern = "(?=[0-9]{1,})"
                     sn = .Replace(sq(i, 1), ";")
                     sv = Split(Trim(sn), ";")
                        arr(i, 0) = sv(0)
                      If UBound(sv) > 0 Then arr(i, 1) = sv(1)
                Next i
          End With
      .Range("d1").Resize(UBound(sq), 2) = arr
    End With
End Sub
 
Laatst bewerkt:
het is me helemaal gelukt, vooral met de vba code:

Sub VenA()
For Each cl In Sheets("Blad1").Columns(19).SpecialCells(2)
s = cl.Value
For j = 1 To Len(cl)
If IsNumeric(Mid(cl, j, 1)) Then Exit For
Next j
Cells(cl.Row, 19) = Trim(Left(s, j - 1))
Cells(cl.Row, 20) = Trim(Mid(s, j))
Next cl
End Sub
 
Tegen VenA en HSV kan ik niet tegen op.

Rest je nog alleen om de vraag als opgelost te zetten. dank u.
 
aller laatste vraag. als ik deze vba code wil gebruiken voor een ander kolom, hoe moet ik dit eigenlijk aanpassen? Zelf al geprobeerd door kolom s in deze code te vervangen met letter m. dus overal waar s staat heb ik M neergezet. doe ik dat goed zo? Ik krijg in ieder geval foutmelding.



Sub VenA()
For Each cl In Sheets("20150701 - Herstel Verzekerd").Columns(19).SpecialCells(2)
s = cl.Value
For j = 1 To Len(cl)
If IsNumeric(Mid(cl, j, 1)) Then Exit For
Next j
Cells(cl.Row, 19) = Trim(Left(s, j - 1))
Cells(cl.Row, 20) = Trim(Mid(s, j))
Next cl
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan