Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Automatische Änderung eines Textes nach Eingabe

Automatische Änderung eines Textes nach Eingabe
lutz
Hallo Excel-Freunde,
ich würde gerne Eingaben direkt danach durch etwas anderes ersetzen - ähnlich wie eine Autokorrektur.
Die variablen Schreibe ich in Tabelle "var" Zelle D2-..., den Variablennamen in Zelle A2-...
Nach der Eingabe von z.B. "xxxc B6" soll dann daraus etwas anderes werden, nähmlich für xxxc (=Variable) der Variablentext (z.B. ='D:\[Datei B.xlsx]2011'!) und das b6 soll bleiben.
Ich habe etwas ähnliches gefunden - weiß aber nicht wie ich es abändern muß:
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
Weiß jemand Rat?
Vielen Dank und viele Grüße Lutz

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Automatische Änderung eines Textes nach Eingabe
15.01.2012 22:36:37
lutz
Hallo Sepp,
Wahnsinn - geht wie verrückt.
Hier mal der Code damit andere das auch finden können:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Dim vntRet As Variant
Dim lngCalc As Long
On Error GoTo ErrExit
With Application
.ScreenUpdating = False
.EnableEvents = False
lngCalc = .Calculation
.Calculation = xlCalculationManual
.DisplayAlerts = False
End With
For Each rng In Target
If InStr(1, rng.Text, " ") > 0 Then
vntRet = Application.Match(Split(rng, " ")(0), Sheets("VAR").Columns(1), 0)
If IsNumeric(vntRet) Then
rng.Formula = Sheets("VAR").Cells(vntRet, 2) & Split(rng, " ")(1)
End If
End If
Next
ErrExit:
With Err
If .Number 0 Then
MsgBox "Fehler in Prozedur:" & vbTab & "'Worksheet_Change'" & vbLf & String(60, "_") & _
vbLf & vbLf & IIf(Erl, "Fehler in Zeile:" & vbTab & Erl & vbLf & vbLf, "") & _
"Fehlernummer:" & vbTab & .Number & vbLf & vbLf & "Beschreibung:" & vbTab & _
.Description & vbLf, vbExclamation + vbMsgBoxSetForeground, _
"VBA - Fehler in Modul - Tabelle1"
.Clear
End If
End With
On Error GoTo 0
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = lngCalc
.DisplayAlerts = True
End With
End Sub
Ist echt beeindruckend und auch rasend schnell!
Vielen lieben Dank und noch einen schönen Abend
Viele Grüße Lutz


Anzeige

319 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige