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

kleine letter in bepaalde kolom omzetten in hoofdletter

Status
Niet open voor verdere reacties.

Databeest

Gebruiker
Lid geworden
1 nov 2006
Berichten
38
Ik zou graag standaard alles wat in een bepaalde kolom getypt wordt, wordt omgezet in hoofdletters. In mijn geval gaat het standaard om alle ingevulde waarden in kolom A.

Ik heb iets geprobeerd met de functie = (hoofdletters), maar dan krijg ik kringverwijzingen.

VB ik type in kolom A

a
b
c

moet dan worden:

A
B
C
 
open de visualbasic editor (ALT+F11)
dubbelklik op het blad waar je dit toegepast wilt hebben.
Plak onderstaande code in het rechterdeel
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 1 Then
    ActiveCell.Value = UCase(ActiveCell.Value)
End If
End Sub

Sluit vervolgens de visual basic editor
Alles wat je nu in kolom A (=1) invuld wordt meteen omgezet in hoofdletters.
 
Misschien moet je het in deze richting zoeken.
Deze werkt van A1 t/m A 500 in Blad1

HTML:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Rng As Range
For Each Rng In Worksheets("Blad1").Range("A1:A500")
If Rng.HasFormula = False Then
Rng.Value = StrConv(Rng.Value, vbProperCase)
End If
Next Rng
End Sub
 
Laatst bewerkt:
open de visualbasic editor (ALT+F11)
dubbelklik op het blad waar je dit toegepast wilt hebben.
Plak onderstaande code in het rechterdeel
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 1 Then
    ActiveCell.Value = UCase(ActiveCell.Value)
End If
End Sub

Sluit vervolgens de visual basic editor
Alles wat je nu in kolom A (=1) invuld wordt meteen omgezet in hoofdletters.

Jan,

Helaas het werkt alleen als je weer teruggaat naar de cel, het werkt niet meteen nadat je iets hebt ingevuld in de cel.

Wie weet hier iets op?
 
hallo Databeest,

Probeer onderstaande macro eens.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column <> 1 Then Exit Sub
    Target.Value = UCase(Target.Value)
End Sub
 
Hallo,

Code:
Ik heb iets geprobeerd met de functie = (hoofdletters), maar dan krijg ik kringverwijzingen.

HTML:
=HOOFDLETTERS(A1)

En naar beneden doortrekken.

Gr Justes
 
Hallo Luc,

Dat werkt prima, gaat meteen in een speciale bewaarmap.

Gr Justes
 
Hallo Luc,

Dat werkt prima, gaat meteen in een speciale bewaarmap.

Gr Justes

Zelfde opmerking als daarnet:
Helaas het werkt alleen als je weer teruggaat naar de cel, het werkt niet meteen nadat je iets hebt ingevuld in de cel.

Wie weet hier iets op?
 
Hoi allen

Zal ik eens advocaat van de duivel spelen :p

Zo perfect vind ik niet dat die werkt. Voeg maar eens een MsgBox toe:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column <> 1 Then Exit Sub
    Target.Value = UCase(Target.Value)
    MsgBox True
End Sub

En druk maar op Enter ;)

Wigi
 
Hoi allen,

Ik wil iedereen afraden het advies in deze van Wigi op te volgen, er komt geen eind aan en je kunt het bestand ook niet meer sluiten.
Alleen nog door Ctrl-Alt-Del.

Gr Justes
 
Hoi allen,

Ik wil iedereen afraden het advies in deze van Wigi op te volgen, er komt geen eind aan en je kunt het bestand ook niet meer sluiten.
Alleen nog door Ctrl-Alt-Del.

Gr Justes

Dit is pure nonsens. Houd de Entertoets ingedrukt en na enkele seconden stopt het. Op mijn PC is het +/- 8 seconden, wat iets kan verschillen van PC tot PC. Ik heb ergens gelezen dat het ongeveer 300 keer is dat het Event zichzelf terug aanroept, en daar moet je even door.

En als je mij niet gelooft dat het stopt: het feit dat de code in de bestandjes van hierboven stopt, zegt alles, me dunkt. Of loopt die code daar ook vast? ;)

Mijn boodschap is overgekomen, dat was de bedoeling. Excuses dat ik had moeten aangeven dat je de Entertoets even moest ingedrukt houden.

Aan de andere kant wens ik ook niet valselijk beschuldigd te worden. Ik test zelf heel veel (bijna alles) van wat ik op forums zet als het om VBA-code gaat. En heb ik daar occasioneel de tijd niet voor, dan gaat het om:

- ofwel "voordehandliggende" oplossingen
- ofwel zet ik er expliciet ongeteste code bij in de post
- ofwel weet ik zelf perfect wat de gevolgen zijn

Wigi
 
Laatst bewerkt:
Allen, Reagerend op de waarschuwing van Wigi... Je kan inderdaad niet voorzichtig genoeg zijn met het 'change-event' als je met dat event de inhoud van een cel aanroept en veranderd. De code zal zichzelf blijven aanroepen (totdat er een time-out oid ontstaat). Dit kan je ondervangen door een enable events mee te geven. De code van LucB wordt in dat geval
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    
    If Target.Column <> 1 Then Exit Sub
        Application.EnableEvents = False
        Target.Value = UCase(Target.Value)
        Application.EnableEvents = True
    End If
    
End Sub
Je kan 'm nu straffeloos draaien.

Groet, Leo
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan