Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
924to928
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
924to928
924to928
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Text während der Eingabe ersetzen

Text während der Eingabe ersetzen
19.11.2007 08:21:00
walter
Hallo,
ich habe ein kleines Problem, bei dessen Lösung ich um Hilfe bitte:
Ich muss bei einem Wettbewerb ein Bewertungsblatt ausfüllen. Die jeweiligen Punkte werden mir von
einem Moderator im Saal angesagt. Voriges Jahr habe da ziemlichen Stress gehabt und auch gelegentlich Fehler produziert. Um heuer schneller zu sein, habe ich mir überlegt, nur ein Kürzel (z.B. "7") einzugeben, welches bei der Eingabe durch die tatsächliche Zahl (z.B. "10") ersetzt wird.
Suchen/Ersetzen bzw. Autokorrektur scheiden aus, da diese über das ganze Tabellenblatt arbeiten und das möchte ich nicht.
Ich denke, dass nur VBA bleibt.
Die Ersetzungen während der Eingabe sollen nur im Bereich F11 - H20 und J11 - L20 passieren.
Ersetzt soll werden:
1 durch 7
2 durch 7,5
3 durch 8
4 durch 8,5
5 durch 9
6 durch 9,5
7 durch 10
Ich wäre für Tips dankbar!
lg
walter

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Text während der Eingabe ersetzen
19.11.2007 08:57:00
Matthias
Hallo Walter,
ins Codemodul des Tabellenblattes:

Private Sub Worksheet_Change(ByVal Target As Range)
Const b = "F11:H20,J11:L20"
Dim z As Range, ber As Range
Dim neu As Variant
Set ber = Intersect(Target, Range(b))
If Not ber Is Nothing Then
For Each z In ber
Select Case z.Value
Case 1: neu = 7
Case 2: neu = 7.5
Case 3: neu = 8
Case 4: neu = 8.5
Case 5: neu = 9
Case 6: neu = 9.5
Case 7: neu = 10
Case Else: neu = -1
End Select
If neu > 0 Then
On Error Resume Next
Application.EnableEvents = False
z.Value = neu
If Err.Number > 0 Then MsgBox Err.Description, vbCritical, "Fehler Nr." & Err.Number
On Error GoTo 0
Application.EnableEvents = True
End If
Next z
End If
End Sub


Gruß Matthias

Anzeige
AW: Text während der Eingabe ersetzen
19.11.2007 09:06:00
KlausF
Hallo, Walter!
M.E. geht das auch ohne VBA, wenn Du die Eingaben 1-7 in einem gesonderten Bereich vornehmen kannst.
Dann kannst Du die "echte" Bewertung 7-10 über eine Formel erzeugen
z.B. Eintrag in N11
dann Formel in F11
=6,5+n11*0,5
MfG!
Klaus

AW: Text während der Eingabe ersetzen
19.11.2007 14:22:00
walter
Danke Klaus,
das wär ja die einfachste Lösung (an die denkt man meist nicht sofort).
Ich ziehe jedoch die VBA-Lösung vor aber trotzdem danke!
Gruß
Walter

AW: Text während der Eingabe ersetzen
19.11.2007 09:03:00
Renee
Hi Walter,
Noch ein Variante (Code in das entsprechende Tabellenblatt):

Private Sub Worksheet_Change(ByVal Target As Range)
Dim bOK As Boolean
If Intersect(Target, Range("F11:H20", "J11:L20")) Is Nothing Or _
Target.Cells.Count > 1 Then Exit Sub
Application.EnableEvents = False
If Target.Value = Val(Target.Value) Then
If Target.Value  7 Then
Else
Target.Value = _
WorksheetFunction.Index(Array(7, 7.5, 8, 8.5, 9, 9.5, 10), Target.Value)
bOK = True
End If
End If
If Not (bOK) Then
MsgBox "Wert muss zwischen 1 und 7 sein!", vbOKOnly + vbExclamation
Target.Value = ""
Target.Activate
End If
Application.EnableEvents = True
End Sub


GreetZ renee

Anzeige
AW: Text während der Eingabe ersetzen
19.11.2007 09:24:34
Mag
Hi,

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("F11:H20", "J11:L20")) Is Nothing Or Target.Count > 1 Then Exit  _
Sub
Application.EnableEvents = False
Target = Target / 2 + 6.5
Application.EnableEvents = True
End Sub


Und über Gültigkeit festlegen, dass nur Ganzzahlen 1 bis 7 eingegeben werden dürfen.
Gruss

AW: Text während der Eingabe ersetzen
19.11.2007 09:39:00
Mag
... alternativ zu Gültigkeit:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim zahl As Integer
If Intersect(Target, Range("F11:H20", "J11:L20")) Is Nothing Or Target.Count > 1 Then Exit  _
Sub
zahl = Target
If zahl  7 Then
MsgBox "Falsche Eingabe!"
Exit Sub
End If
Application.EnableEvents = False
Target = zahl / 2 + 6.5
Application.EnableEvents = True
End Sub


Gruss

Anzeige
AW: Text während der Eingabe ersetzen
19.11.2007 09:48:00
Mag
... sauberer:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim zahl As Integer, rng As Range
If Intersect(Target, Range("F11:H20", "J11:L20")) Is Nothing Then Exit Sub
For Each rng In Target
'Ganzzahl
zahl = Val(rng)
If zahl  7 Then
'Falsche Eingabe
Application.EnableEvents = False
rng = -1
Application.EnableEvents = True
Else
'Umrechnung
Application.EnableEvents = False
rng = zahl / 2 + 6.5
Application.EnableEvents = True
End If
Next
End Sub


Gruss

AW: Text während der Eingabe ersetzen
19.11.2007 14:10:03
walter
Danke, sehr genial!
Walter

AW: Text während der Eingabe ersetzen
19.11.2007 14:23:34
Renee
Hi Mag,
... sauberer: ?
Gib niemals 32768 (oder den Jackpot der Euro-Millions) ein ;-)
GreetZ Renee

Anzeige
AW: Text während der Eingabe ersetzen
19.11.2007 14:49:27
Mag
... ja, stimmt; aber ich sagte ja sauberer, nicht sauber ;-)

AW: Text während der Eingabe ersetzen
19.11.2007 14:13:00
walter
Funktioniert super, danke Renee!
Gruß
Walter

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige