AW: TextBox
28.05.2008 13:57:45
fcs
Hallo Ernst,
das ist nicht ganz einfach.
1. Du muss in einem allgemeinen Modul einige Variablen als Pubblic deklarieren
2. Du muss im Modul "DieseArbeitsmappe" eine Workbook_BeforeClose-Ereignisprozedur einfügen
3. Du muss den Code für das Tabellenblatt-Modul anpassen und
eine Worksheet_SelectionChange- und eine Worksheet_Deactivate Prozedur ergänzen
Schaut dann etwa wie folgt aus.
Gruß
Franz
'### Allgemeines Modul
'Variablendeklarationen
Public oldFarbe As Long
Public LastAuswahl As Range
'### Modul - DieseArbeitsmappe
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Not LastAuswahl Is Nothing Then
LastAuswahl.Interior.ColorIndex = oldFarbe
Set LastAuswahl = Nothing
ThisWorkbook.Save
End If
End Sub
'##Tabelenblatt-Modul
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim b As Variant, c As Integer, objZelle As Range
b = TextBox1.Value
c = Len(b)
'x = y ist wohl überflüssig
If KeyCode = 13 Then
If c > 1 Then
On Error GoTo ende
Set objZelle = Cells.Find(What:=b, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False)
If objZelle Is Nothing Then
MsgBox "Wagen Nr. nicht vorhanden !!"
Else
Application.EnableEvents = False
objZelle.Activate
Set LastAuswahl = objZelle 'Zelle merken
oldFarbe = objZelle.Interior.ColorIndex 'Farbe Merken
objZelle.Interior.ColorIndex = 6 'gelb
Application.EnableEvents = True
'Range("P104").Value = b
' TextBox1.Value = ""
End If
Exit Sub
ende:
'TextBox1.Value = ""
End If
End If
End Sub
Private Sub Worksheet_Deactivate()
If Not LastAuswahl Is Nothing Then
LastAuswahl.Interior.ColorIndex = oldFarbe
Set LastAuswahl = Nothing
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not LastAuswahl Is Nothing Then
If Target.Address LastAuswahl.Address Then
LastAuswahl.Interior.ColorIndex = oldFarbe
Set LastAuswahl = Nothing
End If
End If
End Sub