Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA - Inhalt Textfeld fortlaufend in definierte Spalte übertragen
#1
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
Antworten Top
#2
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:
  • SteBen
Antworten Top
#3
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 :)
Antworten Top
#4
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
Antworten Top
#5
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?
gruß
Marco
Antworten Top
#6
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?
Antworten Top
#7
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
gruß
Marco
Antworten Top
#8
Es gibt keine Fehlermeldung, es passiert einfach nichts. 

Habe Deinen Code kopiert & es gibt auch keine MsgBox...
Antworten Top
#9
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?
gruß
Marco
Antworten Top
#10
Moin,

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

"Code kann im Haltemodus nicht ausgeführt werden."
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste