Toon posts:

[VBA] Spatie na 4 tekens

Pagina: 1
Acties:
  • 888 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
We hebben een lijst met postcodes die alsvolgt zijn opgemaakt: "1234AA Amsterdam". Aangezien met deze postcodes de facturen worden afgedrukt en verstuurd moet dit "1234 AA Amsterdam" worden.

Heb zelf de functie MID gebruikt die de eerste 4 karakters verplaatst naar een cel en de overige ook.

----------- -------------
KOLOM1 KOLOM 2
----------- -------------
1234 AA Amsterdam


Dit is geen goede oplossing!

code:
1
2
3
4
5
6
7
8
Dim StrPostcode, Counter
Counter = 1
Do While Counter < 10
        StrPostcode = Range("E" & Counter)
        Range("F" & Counter) = Mid(StrPostcode, 1, 4)
        Range("G" & Counter) = Mid(StrPostcode, 5, 1000)
        Counter = Counter + 1
Loop

Verwijderd

Okee, en dan, wat wil je dan precies?

Zou je niet beter kunnen controleren welke van de postcode karakters nummeriek zijn en welke AlfaNummeriek? Vanaf de laatste numerieke positie voer je dan 1 spatie in....want stel je voor dat je postcode per ongeluk 111XX is of gewoon foutief op een andere manier....

Verwijderd

Topicstarter
Verwijderd schreef op 05 mei 2004 @ 10:50:
Okee, en dan, wat wil je dan precies?

Zou je niet beter kunnen controleren welke van de postcode karakters nummeriek zijn en welke AlfaNummeriek? Vanaf de laatste numerieke positie voer je dan 1 spatie in....want stel je voor dat je postcode per ongeluk 111XX is of gewoon foutief op een andere manier....
Dat zou inderdaad een goede oplossing zijn, dat ik na de cijfers een spatie toevoeg. Alle postcodes zijn juist opgemaakt en bestaan allemaal uit 6 karakters.

De mooiste oplossing zou zijn dat een macro gewoon een spatie invoegd na 4 karakters. Probleem is... hoe!

Had eerder een probleem dat er een "-" tussen stond, das gemakkelijker met FIND REPLACE. Maar dit... 8)7

Verwijderd

Je wilt dus alleen maar even tijdelijk die gegevens met een macro omzetten? Ja, dan kun je beter even een macrootje schrijven die dat oplost in de visual basic editor of iets dergelijks.
;)

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Verwijderd schreef op 05 mei 2004 @ 10:57:
[...]

De mooiste oplossing zou zijn dat een macro gewoon een spatie invoegd na 4 karakters. Probleem is... hoe!
Je gebruikt al mid, dus je doet al iets meer met VBA dan de gemiddelde Exceller ;)

Waarom hak je die waarde niet op in 2 variabelen en voeg je ze weer samen met een spatie ertussen :?

Het begint zo wel erg op een afhaal-pakket te lijken... :/

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Topicstarter
BtM909 schreef op 05 mei 2004 @ 11:03:
[...]

Je gebruikt al mid, dus je doet al iets meer met VBA dan de gemiddelde Exceller ;)

Waarom hak je die waarde niet op in 2 variabelen en voeg je ze weer samen met een spatie ertussen :?

Het begint zo wel erg op een afhaal-pakket te lijken... :/
Qua Excel en Macro schrijven ben ik nog een beginner, maar ben wel redelijk bekend met VBScript. Het lukt me nog steeds niet om er een spatie tussen de knallen. Maar het eindresultaat heb ik al wel.

code:
1
2
3
4
5
6
7
8
9
Dim StrPostcode, Counter
Counter = 1
Do While Counter < 10
        StrPostcode = Range("E" & Counter)
        Range("F" & Counter) = Mid(StrPostcode, 1, 4)
        Range("G" & Counter) = Mid(StrPostcode, 5, 1000)
        Range("H" & Counter) = Range("F" & Counter) & " " & Range("G" & Counter)
        Counter = Counter + 1
Loop


Deze code zal wel in jullie 'meest domme code voorbeelden' komen te staan :) maar hij werkt!

1. De eerste vier karakters komen in F
2. De andere karakters komen in G
3. In kolom H komen F en G samen als F _spatie_ G

[ Voor 7% gewijzigd door Verwijderd op 05-05-2004 11:12 ]


Verwijderd

msschien zoiets?

code:
1
2
3
4
5
6
7
8
9
Dim strPostcode As String
Dim strPLeft As String
Dim strPRight As String
Dim strNewPC As String
strPostcode = (Range("E"))
strPLeft = Mid(strPostcode, 1, 4)
strPRight = Right(strPostcode, 2)
strNewPC = strPLeft & " " & strPRight
Range("H") = strNewPC


moet je natuurlijk wel ff door je range heen 'loopen'

Verwijderd

Topicstarter
Verwijderd schreef op 05 mei 2004 @ 11:20:
msschien zoiets?

code:
1
2
3
4
5
6
7
8
9
Dim strPostcode As String
Dim strPLeft As String
Dim strPRight As String
Dim strNewPC As String
strPostcode = (Range("E"))
strPLeft = Mid(strPostcode, 1, 4)
strPRight = Right(strPostcode, 2)
strNewPC = strPLeft & " " & strPRight
Range("H") = strNewPC


moet je natuurlijk wel ff door je range heen 'loopen'
Heb je code in een LOOP geplaatst en hij doet zijn werk! Ga je code ff mixen in de bestaande macro en dan even genieten van het werk!

Thanx!

  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
Verwijderd schreef op 05 mei 2004 @ 11:20:
msschien zoiets?

code:
1
strPLeft = Mid(strPostcode, 1, 4)
waarom gebruik je daar niet gewoon

Visual Basic:
1
strPLeft = Left(strPostcode, 4)


:?

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


Verwijderd

kan...ofwel, nog beter eigenlijk.....ik heb gewoon ff geknipt,geplakt en aangevuld en verder niet zo heel erg nagedacht hehehe..... ;)
Pagina: 1