Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1740to1744
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
Inhaltsverzeichnis

Userform Daten ändern

Userform Daten ändern
19.02.2020 12: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

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

Betreff
Datum
Anwender
Anzeige
Habe Makro geändert klappt ! -)
19.02.2020 12: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 12: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 12: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 14: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 14: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
19.02.2020 23: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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige