Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
364to368
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
364to368
364to368
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Einbettung von TextBox-Eingaben in eine Schleife

Einbettung von TextBox-Eingaben in eine Schleife
19.01.2004 14:17:50
UnitedArtist
Hallo,
ich habe eine UserForm erstellt. In dieser befindet sich ein MULTIPAGE mit sechs TEXTBOXES. Nachdem der benutzer in den TextBoxes Werte eingeragen hat, soll der Benutzer einen CommandButton clicken und der Datensatz (bestehend aus den Inhalten der sechs TextBoxes) wird gespeichert und in ein Excel-Arbeitsblatt übertragen. Dieses Procedere soll sich solange wiederholen bis der Benutzer einen zweiten CommandButton clickt.
Ich habe einen Teil meines ProgrammCodes aufgeführt. Dieser funktioniert jedoch nur für einen Datensatz. Die Inhalte der Textboxes sollen bei erneutem Schleifendurchlauf gelöscht werden.
' Variablendeklaration
Dim QUANTITY, ITEM, ZAEHLER, ZAEHLER2 As Integer
Dim PN As Long
Dim UNITPRICE As Variant
Dim DESCRIPTION, LOTID, BESCHREIBUNG, BESCHREIBUNGC As String
ZAEHLER = 0
ITEM = 1
ZAHELER2 = 1
' Eigentliche Schleife
Label27 = ZAEHLER2
' Löschen der Eingabefelder
Dim Tb As Integer
On Error Resume Next
For Tb = 5 To 12
Me.Controls("TextBox" & Tb) = ""
Next Tb
' Inhalte der TextBoxes werden den Variablen zugeordnet
PN = TextBox11
LOTID = TextBox10
BESCHREIBUNG = TextBox12
QUANTITY = TextBox6
UNITPRICE = TextBox7
BESCHREIBUNGC = TextBox5
' Positionierung in EXCEL
Cells(42 + ZAEHLER, 2) = ITEM
Cells(42 + ZAEHLER, 4) = PN
Cells(42 + ZAEHLER, 6) = LOTID
Cells(42 + ZAEHLER, 8) = BESCHREIBUNGSMI
Cells(42 + ZAEHLER, 12) = QUANTITY
Cells(42 + ZAEHLER, 14) = UNITPRICE
Cells(43 + ZAEHLER, 6) = BESCHREIBUNGC
ITEM = ITEM + 1
ZAEHLER = ZAEHLER + 3
ZAEHLER2 = ZAEHLER2 + 1
End Sub
Vielen Dank...

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Einbettung von TextBox-Eingaben in eine Schleife
19.01.2004 15:15:51
Michael Scheffler
Hi,
als Excel-Profi mit VBA-Gut solltest Du das doch hinbekommen...
Gruß
Micha
AW: Einbettung von TextBox-Eingaben in eine Schleife
19.01.2004 15:18:10
Michael Scheffler
Hi,
außerdem sind in diesem Forum Doppelpostings und Nicknames unerwünscht!
Gruß
Micha
AW: Einbettung von TextBox-Eingaben in eine Schleife
19.01.2004 15:44:49
Jan P
Vielen Dank für die umfangreiche Hilfe..! Wenn ich das selbst könnte, würde ich das schon programmiert haben und könnte die Zeit sinnvoller nutzen. Leider gibt es beim Kenntnisstand nur 3 Auswahlmöglichkeiten und ich sehe mich weder als Laie noch als Profi was VBA angeht. Bei Excel schätze ich meinen Kenntnisstand deutlich höher ein, aber das Wissen hat ja mit VBA nichts zu tun.
Das mit dem NickName wurde mir breits mitgeteilt und habe ich auch schon berücksichtigt..
Ansosnten haben mir Deine Tipps und sicher auch den übrigen Forum-Teilnehmern nicht wirklich weitergeholfen....
Einen schönen Tag noch..
Jan
Anzeige
AW: Einbettung von TextBox-Eingaben in eine Schleife
19.01.2004 15:59:41
Michael Scheffler
Hi,
warum beleidigt - Du hast gegen die Regeln verstoßen, nicht ich!
Gruß
Micha
AW: Einbettung von TextBox-Eingaben in eine Schleife
19.01.2004 16:19:31
Jürgen Schaetzke
Hallo Jan,
Option Explicit
'Im Command1 Click Ereignis würde ich Zaehler2 nur hochzählen und Zaehler berechnen:
'Definition ausserhalb der Subs
Dim QUANTITY, ITEM, ZAEHLER, ZAEHLER2 As Integer
Dim PN As Long
Dim UNITPRICE As Variant
Dim DESCRIPTION, LOTID, BESCHREIBUNG, BESCHREIBUNGC As String

Private Sub UserForm_Initialize()
ITEM = 1
End Sub



Private Sub CommandButton1_Click()
ZAEHLER2 = ZAEHLER2 + 1
' Löschen der Eingabefelder
Dim Tb As Integer
On Error Resume Next
For Tb = 5 To 12
Me.Controls("TextBox" & Tb) = ""
Next Tb
Label27 = ZAEHLER2
' Inhalte der TextBoxes werden den Variablen zugeordnet
PN = TextBox11
LOTID = TextBox10
BESCHREIBUNG = TextBox12
QUANTITY = TextBox6
UNITPRICE = TextBox7
BESCHREIBUNGC = TextBox5
' Positionierung in EXCEL
ZAEHLER = (ZAEHLER2 - 1) * 3
Cells(42 + ZAEHLER, 2) = ITEM
Cells(42 + ZAEHLER, 4) = PN
Cells(42 + ZAEHLER, 6) = LOTID
Cells(42 + ZAEHLER, 8) = BESCHREIBUNGSMI
Cells(42 + ZAEHLER, 12) = QUANTITY
Cells(42 + ZAEHLER, 14) = UNITPRICE
Cells(43 + ZAEHLER, 6) = BESCHREIBUNGC
ITEM = ITEM + 1
End Sub


Private Sub CommandButton2_Click()
ITEM = 1
ZAEHLER2 = -1
End Sub


Ciao Jürgen
Anzeige
AW: Einbettung von TextBox-Eingaben in eine Schleife
19.01.2004 16:46:35
Jan P
Hallo Jürgen,
ich habe das programm Deinen Angaben entsprechend umgebaut.
Folgendes funktioniert: Beim Clicken des einen CommandButtons werden die TextBoxes gelöscht und man kann weitere Datensätze eingeben. Nur werden diese nicht in Excel übertragen - sprich in das Arbeitsblatt an sich. Es wird aber auch keine Fehlermeldung ausgeworfen.
Soweit ich den Code richtig verstanden habe, wird der Zähler jeweils um eins erhöht und das bei jedem Durchlauf (also das Ereignis Click beim CommandButton).
Desweiteren wird auch der Zähler beim Label27, der die Anzahl der Datensätze anzeigt nicht hochgezählt...
Wo habe ich den Fehler drin?
Anzeige
AW: Einbettung von TextBox-Eingaben in eine Schleife
19.01.2004 17:01:50
Jan P
Der neue Code:

Private Sub UserForm_Initialize()
' Variablendeklaration für das MultiPage
Dim ITEM, ZAEHLER, ZAEHLER2 As Integer
ITEM = 1
ZAEHLER2 = -1
End Sub


Private Sub CommandButtonADD_Click()
' Schleife für Erstellung der Rechnungszeilen
ZAEHLER2 = ZAEHLER2 + 1
Label27 = ZAEHLER2
' Inhalte der TextBoxes werden den Variablen zugeordnet
PN = TextBox11
LOTID = TextBox10
BESCHREIBUNG = TextBox12
QUANTITY = TextBox6
UNITPRICE = TextBox7
BESCHREIBUNGC = TextBox5
' Positionierung in EXCEL
ZAEHLER = (ZAEHLER2 - 1) * 3
Cells(42 + ZAEHLER, 2) = ITEM
Cells(42 + ZAEHLER, 4) = PN
Cells(42 + ZAEHLER, 6) = LOTID
Cells(42 + ZAEHLER, 8) = BESCHREIBUNG
Cells(42 + ZAEHLER, 12) = QUANTITY
Cells(42 + ZAEHLER, 14) = UNITPRICE
Cells(43 + ZAEHLER, 6) = BESCHREIBUNGC
ITEM = ITEM + 1
' Löschen der Eingabefelder
Dim Tb As Integer
On Error Resume Next
For Tb = 5 To 7
Me.Controls("TextBox" & Tb) = ""
Next Tb
For Tb = 10 To 12
Me.Controls("TextBox" & Tb) = ""
Next Tb
End Sub

Das Programm zeigt nun folgendes:
Eingabe in die 6 TextBoxes - dann Click CommandButton "ADD".
Der Zähler2 bzw. das Label27 zeigt nun den Wert: 1. (stimmt ja auch, da ein Datensatz).
Die TextBoxes werden gelleert und die entsprechenden Zellen in der Mappe gefüllt. Soweit, so gut. Beim erneuten Clicken auf "ADD", werden die TextBoxes geleert und die bereits gefüllten Zellen mit den neuen Eingaben überschrieben. Ich kann in dem Sub "ADD-Click" aber keinen Fehler erkennen. warum werden die Zellpositionen nicht hochgezählt..???
Vielen Dank für die erneute Hilfe...
Anzeige
AW: Einbettung von TextBox-Eingaben in eine Schlei
19.01.2004 18:43:45
Andi_H
Hi Jan,
wie wärs denn damit deine Variable ZAEHLER bei jedem ClickEreignis aus deinem Tabellenblatt auszulesen.
ZAEHLER = cells(65536,1).End(xlup).row +1
Gruß
Andi_H
AW: Einbettung von TextBox-Eingaben in eine Schlei
20.01.2004 10:15:23
Jan P
Hallo Andi,
gibt es da keine andere Möglichkeit?
Ich dachte, daß sich eine Variable (nennen wir sie X)sich bei jedem Click-Ereignis um 1 erhöht, wenn ich X=X+1 in das Sub schreibe.
Imgrunde genommen soll das kleine Sub nicts anderes leisten als:
Übertragen von Werten aus TextBoxes in verschiedene Zellpositionen. Das Ganze ist Teil einer Rechnung - ich kann also nicht mit einer For-Schleife arbeiten, da die Anzahl der Positionen (ITEM) vorher nicht bekannt und auch nicht jedesmal fix sind.
Mein Programm führt meine Vorstellungen teilweise ja auch schon aus, nur werden leider die TextBox-Eingaben nach Übertragen in die Zellen durch die neuen Werte überschreiben. Die neuen Werte sollen dann einfach drei Zeilen tiefer stehen.....
Gibt es da keine Möglichkeit? ich habe so den Verdacht, daß ich nicht mehr allzuweit von dem Ergebnis entfernt bin.... Momentan trete ich aber auf der Stelle...
Vielen Dank, Jan
Anzeige
AW: Einbettung von TextBox-Eingaben in eine Schlei
20.01.2004 13:01:32
Andi_H
Hi Jan,
eine Möglichkeit wär noch die Zeilennummer nach dem Clickereignis um x hochzuzählen,
diesen Wert in eine Zelle deiner Mappe zu schreiben und dann wieder auszulesen.
sheets("Tabelle2").cells(1,1) = x
x = sheets("Tabelle2").cells(1,1) + 1

Aber mal zurück zu meinem ersten Vorschlag.
ZAEHLER = cells(65536,1).End(xlup).row + 1
so gesehen macht ja diese Zeile nichts anderes als nach jedem Eintrag hochzählen, da sich ja das Ende der Tabelle nach jedem Eintrag ändert und dieses Ende auch wieder ausgelesen wird.

Gruß
Andi
AW: Einbettung von TextBox-Eingaben in eine Schlei
20.01.2004 13:09:37
Andi_H
gleich noch mal eine Frage.
Die Daten werden mittels Userform und Textbox eingetragen.
Du erhöhst den Zähler um x
Irgendwann wird doch die Userform wieder geschlossen, falls diese wieder angezeigt wird um nochmals daten einzutragen, woher weiß dein Code den Wert deines Zeilenzählers??
Dieser wird gelöscht wenn die Userform mit unload me geschlossen wird.
Anzeige
AW: Einbettung von TextBox-Eingaben in eine Schlei
20.01.2004 14:01:30
Jan P
Hallo Andi,
also - die UserForm läuft die ganze Zeit. Der Benutzer sieht die Excel-Arbeitsmappe nicht, d.h. die UserForm verdeckt die Arbeitsmappe.
Ich benötige den Zeilenzähler ja nur, um die Daten in die Arbeitsmappe eintragen zu lassen.
Ich habe mir das eigentlich gar nicht so kompliziert vorgestellt. Mit einer For-Next-Schleife wäre das vermutlich ganz einfach zu erledigen - paßt nur leider nicht zu meiner Anwendung. Ich muß den Zähler (er ist ja eigentlich kein Zeilenzähler, da ich nur Zeile 45, 48, 51 usw. beschreiben möchte) an das Click-Ereignis binden.
Dein Vorschlag: ZAEHLER = cells(65536,1).End(xlup).row + 1 - trägt doch auch etwas in die Tabelle ein - das ist natürlich auch nicht so gut, da ich dann da doch druckbare Zeichen drin habe....
Ich suche nach einer einfachen Möglichkeit, mit einem Zähler zu arbeiten, der an das Click-Ereignis gebunden ist. Der Rest des Subs läuft soweit gut... Nur wird halt immer die gleiche Zeile (hier: 42) gefüllt und mit dem letzteingegebenen Wert überschrieben... Vielleicht kann ich den Zähler auch an das ITEM binden, da ITEM eine Positionsnummer darstellt....???
Gruß Jan
Anzeige
AW: Einbettung von TextBox-Eingaben in eine Schlei
20.01.2004 16:45:29
Andi_H
kannst du die datei mal hochladen, ich blick irgendwie nicht mehr ganz durch.

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige