Anzeige
Archiv - Navigation
1416to1420
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Großschreibung

Großschreibung
27.03.2015 19:15:07
DieterG

Hallo zusammen,
brauche wieder mal Hilfe.
Dieses Makro hab ich bei meinen Recherchen gefunden, leider macht es nicht das wofür ich es brauche.
Das Makro soll nur dann starten wenn Buchstaben eingegeben werden. Die Buchstaben sollen dann in Großschreibung dargestellt werden.
Wenn Ziffern eingegeben werden darf das Makro nicht starten!

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Bereich
Set Bereich = ActiveSheet.Range("EB")
If Not IsNumeric(Bereich.Value) Then
Exit Sub
ElseIf IsNumeric(Bereich.Value) Then
Application.EnableEvents = False
On Error GoTo ERRORHANDLER
Target = UCase(Target)
ERRORHANDLER:
Application.EnableEvents = True
End If
End Sub
Vielen Dank schon mal!
Gruß
Dieter

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Großschreibung
27.03.2015 19:19:07
Nepumuk
Hallo,
einfach so:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim objCell As Range
    For Each objCell In Target
        objCell.Value = UCase$(objCell.Value)
    Next
End Sub

Gruß
Nepumuk

Anzeige
AW: Großschreibung
27.03.2015 19:28:15
Hajo_Zi
Hallo Dieter,
es können auch mehr als eine Zelle geändert werden.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim RaBereich As Range
Dim Razelle As Range
Set RaBereich = ActiveSheet.Columns("EB")
Set RaBereich = Intersect(RaBereich, Range(Target.Address))
If Not RaBereich Is Nothing Then
Application.EnableEvents = False
For Each Razelle In RaBereich
If Not IsNumeric(Razelle) Then
Razelle = UCase(Razelle)
End If
Next Razelle
Application.EnableEvents = True
End If
End Sub


Anzeige
AW: Großschreibung
28.03.2015 00:16:20
DieterG
Hallo Hajo,
Danke für die schnelle Hilfe, das klappt aber leider nicht.
Die eingegebenen Buchstaben werden nicht in "Großbuchstaben umgewandelt.
@ Nepomuk: Danke ach an Dich, aber dein Vorschlag bringt Excel ständig zum Absturz!
Gruß
Dieter

AW: Großschreibung
28.03.2015 09:16:40
Hajo_Zi
in meiner Datei geht es, Deine sehe ich nicht.
Gruß Hajo

AW: Großschreibung
28.03.2015 10:07:26
Nepumuk
Hallo,
Ich hab nicht bedacht dass durch die Änderug das Event erneut gestartet wird. Anfängerfehler !!!
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim objCell As Range
    Application.EnableEvents = False
    For Each objCell In Target
        objCell.Value = UCase$(objCell.Value)
    Next
    Application.EnableEvents = True
End Sub

Gruß
Nepumuk

Anzeige
Warum Nepumuks Pgm Xl zum Absturz ...
28.03.2015 02:12:30
Luc:-?
…bringen sollte, Walter,
ist mir (auf die Schnelle) zwar unklar (unpassende XlVersion, falscher Standort der Ereignis­Prozedur? → besser selber anlegen [→Leer­Proz aus Kopf-/FußZeile] und nur die LeerZeile durch das „Innenleben“ der geposteten Prozeduren ersetzen! Oder verwendest du etwa eine XlVersion vor Xl9/2000?), aber sicherheitshalber hier mal ein Pgm, das deine Anforderungen automatisch erfüllt, wenn sie denn im Dokument­Klassen­Modul des betroffenen Blattes angelegt wird! Habe hierbei die Vorteile von Hajos Variante bewahrt, aber nicht ihre Umständlichkeit:
Private Sub Worksheet_Change(ByVal Target As Range)
Const adRelBer$ = "EB"
Dim relBer As Range, xZ As Range
On Error GoTo fx: Set relBer = Intersect(Target, Me.Range(adRelBer))
If relBer Is Nothing Then Exit Sub Else Application.EnableEvents = False
For Each xZ In relBer
If WorksheetFunction.IsText(xZ) Then xZ = UCase(xZ)
Next xZ
fx: If CBool(Err.Number) Then MsgBox Err.Description, vbCritical, _
"Fehler " & Err.Number: Set xZ = Nothing
Application.EnableEvents = True: Set relBer = Nothing
End Sub
Viel Erfolg + schöWE!
Gruß, Luc :-?
Besser informiert mit …

Anzeige
Pardon, Dieter statt Walter! ;-) owT
28.03.2015 02:16:09
Luc:-?
:-?

keine Probleme mit XL2000
28.03.2015 03:29:21
Matthias L
Hi Luc
Der kopierte und eingefügte Code von Nepumuk macht bei mir keine Probleme.
Funktioniert in XL2000 und auch in XL2007 ohne Absturz
Hab Deine Variante auch probiert.
Es kommt in beiden XL-Versionen dieser VBA-Fehler:
Userbild
schö.WE
Gruß Matthias

Hatt'ich beinahe geahnt, Matti, wahrscheinlich ...
28.03.2015 13:14:02
Luc:-?
…muss Intersect andersherum, Target zuletzt, angewendet wdn. Ansonsten bin ich auch der Meinung, dass Dieter schon eine Uralt- bzw exotische Xl-Variante haben muss, damit die anderen Pgmm nicht fktionieren (da gibt's welche, die verlangen Target As Excel.Range o.s.ä.). Deshalb so etwas immer anlegen, nicht einfach nur einkopieren!
Gruß+schöWE, Luc :-?

Anzeige
Nee, liegt an der einfachen Übernahme von 'EB' ...
28.03.2015 14:12:38
Luc:-?
…als Konstante, Matti,
jetzt seh'ich's sofort → natürlich Const adRelBer$ = "EB:EB"! Aber wenigstens war 'ne FehlerRoutine drin… ;-)
Übrigens, „AnfängerFehler“ vermute ich natürlich bei Nepumuk nicht, weshalb ich auf das, was letztlich die Ursache war, auch nicht geachtet hatte, obwohl es in allen anderen Pgmm richtig enthalten war/ist.
Luc :-?

na denn ... schö.WE owT
28.03.2015 15:18:52
Matthias L

Vielen Dank an alle Beteiligten!
28.03.2015 20:25:56
DieterG
@Luc - Das funktioniert hervorragend.
Gruß
Dieter

Na, dann bitte sehr! ;-) SchöSo! owT
29.03.2015 03:52:14
Luc:-?
:-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige