Clever-Excel-Forum

Normale Version: VBA - Inhalt Textfeld fortlaufend in definierte Spalte übertragen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
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
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
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 :)
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
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?
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?
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
Es gibt keine Fehlermeldung, es passiert einfach nichts. 

Habe Deinen Code kopiert & es gibt auch keine MsgBox...
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?
Moin,

Ja, Zeile wird gelb & jetzt habe ich eine Fehlermeldung bekommen.

"Code kann im Haltemodus nicht ausgeführt werden."
Seiten: 1 2