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

Forumthread: 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
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Automatische Änderung eines Textes nach Eingabe
15.01.2012 22:08:40
Josef

Hallo Lutz,
das ist kein Problem.
https://www.herber.de/bbs/user/78458.xls

« Gruß Sepp »

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
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige