Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Userform Daten ändern

Forumthread: Userform Daten ändern

Userform Daten ändern
19.02.2020 13:15:35
philipp
Guten Morgen allerseits,
ich habe folgendes Makro:
Private Sub CommandButton4_Click()
Dim Antwort
Antwort = MsgBox("Möchten Sie die Daten in der Adressen aufnehmen ?   " _
& "  ", vbCritical + vbYesNo, _
"Hinweis Adressen-Tabelle, neue Kundenadresse  ")
If Antwort = vbNo Then
Exit Sub
Else
Sheets("Adressen").Select
Dim zz As String
zz = 1
Do While Cells(zz, 1)  ""                 ' Start der Schleife   1=Spalte A
zz = zz + 1                              ' Schleifenzähler um 1 erhöhen
Loop                                        ' Wendepunkt für Schleife
Cells(zz, 1).Select                      ' Zelle selektieren    1=in Spalte A anfang
Sheets("Adressen").Cells(ActiveCell.Row, 1) = TextBox1.Text           'Rg-Nummer
Sheets("Adressen").Cells(ActiveCell.Row, 2) = TextBox2.Text            'SBH Nr.
Sheets("Adressen").Cells(ActiveCell.Row, 3) = TextBox3.Text            'Anrede
Sheets("Adressen").Cells(ActiveCell.Row, 4) = TextBox4.Text            'A-Titel
Sheets("Adressen").Cells(ActiveCell.Row, 5) = TextBox5.Text            'Vorname
Sheets("Adressen").Cells(ActiveCell.Row, 6) = TextBox6.Text            'Name
Sheets("Adressen").Cells(ActiveCell.Row, 7) = TextBox7.Text            'NameZusatz
Sheets("Adressen").Cells(ActiveCell.Row, 8) = TextBox8.Text            'Strasse
Sheets("Adressen").Cells(ActiveCell.Row, 9) = TextBox9.Text            'Haus Nr.
Sheets("Adressen").Cells(ActiveCell.Row, 10) = TextBox10.Text          'Land
Sheets("Adressen").Cells(ActiveCell.Row, 11) = TextBox11.Text          'PLZ
Sheets("Adressen").Cells(ActiveCell.Row, 12) = TextBox12.Text          'Ort
Sheets("Adressen").Cells(ActiveCell.Row, 13) = TextBox13.Text          'Telef.-Vorwahl
Sheets("Adressen").Cells(ActiveCell.Row, 14) = TextBox14.Text          'Telefon Nummer
Sheets("Adressen").Cells(ActiveCell.Row, 15) = TextBox15.Text          'Handy Nummer
Sheets("Adressen").Cells(ActiveCell.Row, 16) = TextBox16.Text          'Fax  Nummer
Sheets("Adressen").Cells(ActiveCell.Row, 17) = TextBox17.Text          'E-Mail
Sheets("Adressen").Cells(ActiveCell.Row, 18) = Format(TextBox18.Text, ("dd.mm.yyyy")) ' _
Datum angelegt
Label135.Caption = Format(Worksheets("Adressen").Range("A1"), "#,###")
End If
End Sub
damit wird eine neue Adresse an der letzten Stelle angefügt, funktioniert einwandfrei !
Ich möchte jetzt aber eine bestehende Adresse, die ich NUR verändern möchte, in der vorhandenen Zeile speichern.
mfg philipp
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Habe Makro geändert klappt ! -)
19.02.2020 13:21:43
philipp
Hallo zusammen,
habe das bestehende Makro geändert:
Private Sub CommandButton8_Click()
Dim Antwort
Antwort = MsgBox("Möchten Sie die Daten ändern ?   " _
& "  ", vbCritical + vbYesNo, _
"Hinweis Adressen-Tabelle, geänderte Kundenadresse  ")
If Antwort = vbNo Then
Exit Sub
Else
Sheets("Adressen").Select
Sheets("Adressen").Cells(ActiveCell.Row, 1) = TextBox1.Text           'Rg-Nummer
Sheets("Adressen").Cells(ActiveCell.Row, 2) = TextBox2.Text            'SBH Nr.
Sheets("Adressen").Cells(ActiveCell.Row, 3) = TextBox3.Text            'Anrede
Sheets("Adressen").Cells(ActiveCell.Row, 4) = TextBox4.Text            'A-Titel
Sheets("Adressen").Cells(ActiveCell.Row, 5) = TextBox5.Text            'Vorname
Sheets("Adressen").Cells(ActiveCell.Row, 6) = TextBox6.Text            'Name
Sheets("Adressen").Cells(ActiveCell.Row, 7) = TextBox7.Text            'NameZusatz
Sheets("Adressen").Cells(ActiveCell.Row, 8) = TextBox8.Text            'Strasse
Sheets("Adressen").Cells(ActiveCell.Row, 9) = TextBox9.Text            'Haus Nr.
Sheets("Adressen").Cells(ActiveCell.Row, 10) = TextBox10.Text          'Land
Sheets("Adressen").Cells(ActiveCell.Row, 11) = TextBox11.Text          'PLZ
Sheets("Adressen").Cells(ActiveCell.Row, 12) = TextBox12.Text          'Ort
Sheets("Adressen").Cells(ActiveCell.Row, 13) = TextBox13.Text          'Telef.-Vorwahl
Sheets("Adressen").Cells(ActiveCell.Row, 14) = TextBox14.Text          'Telefon Nummer
Sheets("Adressen").Cells(ActiveCell.Row, 15) = TextBox15.Text          'Handy Nummer
Sheets("Adressen").Cells(ActiveCell.Row, 16) = TextBox16.Text          'Fax  Nummer
Sheets("Adressen").Cells(ActiveCell.Row, 17) = TextBox17.Text          'E-Mail
Sheets("Adressen").Cells(ActiveCell.Row, 18) = Format(TextBox18.Text, ("dd.mm.yyyy")) ' _
Datum angelegt
Label135.Caption = Format(Worksheets("Adressen").Range("A1"), "#,###")
End If
End Sub
einwandfrei !
mfg
philipp
Anzeige
AW: Habe Makro geändert klappt ! -)
19.02.2020 13:55:06
MCO
Hallo Philipp!
Da kriegt man ja AUGENKREBS! Aber das ist nun mal das Ergebnis aus dem Recorder.
Beschäftige dich mal mit dem Thema "Schleife".
Deinen Code hab ich mal modifiziert...
Leider kann ich es nicht testen, da ich das Formular nicht hab.
Die Felder aus dem Formular via Schleife anzusprechen hab ich hierher:
https://www.herber.de/forum/archiv/1260to1264/1261157_Textfelder_in_UserForm_mit_Schleife_fuellen.html
Die Msgbox hab ich ein Fragezeichen reingemacht und die überflüssigen und teilweise nochmal verknüpften Leerzeichen entfernt.
Private Sub CommandButton8_Click()
Dim Antwort
Dim i As Long
Antwort = MsgBox("Möchten Sie die Daten ändern?", vbQuestion + vbYesNo, _
"Hinweis Adressen-Tabelle, geänderte Kundenadresse")
If Antwort  vbYes Then Exit Sub
With Sheets("Adressen")
.Select
For i = 1 To 17
.Cells(ActiveCell.Row, 1) = Controls("TextBox" & i).text
Next i
'bei 18 ist das format anders, daher extrazeile
.Cells(ActiveCell.Row, 18) = Format(TextBox18.text, ("dd.mm.yyyy")) ' Datum angelegt
Label135.Caption = Format(.Range("A1"), "#,###")
End With
End Sub
Viel Erfolg!
Gruß, MCO
Anzeige
AW: Habe Makro geändert klappt ! -)
19.02.2020 13:55:07
MCO
Hallo Philipp!
Da kriegt man ja AUGENKREBS! Aber das ist nun mal das Ergebnis aus dem Recorder.
Beschäftige dich mal mit dem Thema "Schleife".
Deinen Code hab ich mal modifiziert...
Leider kann ich es nicht testen, da ich das Formular nicht hab.
Die Felder aus dem Formular via Schleife anzusprechen hab ich hierher:
https://www.herber.de/forum/archiv/1260to1264/1261157_Textfelder_in_UserForm_mit_Schleife_fuellen.html
Die Msgbox hab ich ein Fragezeichen reingemacht und die überflüssigen und teilweise nochmal verknüpften Leerzeichen entfernt.
Private Sub CommandButton8_Click()
Dim Antwort
Dim i As Long
Antwort = MsgBox("Möchten Sie die Daten ändern?", vbQuestion + vbYesNo, _
"Hinweis Adressen-Tabelle, geänderte Kundenadresse")
If Antwort  vbYes Then Exit Sub
With Sheets("Adressen")
.Select
For i = 1 To 17
.Cells(ActiveCell.Row, 1) = Controls("TextBox" & i).text
Next i
'bei 18 ist das format anders, daher extrazeile
.Cells(ActiveCell.Row, 18) = Format(TextBox18.text, ("dd.mm.yyyy")) ' Datum angelegt
Label135.Caption = Format(.Range("A1"), "#,###")
End With
End Sub
Viel Erfolg!
Gruß, MCO
Anzeige
Hallo MCO , leider
19.02.2020 15:32:38
philipp
Hallo sehr nett,
das Du das kürzer machst ok aber z.B. der Kundenname wird nicht geändert.
mfg
philipp
AW: Hallo MCO , leider
19.02.2020 15:39:24
philipp
Hallo MCO,
es wird nichts in der Tabelle geändert nur die lf.Nr also TB 1
wird gelöscht .
gruß
philipp
AW: Hallo MCO , leider
20.02.2020 00:58:00
Werner
Hallo,
wozu die ganze Selektiererei.
Und wenn du mit der aktiven Zelle arbeitest, dann ist das With - End With auch überflüssig, denn die aktive Zelle kann immer nur im aktiven Blatt sein.
Aber der Fehler ist hier zu suchen:
Cells(ActiveCell.Row, 1)
Da gehört die Laufvariable i rein und nicht eine 1
Private Sub CommandButton8_Click()
Dim Antwort As Variant, i As Long
Antwort = MsgBox("Möchten Sie die Daten ändern?", vbQuestion + vbYesNo, _
"Hinweis Adressen-Tabelle, geänderte Kundenadresse")
If Antwort  vbYes Then Exit Sub
For i = 1 To 17
Cells(ActiveCell.Row, i) = Controls("TextBox" & i).Text
Next i
Cells(ActiveCell.Row, 18) = CDate(TextBox18)
Label135.Caption = Format(.Range("A1"), "#,###")
End Sub
Und mit
 Sheets("Adressen").Cells(ActiveCell.Row, 18) = Format(TextBox18.Text, ("dd.mm.yyyy")) 

schreibst du einen Text in die Zelle, der nur wie ein Datum aussieht.
Gruß Werner
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18