Excel 2010: Großschreibung immer!
kann ich bei excel 2010 eine zelle so formatieren, dass automatisch alles in großbuchstaben geschrieben wird, egal wie die tastatur eingestellt ist?
5 Antworten
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?
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?
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
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
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.
Guten Morgen Oubyi,
PERFEKT! "Elegant" überlasse ich dem weiblichen Geschlecht "Übersichtlichkeit" finde ich besser ;-)
Vielen lieben Dank Oubyi und einen angenehmen Tag
Gruß Karlheinz
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,
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?

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