ich bin neu in der Welt rund um VBA und muss am Dienstag mein VBA-Projekt in der Uni vorstellen.
Ja das heute Sonntag ist und übermorgen Dienstag, das weiß ich, ich wende mich an euch da ich nach nun 2 komplette Tagen keine Lösung für mein Problem im Netz finde geschweige es mit selber probieren hin bekomme.
Zu mein Problem:
Ich habe eine UserForm, die wenn ich ein OptionButton betätige mir Werte in einer ComboBox anzeigt und nach der Auswahl die Werte in drei Textfelder geschrieben werden.
Diese sollen nun bearbeitet werden und beim betätigen des CommandButton in der selben Zelle gespeichert werden, wo er diese her hat.
Das er mir neue Werte Speichert in die nächste freie Zeile, hab ich und funktioniert, nur beim Bearbeiten von bestehenden Werten in die dazugehörige Zelle zu speichern bekomme ich einfach nicht hin.
Code Werte einlesen in der UserForm
Private Sub optPerEdit_Click()
Dim ctl As Control
Me.txtName.Enabled = False
Me.cboPerEdit.Enabled = True
Me.cboKfzEdit.Enabled = False
Me.cboKfzEdit.ListIndex = -1
For Each ctl In Me.Controls
If TypeName(ctl) = "TextBox" Then
ctl.Text = ""
End If
If TypeName(ctl) = "CheckBox" Then
ctl = False
End If
Next ctl
End Sub
Private Sub cboPerEdit_Click()
Me.txtName.Enabled = True
Me.txtName.SetFocus
With Me.cboPerEdit
If .ListIndex = -1 Then
Me.txtName.Value = ""
Me.txtGeb.Value = ""
Me.txtEintritt.Value = ""
Else
Me.txtName.Value = Worksheets("Personal").Range("B5").Offset(.ListIndex, 0).Value
Me.txtGeb.Value = Worksheets("Personal").Range("C5").Offset(.ListIndex, 0).Value
Me.txtEintritt.Value = Worksheets("Personal").Range("D5").Offset(.ListIndex, 0). _
Value
End If
End With
End Sub
Code wo gespeichert wird
Private Sub cmdSpeichern_Click()
Dim Zeile As Integer, ctl As Control
With Sheets("Personal")
Zeile = 5
'soll speichern in de Zellen, wo der eingelesene Wert aus cboPerEdit_Click her ist
If optPerEdit.Value = True Then
While .Cells(Zeile, 2).Value ""
Zeile = Zeile + 1
Wend
.Unprotect
.Cells(Zeile, 2).Value = Me.txtName.Text
.Cells(Zeile, 3).Value = Me.txtGeb.Text
.Cells(Zeile, 4).Value = Me.txtEintritt.Text
If chkBERAusweis.Value = True Then
.Cells(Zeile, 5) = "BER"
End If
If chkBERFührerschein.Value = True Then
.Cells(Zeile, 5) = "BER/F"
End If
'.Protect
End If
End With
For Each ctl In Me.Controls
If TypeName(ctl) = "TextBox" Then
ctl.Text = ""
End If
If TypeName(ctl) = "CheckBox" Then
ctl = False
End If
Next ctl
End Sub
Ich benötige einfach eine Lösung um die Werte aus dem Textfeld dahin zu speichern wo sie her sind. Quasi überschreiben.