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

Aangepaste notatie

Status
Niet open voor verdere reacties.

plongske

Verenigingslid
Lid geworden
24 mrt 2013
Berichten
3.054
Beste forumleden
Ik kreeg net de vraag om een aangepaste notatie. Het betreft een Iban notatie.
vb. als je Be88567823457654 ingeeft in een cel zou deze automatisch BE88 5678 2345 7654 moeten worden
De letters kunnen ook veranderen.
Ik dacht het even te doen via cel eigenschappen maar het lukt me nog niet.
 
ik weet het ook niet
maar een fuctie die de spaties toevoegd misschien?
Be88567823457654 naar BE88 5678 2345 7654
lijkt voor een excel functie niet zo ingwikkeld. (zeker voor jou niet :thumb:)
 
Sylvester,
De vraag kwam van een lesgever in Excel waar ik verleden jaar een cursus volgde.:D
Ik kan wel een functie bedenken die het kan maar de bedoeling is dat het rekeningnummer in de cel zelf aangepast( dus niet in een bijkomende kolom)
 
Hoi Plongske,

Ik zou in dit geval denken aan een VBA-code die in een bepaalde Range de invoer automatisch aanpast

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B2:B20")) Then
    L = Len(Target)
    For i = 1 To L
    k = Mid(Target, i, 1): If L Mod 4 = 0 Then k = k & " "
    T = T & k
    Next i
End If
End Sub

Ik heb de code niet getest.

Groet,
Jeroen
 
klein beetje aangepast:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B2:B20]) Is Nothing Then
    L = Len(Target)
    For i = 1 To L
        k = Mid(Target, i, 1): If i Mod 4 = 0 Then k = k & " "
        t = t & k
    Next i
Application.EnableEvents = False
    Target = t
Application.EnableEvents = True
End If

End Sub
 
Laatst bewerkt:
Jeroen bedankt voor de inspanning , maar als ik een iban nummer ingeef dan gaat het reeds fout in de eerste regel van de Vba code geeft hij foutcode 13 aan
 
@sylvester
code werkt alleen zouden de twee letters in hoofdletters moeten weergeven worden.
in ieder geval bedankt voor de info.
 
Ok het werkt.
Bedankt
Als ik het goed voor heb wordt de code enkel maar in de range B2:B20 uitgevoerd?
Ik probeer nu een andere formule in een andere kolom door te slepen naar beneden maar de die verdwijnt zomaar.
Ook als ik een cel wil doorslepen verdwijnt die zomaar.
Is daar een verklaring voor?
 
Met een iets andere code:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B2:B20]) Is Nothing Then
    Application.EnableEvents = False
    t = UCase(Left(Target, 2)) & Format(Right(Target, Len(Target) - 3), "00 0000 0000 0000")
    Target = t
    Application.EnableEvents = True
End If
End Sub
 
Bedankt VenA
Deze werkt ook goed en ik kan zelfs nog mijn cellen buiten de range aanpassen.
 
Waarom zet je dat eerst in een variabele?
Code:
target = UCase(Left(Target, 2)) & Format(Right(Target, Len(Target) - [COLOR="#FF0000"]2[/COLOR]), "00 0000 0000 0000")
 
Laatst bewerkt:
Om de nummers overal in je bestand te kunnen gebruiken, is wellicht een functie wel handig.
Code:
Public Function iban(nr As String)
Dim x As Integer
nr = UCase(Left(nr, 2)) & Right(nr, 14)
For x = 0 To Int(Len(nr) / 4)
iban = Trim(iban & " " & Mid(nr, 1 + (x * 4), 4))
Next x
End Function
Te gebruiken als (bv.): =iban("be12345678901234")
wat dan als resultaat geeft: BE12 3456 7890 1234
Let op de aanhalingstekens tijdens de invoer !
Controle op correcte invoer (aantal tekens bv.) zou je best wel toevoegen,
maar ik twijfel er niet aan dat je dat zelf wel kunt.
 
Laatst bewerkt:
Plongske,

Een vergelijkbare vraag was eerder hier al gesteld. Wat me daar opviel was een test op de lengte.
 
In tegenstelling met de Belgische Ibannummers, bestaat die van NL uit 18 tekens, waarbij het 5e t/m 8e teken de naam van de bank in hoofdletters weergeeft. Om zowel voor Nederlandse als Belgische Ibannummers geschikt te zijn, moet de functie van bericht #14 aangepast worden als volgt:
Code:
Public Function iban(nr As String)
Dim x As Integer
nr = UCase(Left(nr, 2)) & UCase(Mid(nr, 3, 6)) & Mid(nr, 9, Len(nr))
For x = 0 To Int(Len(nr) / 4)
iban = Trim(iban & " " & Mid(nr, 1 + (x * 4), 4))
Next x
End Function
 
@ Harry;
Ik ben nog een leek in Vba, maar heb toch de code kunnen aanpassen.
Bedankt voor de info.
 
@ Allen
Ik weet niet waarvoor mijn leerkracht (van verleden jaar) deze van doen heeft, maar puur uit interesse heb ik deze eens geplaatst op het forum.
Iedereen alvast nog eens bedankt aan iedereen om mee te denken.
Ik ben in ieder geval tevreden met de reeds aangedragen oplossingen en vermoedelijk kunnen er nog gebruik van maken.
 
Plongske schreef: "Ik weet niet waarvoor mijn leerkracht (van verleden jaar) deze van doen heeft..."

De reden(en) kunnen alleen maar zijn dat die leerkracht de oplossing voor zichzelf of voor anderen (zijn leerlingen) wil gebruiken. Dat hij als Excelleraar dit probleempje zelf niet kan oplossen is wat merkwaardig (maar dat zij hem vergeven, ook een leraar hoeft niet alles te weten), maar hij zal toch wel bekend zijn met internet en weten dat daar forums bestaan waar je vragen kunt stellen? Dus je zou denken: waarom maakt hij daar zelf dan geen gebruik van? Misschien heeft hij gedacht: "ik leg die vraag voor aan mijn knapste leerling (Plongske), die zal wel met een oplossing komen."
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan