Excel 2010: Großschreibung immer!

5 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Da in einer Zelle in Excel immer nur entweder eine Formel oder ein Wert (Eintrag) stehen kann, lässt sich Dein Problem nicht mit Formel lösen, sondern nur über VBA.
Mach mal einen Rechtsklick auf den Tabellenreiter (unten, da wo z.B. Tabelle1 steht) und gehe dann auf "Code anzeigen...".
In das große Fenster des VBA-Editors, der sich dann öffnet kopierst Du folgenden Code:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
  On Error GoTo ErrorHandler
  Application.EnableEvents = False
  Target.Value = UCase(Target)
ErrorHandler:
  Application.EnableEvents = True
End If
End Sub  

Dann sollten alle Einträge in A1 automatisch nach dem Enter in Großbuchstaben erscheinen.
Die Datei musst Du danach aber als .xlsm speichern, und Makros zulassen.
Kommst Du klar?

Woher ich das weiß:Berufserfahrung – IT-Administrator (i.R.)
JaniGirl 
Fragesteller
 27.05.2013, 20:38

danke, ich probiers mal aus!

gut zu wissen

Da in einer Zelle in Excel immer nur entweder eine Formel oder ein Wert (Eintrag) stehen kann,

0
MickBP0815  17.09.2022, 17:10

Hallo Usermod, genau das habe ich gesucht. schön wäre jetzt nur noch Tabellenübergreifend diese Funktion zu haben. Ich habe ~ 15 Tabellen in meinem Sheet mit der Tendenz nach oben. Wie erhalte ich das Script für alle Tabellen? Ich könnte mit Copy & Paste in jeder Tabelle einfügen ;-) Ich bin nicht der Spezialist in VBA aber ich kann gut abschreiben :-)
Danke und Grüße Karlheinz

0
Oubyi, UserMod Light  17.09.2022, 17:55
@MickBP0815

DAS wäre auf jeden Fall EINE Möglichkeit. Oder Du machst einen Rechtsklick auf den Tabellenreiter (unten, da wo z.B. Tabelle1 steht) und gehst dann auf "Code anzeigen...", suchst dann links das VBA-Projetk, dass den Namen Deiner Datei trägt und doppelklickst direkt darunter auf "Diese Arbeitsmappe". Dann DAS einfügen:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
 On Error GoTo ErrorHandler
 Application.EnableEvents = False
 Target.Value = UCase(Target)
ErrorHandler:
 Application.EnableEvents = True
End If
End Sub

Klappt es?

0
MickBP0815  17.09.2022, 18:13
@Oubyi, UserMod Light

Hallo Oubyi
(ui, wie hab ich Dich denn vorhin angeschrieben, sagte ja, kopieren kann ich ... aber das Lesen schein ein Prob. zu sein ;-) )
Ja klasse, funktioniert prima. Unter VBA-Projekt hatte ich vorhin auch schon versucht...
Vielen herzlichen Dank Oubyi

1
MickBP0815  21.09.2022, 18:59
@Oubyi, UserMod Light

Hallo Oubyi,

jetzt hab ich doch noch mal eine Frage zu dem ersten Script von Dir:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1"))

Ich wollte im Range ("A1:A20", "C1:D100")) z. B. den vorigen Bereich definieren. Gebe ich nun in B50 Text ein, wird dieser auch in Großbuchst. abgeändert.
Aktiv scheint wohl NUN der Bereich A1:D100 zu sein. Ich hab etwas nachgelesen, so wie ich es verstanden habe, kann ich mehrere Bereiche definieren.
Oubyi, kannst Du mir hierzu bitte nochmal helfen?

Schönen Abend
Karlheinz

0
Oubyi, UserMod Light  21.09.2022, 20:27
@MickBP0815

Ich würde das aneinander reihen:


 If Not Intersect(Target, Range("A1:A20")) Is Nothing _
 Or Not Intersect(Target, Range("C1:D100")) Is Nothing Then

Vielleicht geht es eleganter, aber so ist es zumindest übersichtlich.

0
MickBP0815  22.09.2022, 09:23
@Oubyi, UserMod Light

Guten Morgen Oubyi,

PERFEKT! "Elegant" überlasse ich dem weiblichen Geschlecht "Übersichtlichkeit" finde ich besser ;-)

Vielen lieben Dank Oubyi und einen angenehmen Tag
Gruß Karlheinz

0

Habe diese Methode ausprobiert : Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A1")) Is Nothing Then On Error GoTo ErrorHandler Application.EnableEvents = False Target.Value = UCase(Target) ErrorHandler: Application.EnableEvents = True End If End Sub

Das klappt auch ganz gut, nur habe ich zwei zellen die so funktionieren sollen. Untereinander wäre kein Problem dann wäre es: A1:A2. Das wären aber die Zellen B7 und F7. Irgendeine Lösung für das Script ?

um das an einem Beispiel zu verdeutlichen. Durch die Nutzung von =GROSS() oder =KLEIN() kann ich ja den Text aus einer bestimmten Zelle in einer anderen Zelle eben in kompletten GROSSBUCHSTABEN oder kleinbuchstaben anzeigen lassen. Ich hätte den Text aber in der ursprünglichen Zelle gerne nach dem eingeben automatisch in Großbuchstaben geändert!

Um auf das angehangene Beispiel Bezug zu nehmen: Der Text in B4 soll gar nicht erst nach dem Drücken von Enter in kleinbuchstaben angezeigt werden sondern automatisch in Großbuchstaben geändert werden.

Das müsste doch eigentlich machbar sein, hat da jemand ne Idee?

formatierung - (Computer, Microsoft Excel, Office)
Peter1151  29.05.2013, 11:19

Wenn z.B. die Hochstelltaste aktiviert wird, wird der Text zwar in Großbuchstaben geschrieben, aber auch die Zahlen. Die werden dann als Sonderzeichen dargestellt.

Es gibt nur die Möglichkeit des Umwandelns. Du kannst doch die "Eingabezelle" beim Druck o.ä. ausblenden. Dann sieht man alles nur in Großbuchstaben.

Die andere Möglichkeit ist über einen VBA - Code. Ist aber auf Dauer umständlicher.

Gruß Peter

0

Microsoft Excel verfügt über die folgenden drei Tabellenfunktionen, die Sie verwenden können, um die Groß-/Kleinschreibung von Text zu ändern. KLEIN – Wandelt alle Großbuchstaben in einer Textzeichenfolge in Kleinbuchstaben um.

GROSS – Wandelt alle Kleinbuchstaben in einer Textzeichenfolge in Großbuchstaben um.

GROSS2 – Wandelt den ersten Buchstaben einer Textzeichenfolge und alle anderen Buchstaben im Text, die anderen Zeichen als einem Buchstaben folgen, in Großbuchstaben um. Wandelt alle anderen Buchstaben in Kleinbuchstaben um.

z.B. in "A1" steht " Müchen 1852" in B1 folgende Formel eingeben: =KLEIN(a1) - Ausgabe - münchen 1852 oder =GROSS(a1) - Ausgabe - MÜNCHEN 1852 oder =GROSS2(a1) - Ausgabe - München 1852

Ist für mich die einfachste Art und Weise ohne Codes schreiben zu müssen

Gruß Peter

in LibreOffice (und vermutlich auch OpenOffice) gibt es die Schaltfläche GROSSBUCHSTABEN.
So ein Icon kenne ich in xls nicht.
Das Programm ist allerdings etwas gewöhnungsbedürfctig, wenn man von xl herkommt. Ob sich für sowas alleine ein Umstieg lohnt, bezweifle ich, vor allem, weil man auch Nachteile inkauf nehmen muss und ästhetisch ist es auch weniger gefällig. Allerdings ist es kostenlos, und viele Kommunen (zB München) steigen drauf ein.
Oubyis Makro sollte Dein Problem lösen.