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
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige