Beste Helpers,
Ik ben met de hulp van een aantal van jullie al een heel einde gekomen maar een aantal zaken lukken me helaas nog niet, ik zal hieronder een uiteenzetting geven van wat ik probeer te bewerkstelligen.
Ik kan uit een programma wat we op mijn werk gebruiken een lijst met bewoners genereren in HTML formaat.
Het lukt me om dit bestand dmv een macro te importeren in excel maar eigenlijk wil ik maar een aantal kolommen overnemen in Excel, zoals: ruimte/achternaam/voornaam/geb. datum en geslacht.
Daarna heb ik een macro welke uit de kolom met achternamen de verschillende achternamen splitst naar de cellen ernaast.
Tot zover oke maar na het uitvoeren van die 2 macro's houd ik een html bestand over en heb ik teveel stappen doorlopen om het voor mijn collega's ook nog behapbaar te kunnen maken.
Het mooiste zou zijn als we een vast Excel bestand zouden kunnen openen met daarin een of twee knoppen om te komen tot het eindresultaat zoals ik voor ogen heb.
Ik ben tot gisteren nog nooit eerder aan het werk geweest met macro's en begrijp dan ook nog lang niet alles, vooral bijvoorbeeld "hoe maak ik een Excel bestand waarin de macro's opgeslagen blijven want die lijken te verdwijnen bij mij?
Ik zal de code's bijvoegen zoals ik nu heb en een voorbeeld van wat het zou moeten worden.
De code om het HTML bestand te importeren.
En de code om de achternamen te splitsen.
En het Excel bestand zoals we nu gebruiken.
Bekijk bijlage Originele postlijst-test.xlsx
Ik hoop dat mijn uiteenzetting duidelijk genoeg is en dat iets dergelijks is te creëren en ik ben bij voorbaat dankbaar voor alle geboden hulp.
Ik ben met de hulp van een aantal van jullie al een heel einde gekomen maar een aantal zaken lukken me helaas nog niet, ik zal hieronder een uiteenzetting geven van wat ik probeer te bewerkstelligen.
Ik kan uit een programma wat we op mijn werk gebruiken een lijst met bewoners genereren in HTML formaat.
Het lukt me om dit bestand dmv een macro te importeren in excel maar eigenlijk wil ik maar een aantal kolommen overnemen in Excel, zoals: ruimte/achternaam/voornaam/geb. datum en geslacht.
Daarna heb ik een macro welke uit de kolom met achternamen de verschillende achternamen splitst naar de cellen ernaast.
Tot zover oke maar na het uitvoeren van die 2 macro's houd ik een html bestand over en heb ik teveel stappen doorlopen om het voor mijn collega's ook nog behapbaar te kunnen maken.
Het mooiste zou zijn als we een vast Excel bestand zouden kunnen openen met daarin een of twee knoppen om te komen tot het eindresultaat zoals ik voor ogen heb.
Ik ben tot gisteren nog nooit eerder aan het werk geweest met macro's en begrijp dan ook nog lang niet alles, vooral bijvoorbeeld "hoe maak ik een Excel bestand waarin de macro's opgeslagen blijven want die lijken te verdwijnen bij mij?
Ik zal de code's bijvoegen zoals ik nu heb en een voorbeeld van wat het zou moeten worden.
De code om het HTML bestand te importeren.
Code:
Dim wb As Excel.Workbook
Set wb = Workbooks.Open("G:\Desktop\Documenten Leon\Bewonerslijst Alkmaar RW.html")
En de code om de achternamen te splitsen.
Code:
Sub AchternamenSplitsen()
'
' AchternamenSplitsen Macro
'
' Sneltoets: CTRL+SHIFT+M
'
Dim X As Integer, Y As Integer, RijTeller As Long, Spatie(10) As Integer, c As Range
Dim Voorvoegsel As String, Achternaam As String, Naam As String, Voornaam As String
Dim cl As Range
Voorvoeg = MsgBox("Wilt u de voorvoegsels in een aparte kolom?", vbYesNo)
If Voorvoeg = vbNo Then
StopZoek = MsgBox("Wilt u de voorvoegsels (van der, v/d) naar de kolom van de achternamen meekopiëren?", vbYesNo)
End If
For Each c In Range("J1", Range("J" & Rows.Count).End(xlUp).Address)
If cl Is Nothing Then
Set cl = c
cl.Offset(, 1).Resize(, 2).EntireColumn.Insert
End If
Naam = Replace(Trim(c.Value), " ", " ")
Y = 0
Spatie(1) = 0
For X = 1 To Len(Naam) ' Zoeken naar eerste spatie
If Mid(Naam, X, 1) = " " Then
Y = Y + 1
Spatie(Y) = X
If StopZoek = vbYes Then Exit For ' Voorvoegsels bij Achternaam.
End If
Next
If Spatie(1) <> 0 Then ' Spatie gevonden
If Voorvoeg = vbNo Then
If StopZoek = vbYes Then Y = 1
Voornaam = Mid(Naam, 1, Spatie(Y) - 1)
c = Voornaam
Achternaam = Mid(Naam, Spatie(Y) + 1)
c.Offset(, 1) = Achternaam
Else ' Voorvoegsels apart naar kolom C
Voornaam = Mid(Naam, 1, Spatie(1) - 1)
c = Voornaam
Achternaam = Mid(Naam, Spatie(Y) + 1)
c.Offset(, 1) = Achternaam
If Y > 1 Then
Voorvoegsel = Mid(Naam, Spatie(1), Spatie(Y) - Spatie(1) + 1)
c.Offset(, 2) = Trim(Voorvoegsel)
End If
End If
Else ' Naam naar kolom K
c = Naam
End If
Next
End Sub
En het Excel bestand zoals we nu gebruiken.
Bekijk bijlage Originele postlijst-test.xlsx
Ik hoop dat mijn uiteenzetting duidelijk genoeg is en dat iets dergelijks is te creëren en ik ben bij voorbaat dankbaar voor alle geboden hulp.