Aktualisierung Textboxen
17.11.2006 22:22:27
Markus
ich habe folgendes Excel-Problem:
Es gibt in meiner Excel-Mappe ein Tabellenblatt "Daten" und ein Tabellenblatt mit dem
Namen "Variablen".
Das Tabellenblatt "Daten" ist wie gefolgt aufgebaut:
In der Spalte A KANN ein Variablenname stehen z.B. Text1, Text2 ..... Text50
Steht z. B. in der Zelle A1 der Variablenname Text1 und der User klickt auf die Zelle D1,
so öffnet sich ein Formular "frmAuto" mit zwei Textboxen "txtModell", "txtSonstiges"
und dem Button "cmdHinterlegen".
Hier hat der User die Möglichkeit einen entsprechenden Text einzugeben.
Die Eingabe in beide Textboxen wird in das Tabellenblatt "Variablen" geschrieben.
Da jede Variable eine eigene Zeile hat, würde in diesem Beispiel von Text1, die Eingabe
txtModell in der Zelle B2 stehen und txtSonstiges in Zelle C2.
Problem:
Alle Textinhalte die in beiden Textboxen geschrieben werden, sind korrekt
im Tabellenblatt "Variablen" abspeichert.
Wenn der User nun jedoch seine Eingabe nochmals bearbeiten möchte und im Tabellenblatt
"Daten" erneut auf die Zelle D1 geht, öffnet sich zwar das Formular wieder, aber
die Textboxen sind nicht mit den abgelegten Infos befüllt.
Dies geschieht erst, wenn der User nochmals auf eine andere Zelle geht und anschließend
wieder auf die Zelle D1 zurück geht, dann sind die Textboxen entsprechend befüllt.
Dies wird z. Z. mit folgendem Skripten gemacht:
Skript Tabllenblatt "Daten":
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Zelle1 As Range
Dim Zelle2 As Range
If Target.Column > 3 And Selection.Rows.Count < 2 Then
'Text1
If Target.Offset(0, -3) = "Text1" Then
frmAuto.Show
If Not Sheets("Variablen").Range("B2") = "" Or Not Sheets("Variablen").Range("C2") = "" Then
Set Zelle1 = Sheets("Variablen").Range("B2")
Set Zelle2 = Sheets("Variablen").Range("C2")
frmAuto.txtModell = Zelle1
frmAuto.txtSonstiges = Zelle2
End If
End If
'Text2
If Target.Offset(0, -3) = "Text2" Then
frmAuto.Show
If Not Sheets("Variablen").Range("B3") = "" Or Not Sheets("Variablen").Range("C3") = "" Then
Set Zelle1 = Sheets("Variablen").Range("B3")
Set Zelle2 = Sheets("Variablen").Range("C3")
frmAuto.txtModell = Zelle1
frmAuto.txtSonstiges = Zelle2
End If
End If
'Dies ist für alle 50 Textvariablen so hinterlegt!
End If
End Sub
Skript Formular "frmAuto":
Private Sub cmdHinterlegen_Click()
Dim Modell As String
Dim Sonstiges As String
Modell = txtModell
Sonstiges = txtSonstiges
If ActiveCell.Offset(0, -3).Value = "Text1" Then
Sheets("Variablen").Range("B2") = Modell
Sheets("Variablen").Range("C2") = Sonstiges
End If
If ActiveCell.Offset(0, -3).Value = "Text2" Then
Sheets("Variablen").Range("B3") = Modell
Sheets("Variablen").Range("C3") = Sonstiges
End If
'Dies ist für alle 50 Textvariablen so hinterlegt!
End Sub
Bin für jede Hilfe dankbar!!!
Gruß,
Thomas