Registriert seit: 12.06.2019
Version(en): Microsoft Office Professionak Plus 2016
08.08.2019, 09:04
(Dieser Beitrag wurde zuletzt bearbeitet: 11.09.2019, 14:40 von Glausius.)
Guten Morgen,
ich bin gerade dabei eine VBA Datenbank zu erstellen & komme aber so nicht ganz weiter.
Problemstellung:
Ich habe ein user form erstellt, das 6 Textfelder enthält. Den Inhalt dieser Textfelder möchte ich mittels Klick auf "cmdSpeichern" in die jeweils korrekte Spalte in die nächste freie Zelle des Tabellenreiters "Daten" speichern. Hierbei soll der Inhalt jedes Textfeldes in eine eigens definierte Spalte gespeichert werden.
Wie stelle ich das an?
Danke Euch
VG
SteBen
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
08.08.2019, 09:45
(Dieser Beitrag wurde zuletzt bearbeitet: 08.08.2019, 09:45 von Kuwer.)
Hallo Steben,
z.B. so:
Private Sub cmdSpeichern_Click()
Dim lngNextRow As Long
Dim oWs As Worksheet
Set oWs = Worksheets("Daten")
With oWs.Range("B2").CurrentRegion
lngNextRow = .Rows.Count + .Row
End With
oWs.Cells(lngNextRow, 3).Value = TextBox1
oWs.Cells(lngNextRow, 6).Value = TextBox2
oWs.Cells(lngNextRow, 5).Value = TextBox3
oWs.Cells(lngNextRow, 1).Value = TextBox4
oWs.Cells(lngNextRow, 2).Value = TextBox5
oWs.Cells(lngNextRow, 4).Value = TextBox6
End Sub
Gruß Uwe
Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:1 Nutzer sagt Danke an Kuwer für diesen Beitrag 28
• SteBen
Registriert seit: 12.06.2019
Version(en): Microsoft Office Professionak Plus 2016
08.08.2019, 10:00
(Dieser Beitrag wurde zuletzt bearbeitet: 08.08.2019, 10:11 von SteBen.)
Hi Uwe,
danke - klappt super!
Nur noch eine Frage, wenn ich noch weitere Textfelder mit ins frm aufnehme, wie kann ich diese dann so in den Code einbauen, dass die Daten auch gespeichert werden?
Danke & Grüße
SteBen
Hab's danke :)
Registriert seit: 12.06.2019
Version(en): Microsoft Office Professionak Plus 2016
10.09.2019, 14:12
(Dieser Beitrag wurde zuletzt bearbeitet: 10.09.2019, 14:12 von SteBen.)
Hallo zusammen,
jetzt habe ich den gleichen Fall erneut & wollte es nach dem selben Schema machen, nur leider klappt es nicht. Auch meine u.g. Methode führt leider nicht zum Erfolg.
Hat jemand eine Idee, was ich falsch mache? Ich möchte, dass die Werte jweils in die nächste freie Zeile geschrireben werden. Es gibt jedoch noch mehr als nur den 'Produktnamen, alle sind aber vom Aufbau identisch, deshlab habe ich sie mal aus dem Code gelöscht, damit es übersichtlich bleibt.
Code:
Sub Schaltfläche1_Klicken()
'Erste freie Zeile finden
Dim last As Integer
last = Sheets("Datenbank").Cells(Rows.Count, 1).End(xlUp).Row + 1
'Produktname
Cells(last, 1) = Sheets("Eingabe").Range("D4").Value
End Sub
Danke Euch
Registriert seit: 17.04.2019
Version(en): M$ 365 AfE v2009 / Office2013
10.09.2019, 14:20
(Dieser Beitrag wurde zuletzt bearbeitet: 10.09.2019, 14:21 von Mase.)
Code:
Sub Schaltfläche1_Klicken()
'Erste freie Zeile finden
Dim last As Long
last = Worksheets("Datenbank").Cells(Rows.Count, 1).End(xlUp).Row + 1
'Produktname
Worksheets("Datenbank").Cells(last, 1).Value = Worksheets("Eingabe").Range("D4").Value
End Sub
Gibt es die Arbeitsblätter Datenbank und Eingabe?
Registriert seit: 12.06.2019
Version(en): Microsoft Office Professionak Plus 2016
Hi Marco,
danke. Ja, die Arebeitsblätter gibt es. Leider funktioniert der Code nicht.
Code:
Sub Schaltfläche1_Klicken()
'Erste freie Zeile finden
Dim last As Long
last = Worksheets("Datenbank").Cells(Rows.Count, 1).End(xlUp).Row + 1
'Produktname
Worksheets("Datenbank").Cells(last, 1).Value = Worksheets("Eingabe").Range("D4").Value
'Materialkosten
Worksheets("Datenbank").Cells(last, 3).Value = Worksheets("Eingabe").Range("D12").Value
'Fertigungskosten
End Sub
Liegt es evtl. daran, dass der Ergebnisbereich in Reiter Datenbank als Tabelle formatiert ist?
Registriert seit: 17.04.2019
Version(en): M$ 365 AfE v2009 / Office2013
10.09.2019, 14:44
(Dieser Beitrag wurde zuletzt bearbeitet: 10.09.2019, 14:44 von Mase.)
Wie lautet denn die Fehlermeldung?
Verwende mal diesen Code und poste was die MsgBox ausgegeben hat...
Code:
Sub Schaltfläche1_Klicken()
On error goto err
'Erste freie Zeile finden
Dim last As Long
last = Worksheets("Datenbank").Cells(Rows.Count, 1).End(xlUp).Row + 1
'Produktname
Worksheets("Datenbank").Cells(last, 1).Value = Worksheets("Eingabe").Range("D4").Value
'Materialkosten
Worksheets("Datenbank").Cells(last, 3).Value = Worksheets("Eingabe").Range("D12").Value
'Fertigungskosten
err:
if err.number<> 0 Then
Msgbox err.number & vbcrlf & err.description
End if
End Sub
Registriert seit: 12.06.2019
Version(en): Microsoft Office Professionak Plus 2016
Es gibt keine Fehlermeldung, es passiert einfach nichts.
Habe Deinen Code kopiert & es gibt auch keine MsgBox...
Registriert seit: 17.04.2019
Version(en): M$ 365 AfE v2009 / Office2013
10.09.2019, 15:06
(Dieser Beitrag wurde zuletzt bearbeitet: 10.09.2019, 15:06 von Mase.)
Geh mal im VBE in diese Zeile
Code:
Sub Schaltfläche1_Klicken()
Und drücke F9.
Wenn Du jetzt auf die Schaltfläche klickst, sollte exakt diese Zeile gelb werden.
Ist das denn so?
Registriert seit: 12.06.2019
Version(en): Microsoft Office Professionak Plus 2016
11.09.2019, 06:54
(Dieser Beitrag wurde zuletzt bearbeitet: 11.09.2019, 06:54 von SteBen.)
Moin,
Ja, Zeile wird gelb & jetzt habe ich eine Fehlermeldung bekommen.
"Code kann im Haltemodus nicht ausgeführt werden."