Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1568to1572
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
VBA Wert einlesen, ändern und speichern
09.07.2017 15:39:15
Snickers
Hallo,
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.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Wert einlesen, ändern und speichern
09.07.2017 15:43:06
Hajo_Zi
nur wenige schauen auf Deinen Rechner und sehen die Datei.
Ich möchte gerne den Fehler im Original sehen.
Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten anonymisieren bzw. pseudonymisieren.
ersetze Zeile = 5 durch die aktuelle Zeile.

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben, mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Anzeige
AW: VBA Wert einlesen, ändern und speichern
09.07.2017 16:14:17
Snickers
Danke Hajo_Zi für dein Hinweis,
https://www.herber.de/bbs/user/114781.zip
Es betrifft das Arbeitsblatt Personal mit der UserForm frmPerNeu
Es liegt auch kein Fehler vor, ich brauche lediglich eine Lösung das er das geänderte Überschreibt und nicht eine neue Zeile sucht.
AW: VBA Wert einlesen, ändern und speichern
09.07.2017 16:19:58
Hajo_Zi
Zeile = cboPerEdit.ListIndex + 5

AW: VBA Wert einlesen, ändern und speichern
09.07.2017 16:49:53
Snickers
Super Hajo_Zi, hat geklappt. Danke :)
Jetzt werde ich vielleicht ja doch noch einigermaßen fertig bis Dienstag mit dem Projekt.
So hab ich es geändert und es klappt.
            If optPerEdit.Value = True Then
.Unprotect
.Cells(cboPerEdit.ListIndex + 5, 2).Value = Me.txtName.Text
.Cells(cboPerEdit.ListIndex + 5, 3).Value = Me.txtGeb.Text
.Cells(cboPerEdit.ListIndex + 5, 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
Musste zwar mein Format im Textfeld_Change ändern, aber so kann ich leben, danke nochmal.
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige