2.2k Aufrufe
Gefragt in Tabellenkalkulation von dutchi1972 Mitglied (419 Punkte)
Hallo zusammen,

ein kleines Problem hab ich ,
Nur in Zelle C7 wird eine Eingabe gemacht dieser soll nach Enter Taste direkt in Grossbuchstaben umwandeln egal ob ich sie vorher in groß oder klein Buchstaben eingegeben habe.

gibt es da vieleicht einen kleinen Trick oder ein Makro

Danke im voraus

Gruß Dutchi

6 Antworten

0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Dutchi,

nachfolgenden Code in das VBA-Projekt des Tabellenblatts einfügen, in dem die Eingabe in Zelle C7 geändert werden soll.

Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "C7" Then _
Range("C7") = UCase(Range("C7"))
End Sub
Bei Fragen melde Dich.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von dutchi1972 Mitglied (419 Punkte)
Hallo, Danke für die schnelle Antwort,
Funktioniert nur zum Teil,
er ändert zwar aber bleibt nach Enter ca. 10-15 Sec. im nächsten Feld stehen ohne das ich weiter schreiben kann, im unteren Bildrand kann ich sehen das der Prozess noch nicht abgeschlossen ist ????.

Kannst du mir noch weiter helfen.
Gruß Dutchi
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Dutchi,

bei mir funktioniert‘s ohne Verzögerung. Aber probiere mal nachfolgenden geänderten Code. Eventuell geht‘s damit etwas besser.
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ERRORHANDLER
Application.EnableEvents = False
If Target.Address(0, 0) = "C7" Then _
Range("C7") = UCase(Range("C7"))
ERRORHANDLER:
Application.EnableEvents = False
End Sub

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Dutchi,

sorry, war ein kleiner Fehler in dem Code. Hier nochmal der Richtige.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ERRORHANDLER
Application.EnableEvents = False
If Target.Address(0, 0) = "C7" Then _
Range("C7") = UCase(Range("C7"))
ERRORHANDLER:
Application.EnableEvents = True
End Sub

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Dutchi,
oder vielleicht so:

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Cells(7, 3) = UCase(Cells(7, 3))
End Sub

Gruß
fedjo
0 Punkte
Beantwortet von dutchi1972 Mitglied (419 Punkte)
Super hat sofort funktioniert,
Ohne Fehler ,
Auch obwohl er die Gültigkeitsprüfung hat aus einer Liste !!!

Danke nochmal
...