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

Hoofdletters in Range?

Status
Niet open voor verdere reacties.

Demeter

Verenigingslid
Lid geworden
24 mei 2006
Berichten
1.659
Iets totaals nieuws voor mij is hoe ik op een werkblad altijd een macro kan laten uitvoeren zonder dat ik op een knop moet drukken.

Ik wil graag in de range G12:GE200 al het ingevuld in hoofdletters hebben.

Dus als ik in cel G12 een 'e' in toets dat deze dan automatisch veranderd naar een 'E'.
zonder dat ik hiervoor op een knop moet drukken.

VB code voor hoofdletters ben ik ook nog niet achter.

Iemand die me in de juiste richting kan wijzen?


Bijvoorbaat dank voor jullie hulp,
Ferenc
 
Ferenc

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("G12:GE200")) Is Nothing Then
    Target = UCase(Target)
End If
End Sub

Wigi
 
dank u

Thanks Wigi :thumb: ,

Gaat erom dat als ik in de cel een a toets en dan een andere cel selecteer deze automatisch een capital wordt.
in de code die jij hebt gegeven moet je hem nogmaals selecteren.

Hier kan ik zeker verder mee.

thanks,
Ferec
 
Ik begrijp wat je bedoelt, maar dat gaat niet. Je zal altijd naar een volgende cel moeten gaan, of enteren, of klikken. Anders lukt het niet.

Wigi
 
Zoiets:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim c As Range
    Dim MyRange As Range
    Set MyRange = Range("A1:A10")
    For Each c In MyRange
        If Not (IsNumeric(c.Value)) Then c.Value = UCase(c.Value)
    Next c
End Sub
 
All right

Dank je wel Diezel.

Werkt als een trein (niet die van de ns maar de oude nog :-) ),
heb hem alleen nu 5 keer in mijn blad gezet, iedere met een andere range.
als je alle iedere keer door laat zoeken wordt het zo traag.

Thanks mannen.


groet,
Ferenc
 
1 x is afdoende:
Code:
    Set MyRange = Range("A1:A10", "C1:C10")
Is maar een voorbeeldje.
 
DIEZEL zei:
Zoiets:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim c As Range
    Dim MyRange As Range
    Set MyRange = Range("A1:A10")
    For Each c In MyRange
        If Not (IsNumeric(c.Value)) Then c.Value = UCase(c.Value)
    Next c
End Sub
Diezel

Ik zie niet goed in wat het verschil is van deze code in vergelijking met die van mij?

Wigi
 
Hoi WiGi,
Het verschil zit hem in "Target".
Probeer beide Private Subs maar eens op een range A1:A10.

Sub WiGi: typ een 'a' in cel A1. Met Enter wordt echter A2 het "Target" en daar staat nog niets.
Stel dat je in kolom A onder elkaar een aantal letters zet. Die zijn dan allemaal in LCase.
Als je dan met de pijltjestoets omhoog gaat wordt jouw Sub getriggered. De geselecteerde cel is dan het "Target" en wordt UCase.

Sub Diezel: typ een 'a' in cel A1. Op het moment dat een enter wordt gegeven is er een Event, de Sub wordt getriggered en loopt de opgegeven range af. Wordt een numeriek gegeven gevonden dan niets, anders maak er UCase van.

Ik hoop hiermede het verschil in beide Subs verduidelijkt te hebben.
 
Je hebt volledig gelijk Diezel. Wat jij deed was wel mijn bedoeling, maar het kwam er niet uit blijkbaar :o

Wigi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan