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

VBA: code om formaat IBAN toe te passen op bereik

Status
Niet open voor verdere reacties.
Prima! Ik zal nog even de uiteindelijke code zetten, moest nog iemand op zoek zijn naar de oplossing:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long, y As Long
If Not Intersect(Target, Range("a1:a11")) Is Nothing And Target.Count = 1 Then
 Application.EnableEvents = False
      Target = Replace(Target, " ", "")
      For i = 1 To Len(Target) Step 4
         Target.Characters(i + y, 0).Insert (" ")
         y = y + 1
       Next i
    Target = Mid(UCase(Target), 2)
   Application.EnableEvents = True
 End If
End Sub

Bedankt allemaal! En vrolijk Kerstfeest ;-)
 
Hetzelfde gewenst :D
Toch ben ik nog benieuwd naar het antwoord op mijn vraag aan snb ;)
 
Bedankt voor het overnemen @edmoor.
kan ook zo.
Code:
target = trim(UCase(Target))

wachten we nog even op @snb.
 
Hmmm... lijkt mij persoonlijk niet verstandig om zo'n bankrekeningnummer te "verkrachten" door er spaties aan toe te voegen. Wat snb doet, lijkt mij het enige juiste. Namelijk het aanpassen van de opmaak, maar onder water blijft de waarde intact. Zo kan je 'me veel eenvoudiger blijven gebruiken.
 
@ginger

Natuurlijk ben ik het wer eens 100% met je eens.

@edm

dat lukt jou ook zelf wel... ;)
 
Hmmm... lijkt mij persoonlijk niet verstandig om zo'n bankrekeningnummer te "verkrachten" door er spaties aan toe te voegen. Wat snb doet, lijkt mij het enige juiste. Namelijk het aanpassen van de opmaak, maar onder water blijft de waarde intact. Zo kan je 'me veel eenvoudiger blijven gebruiken.

Ik zie je punt, maar voor mij werkt het wel. In mijn geval dient het enkel om af te drukken, de nummers worden enkel ingetikt en nadien niet meer gemanipuleerd.
 
En hoe ziet dat resultaat er uit?
Code:
Function Rekening(Nummer) As String
    Rekening = Trim(UCase(Format(Nummer & String(4 - Len(Nummer) Mod 4, " "), Replace(Space(Len(Nummer) \ 4), " ", "@@@@ "))))
End Function
 
Even getest, en volgens mij kan de 4 in de string er nog uit.

Code:
Function Rekening(Nummer) As String
    Rekening = Trim(UCase(Format(Nummer & String(Len(Nummer) Mod 4, " "), Replace(Space(Len(Nummer) \ 4), " ", "@@@@ "))))
End Function
 
Dan mag de Trim er ook nog af, al hou je dan een extra spatie aan het einde over.
Code:
Function Rekening(Nummer) As String
    Rekening = UCase(Format(Nummer & String(Len(Nummer) Mod 4, " "), Replace(Space(Len(Nummer) \ 4), " ", "@@@@ ")))
End Function
 
Laatst bewerkt:
Mij is niet helemaal duidelijk of het IBAN nummer aangeuld moet worden tot een veelvoud van 4 teken.
Indien niet:

Code:
Function F_snb(c00) As String
  F_snb = UCase(Format(c00, Replace(Space((Len(c00) - 1) \ 4), " ", "@@@@ ")))
End Function
 
Nee, het moet enkel gegroepeerd worden in groepjes van 4, met de rest op het einde. Een fictief nummer van 26 nummers zou dus zijn:

XXXX XXXX XXXX XXXX XXXX XXXX XX
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan