Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1416to1420
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
VBA Eingabemaske - Daten speichern
07.04.2015 16:19:26
Kathi
Es ist sicherlich so banal, doch ich komm seit Stunden nicht auf die Lösung. Es ist das erste Mal, seit 3 Jahren, dass ich wieder mit VBA arbeite.
Ich habe eine VBA Eingabemaske in die diverse Sparformen eingetragen werden. Wenn ich auf den Button "Speichern" klicke, möchte ich, dass die Daten in das Tabellenblatt gespeichert werden und zwar in die nächste freie Zeile. Und das ist mein Problem.
Mein Code:
Public Sub Speichern()
Dim xZeile As Long
xZeile = 2
Do While Trim(CStr(Tabelle1.Cells(xZeile, 1).Value))  ""
xZeile = xZeile + 1
Loop
Cells(xZeile, 1) = TextBox4
Cells(xZeile, 3) = TextBox1
Cells(xZeile, 4) = TextBox2
Cells(xZeile, 5) = TextBox3
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
Columns("C:E").Select
Dim Spalte As Range
On Error Resume Next
For Each Spalte In Selection.Columns
Columns(Spalte.Column).TextToColumns
Next
End Sub

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Eingabemaske - Daten speichern
07.04.2015 16:34:15
UweD
Hallo
anstelle von
xZeile = 2
Do While Trim(CStr(Tabelle1.Cells(xZeile, 1).Value))  ""
xZeile = xZeile + 1
Loop
das hier.
    xZeile = Application.Max(Sheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row, 2)
Gruß UweD

AW: VBA Eingabemaske - Daten speichern
07.04.2015 16:41:51
Kathi
Da passiert leider gar nix ... also es speichert keine Werte im Tabellenblatt.

bei mir klappt Dein Code ...
07.04.2015 16:44:16
Matthias
Hallo
Bei mir klappt Dein Code
Warum lädst Du denn nicht eine Bsp.Mappe hoch
Dann kann man Dir schneller helfen.
Gruß Matthias

AW: bei mir klappt Dein Code ...
07.04.2015 16:53:16
UweD
Ich dachte es geht dir um die Erste freie Zeile....
Private Sub CommandButton1_Click()
Dim xZeile As Long
Dim Spalte As Range
On Error Resume Next
xZeile = Application.Max(Sheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row, 2)
With Sheets("Tabelle1")
.Cells(xZeile, 1) = UserForm1.TextBox4
.Cells(xZeile, 3) = UserForm1.TextBox1
.Cells(xZeile, 4) = UserForm1.TextBox2
.Cells(xZeile, 5) = UserForm1.TextBox3
UserForm1.TextBox1 = ""
UserForm1.TextBox2 = ""
UserForm1.TextBox3 = ""
UserForm1.TextBox4 = ""
For Each Spalte In .Columns("C:E").Columns
.Columns(Spalte.Column).TextToColumns
Next
End With
End Sub

Mir ist aber nicht klar, was du mit dem unteren Teil (For Each...) bezweckst
Gruß UweD

Anzeige
AW: bei mir klappt Dein Code ...
07.04.2015 16:59:42
Kathi
Hallo Matthias, kann es leider nicht hochladen, ist zu groß :( aber ich versuch es weiter.
Hallo Uwe, ich möchte, dass man Daten in eine Eingabemaske eingibt, die dann durch "Speichern" in dem Tabellenblatt gespeichert werden. Dazu muss ich ja die erste = nächste leere Zeile finden und in diese soll es dann eingetragen werden. Aktuell trägt es immer in die gleiche Zeile ein, also überschreibt die letzte Eingabe.
Berechtigter Einwand (For each..) da hab ich scheinbar nur herumprobiert und vergessen zu löschen. *oops*

AW: VBA Eingabemaske - Daten speichern
07.04.2015 17:02:17
fcs
Hallo Kathi,
im Prinzip sollte die Suche nach der 1. freien Zeile funktionieren.
Nummerische Eingaben in Textboxen sollte man vor dem Eintragen in eine Zelle aufbereiten und nichtt durch den Trick? (Text in Spalten).
Du muss natürlich auf deiner Userform eine Schaltfläche haben, die das Makro "Speichern" startet wenn man darauf klickt.
Gruß
Franz
Private Sub CommandButton1_Click()
Call Speichern
End Sub
Public Sub Speichern()
Dim xZeile As Long
xZeile = 2
With Tabelle1 'Codename des Tabellenblatts in das Werte eingetragen werden.
Do While Trim(CStr(.Cells(xZeile, 1).Value))  ""
xZeile = xZeile + 1
Loop
.Cells(xZeile, 1) = TextBox4
If TextBox1.Value = "" Then
.Cells(xZeile, 3).ClearContents
ElseIf IsNumeric(TextBox1.Value) Then
.Cells(xZeile, 3) = CDbl(TextBox1.Value)
Else
.Cells(xZeile, 3) = TextBox1.Value
End If
If TextBox2.Value = "" Then
.Cells(xZeile, 4).ClearContents
ElseIf IsNumeric(TextBox2.Value) Then
.Cells(xZeile, 4) = CDbl(TextBox2.Value)
Else
.Cells(xZeile, 4) = TextBox2.Value
End If
If TextBox3.Value = "" Then
.Cells(xZeile, 5).ClearContents
ElseIf IsNumeric(TextBox3.Value) Then
.Cells(xZeile, 5) = CDbl(TextBox3.Value)
Else
.Cells(xZeile, 5) = TextBox3.Value
End If
End With
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
End Sub

Anzeige
AW: VBA Eingabemaske - Daten speichern
07.04.2015 17:05:36
Kathi
Danke Franz, werde es gleich testen.

AW: VBA Eingabemaske - Daten speichern
07.04.2015 17:07:13
Kathi
Userbild
Option Explicit
Public Sub Workbook_Open()
UserForm1.Show
End Sub

Private Sub ComboBox1_Change()
TextBox2.Text = Worksheets("Daten").Cells(ComboBox1.ListIndex + 1, 2)
End Sub

Public Sub Speichern()
Dim xZeile As Long
xZeile = Application.Max(Sheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row, 2)
Cells(xZeile, 1) = TextBox4
Cells(xZeile, 3) = TextBox1
Cells(xZeile, 4) = TextBox2
Cells(xZeile, 5) = TextBox3
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
Columns("C:E").Select
Dim Spalte As Range
On Error Resume Next
For Each Spalte In Selection.Columns
Columns(Spalte.Column).TextToColumns
Next
End Sub
Private Sub CommandButton3_Click()
ActiveWorkbook.Close
End Sub
Private Sub TextBox1_Change()
If TextBox1  "" And IsNumeric(TextBox1) Then
If TextBox2  "" Then
TextBox3 = CDbl(TextBox1) * CDbl(TextBox2)
Else
TextBox3 = ""
End If
Else
If TextBox2  "" Then
TextBox3 = CDbl(TextBox2)
Else
TextBox3 = ""
End If
End If
End Sub

Private Sub TextBox3_Change()
End Sub

Private Sub UserForm_Initialize()
Dim r As Integer
Dim i As Integer
With Sheets("Daten")
r = .Cells(Rows.Count, 1).End(xlUp).Row
ComboBox1.RowSource = .Range("A1:A" & r).Address(External:=True)
End With
TextBox4 = Date
End Sub
Private Sub ComboBox1_Click()
Sheets(ComboBox1.ListIndex + 1).Activate
End Sub

Anzeige
AW: VBA Eingabemaske - Daten speichern
07.04.2015 17:09:13
Kathi
Lieber Franz, da passiert leider auch nichts bei mir. Bekomm zwar auch eine Fehlermeldung, aber es trägt nichts in das Tabellenblatt ein.

AW: hier Dein funktionierendes Bsp.
07.04.2015 17:38:17
Kathi
Oh mein Gott!! :))
Danke!!! Vielen lieben Dank!! *luftsprung*

AW: hier Dein funktionierendes Bsp.
07.04.2015 17:45:12
Kathi
Jetzt hab ich mich zu früh gefreut :-/
Die ersten beiden Eingaben funktionieren und dann bleibt es in der zweiten Zeile hängen.

Anzeige
AW: hier Dein funktionierendes Bsp.
07.04.2015 17:49:09
Kathi
Ahh war mein Fehler. Wenn die Spalte A leer ist, dann ist die Zeile leer. Da muss ich noch was einbauen. Aber vielen lieben Dank nocheinmal :)

ja logo,Textbox4 leer ->"A" auch leer ;-) owT
07.04.2015 17:57:11
Matthias

So logo ist das nicht ;-p
07.04.2015 18:43:30
Kathi
Danke nochmal!

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige