Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[VBA]Postcode spatie verwijderen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit met een probleem hier heb eeen school pakket voor me neus die kan een export maken van bepaalde gegevens naar Excel.
Dit moet worden ingelezen in Exact, deze accepteerd echter niet dat bij de postcode er een spatie tussen zit Exact gaat er namelijk van uit dat er maar 6 karakters zijn tijdens het inlezen.
Nu zit ik te denken om via een soort script te laten zoeken op 4 cijfers en dan de spactie automatisch te laten deleten.
Dit zodat de postcode ipv dit:
2983 GD
dit word
2983GD
De onder kan exact namelijk wel inlezen.

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Hangt er vanaf welke taal Excel je gebruikt, maar ik zou eens naar de functies Left() en Right() kijken.

Als bonusvraag mag je raden hoe deze functies in het Nederlands heten.

Welkom op GoT trouwens :w :)

[ Voor 6% gewijzigd door CodeCaster op 25-06-2009 09:29 ]

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


  • wizzkizz
  • Registratie: April 2003
  • Laatst online: 04-11 04:01

wizzkizz

smile...tomorrow will be worse

Lijkt me een prima gevalletje voor een reguliere expressie in VBA. De expressie is heel eenvoudig, dus dat kan dan bijna niet misgaan.

Make it idiot proof and someone will make a better idiot.
Real programmers don't document. If it was hard to write, it should be hard to understand.


  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

wizzkizz schreef op donderdag 25 juni 2009 @ 09:33:
Lijkt me een prima gevalletje voor een reguliere expressie in VBA. De expressie is heel eenvoudig, dus dat kan dan bijna niet misgaan.
Over kanonnen en muggen gesproken...

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


  • PaulZ
  • Registratie: Augustus 2004
  • Laatst online: 21-05-2024
Of doe het simpel met de functie replace (evt. gecombineerd met trim...)

[ Voor 5% gewijzigd door PaulZ op 25-06-2009 09:38 ]

Vlinders moet je volgen, niet vangen...


  • wizzkizz
  • Registratie: April 2003
  • Laatst online: 04-11 04:01

wizzkizz

smile...tomorrow will be worse

CodeCaster schreef op donderdag 25 juni 2009 @ 09:35:
[...]

Over kanonnen en muggen gesproken...
Verwijderd schreef op donderdag 25 juni 2009 @ 09:25:
[...]Nu zit ik te denken om via een soort script te laten zoeken op 4 cijfers en dan de spactie automatisch te laten deleten.[...]
Waarom? Wat hij wil is uitdrukkingen zoeken in tekst, daar is Regexp bij uitstek geschikt voor. Je hebt hier niet meer dan 10 regels code voor nodig en het is heel gemakkelijk te implementeren.

Jouw left en right methodes zullen vast ook wel werken, maar alleen als de postcode in een afzonderlijke cel staat, er niet toevallig een spatie voor/achter staat enzo. En mocht het geval zijn, dan kun je nog gemakkelijker de opmaak van de cel veranderen zodat automatisch die spatie eruit gehaald wordt.

Make it idiot proof and someone will make a better idiot.
Real programmers don't document. If it was hard to write, it should be hard to understand.


  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Ik mag toch hópen dat de postcode in een aparte cel staat. Voeg een nieuwe kolom toe en laat daar met één of twee commando's (de replace die PaulZ oppert is nog beter) de opgeschoonde postcode in schrijven: klaar.

Reguliere expressies is mooi spul, maar voor het vervangen van één spatie in een tekst een beetje overkill. Tien regels code zijn er in dit geval negen te veel.

[ Voor 47% gewijzigd door CodeCaster op 25-06-2009 09:49 ]

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


  • Moirraine
  • Registratie: Mei 2008
  • Laatst online: 13-02-2024
Hoi Arnold-JR,

Ik zelf programmeer vrij veel in Access. Hoe je exact in Excel door een worksheet loopt weet ik niet, maar hieronder een stukje VBA om een spatie uit een string te halen.

Function SpatieUitPostcode(strPostcode as String)As string

On Error Goto Fout

'Replace werkt als volgt: Het eerste deel bevat de string waar je iets uit moet vervangen,
'het tweede deel zoekt de tekst welke hij moet vervangen, het derde deel is het deel wat in plaats
'van de gezochte tekst wordt geplaatst. Als je deze functie start geef je het argument strPostcode mee,
'Bijvoorbeeld "1234 aa". Replace gaat hier op zoek naar " " (een spatie) en vervangt dit door "" (geen spatie)

strPostcode = Replace(strPostcode, " ","")
SpatieUitPostcode = strPostcode

Exit Function

Fout:

MsgBox Err.Number & " - " & Err.Description, VBOkOnly + VBCritical, "fout"

End Function

Je zal wel links en rechts wat aanpassingen moeten doen, maar in essentie is dit correct.

Ik hoop dat dit je verder helpt!

  • wizzkizz
  • Registratie: April 2003
  • Laatst online: 04-11 04:01

wizzkizz

smile...tomorrow will be worse

CodeCaster schreef op donderdag 25 juni 2009 @ 09:45:
Ik mag toch hópen dat de postcode in een aparte cel staat. Voeg een nieuwe kolom toe en laat daar met één of twee commando's (de replace die PaulZ oppert is nog beter) de opgeschoonde postcode in schrijven: klaar.

Reguliere expressies is mooi spul, maar voor het vervangen van één spatie in een tekst een beetje overkill. Tien regels code zijn er negen te veel.
Na, we hebben verder geen informatie over hoe dat is opgeslagen, dus dan opper ik de meest generieke methode. Als het wel in een aparte cel is opgeslagen en je weet welke cellen dat zijn, zou ik idd een replace doen en alle spaties eruit halen. Maar omdat hij wil zoeken op 4 cijfers, neem ik aan dat het niet in een speciale kolom oid staat en dat hij het dus voor het hele werkblad wil zoeken/vervangen. En zelfs dan zou ik voor de regexp optie gaan, vanwege de betrouwbaarheid.

btw, heeft de zoek/vervang optie in Excel niet een regexp mogelijkheid? Dan gewoon expressie opgeven, alles vervangen en klaar. Hoef je helemaal niets te scripten.

Make it idiot proof and someone will make a better idiot.
Real programmers don't document. If it was hard to write, it should be hard to understand.


  • Amafi
  • Registratie: Maart 2005
  • Laatst online: 17-08 22:48

Amafi

Amafi

Is het een eenmalige export?
Anders gewoon kolom selecteren
Ctrl H replace spatie met niks...

Verwijderd

Topicstarter
Heel erg bedankt voor jullie input. :)

Het is gelukt:

Columns("F:F").Select
Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Pagina: 1