Aus UserForm Daten übernehmen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Aus UserForm Daten übernehmen
von: Michael
Geschrieben am: 23.04.2015 15:42:50

Hallo bräuchte mal eure Hilfe und zwar habe ich eine Tabelle in der Daten aus einer UserForm übernommen werden soll.
Habe die UserForm schon fertig mir fehlt nur noch der Befehl zur Übernahme und das er den nächsten Eintrag dann immer in die nächste Zeile setzt.
Textbox 1 Zeile A4
Textbox 2. Zeile C4
Textbox 3. Zeile D4
Textbox 4. Zeile E4
Textbox 5. Zeile F4
Textbox 6. Zeile G4
Textbox 7. Zeile H4
Textbox 8 Zeile I4
Textbox 9 Zeile K4
Gruß Michael
Ich hoffe ihr könnt mir helfen

Bild

Betrifft: AW: Aus UserForm Daten übernehmen
von: Michael (migre)
Geschrieben am: 23.04.2015 16:02:06
Hallo Michael!
Den Text einer TextBox kannst Du zB so in eine Zelle schreiben:
Range("A4").Value = Textbox1.Text
ODER
Cells(4,1).Value = Textbox1.Text
das er den nächsten Eintrag dann immer in die nächste Zeile setzt.
Das ist mir noch nicht ganz klar; was meinst Du damit? Dazu sind vermutlich ein paar mehr Infos zu der Wirkweise Deiner Userform im Zusammenspiel mit Deinem Tabellenblatt hilfreich.
LG
Michael

Bild

Betrifft: AW: Aus UserForm Daten übernehmen
von: Michael
Geschrieben am: 23.04.2015 16:51:29
Hallo Michael
Ies ist ein Tabellen Blatt mit dem Namen "Daten"
Und aus der UserForm mit Namen "Taktzeit" sollen die Daten aus den TextBoxen 1-9 in das Daten Blatt übernommen werden.
TextBox1 = Daten A4
Gruß Michael
Kann die Datei nicht hochladen da ich auf Arbeit bin

Bild

Betrifft: AW: Aus UserForm Daten übernehmen
von: Michael (migre)
Geschrieben am: 23.04.2015 17:29:55
Hi!
Also, wenn Du bspw. eine Schaltfläche (CommandButton) auf Deiner UserForm hast, kannst Du die jeweiligen Einträge der TextBoxen so in die betroffenen Zellen schreiben:

Private Sub CommandButton1_Click()
    Dim i As Byte
    'Textbox-Text in Zelle A4 schreiben
    Worksheets("Daten").Range("A4").Value = Me.TextBox1.Text
    
    'Textboxen-Text in Zellen C4:I4 schreiben
    For i = 2 To 8
        Worksheets("Daten").Cells(4, i + 1) = Me.Controls("Textbox" & i).Text
    Next i
    
    'Textbox-Text in Zelle K4 schreiben
    Worksheets("Daten").Range("K4").Value = Me.TextBox9.Text
End Sub
Das ist als Beispiel gedacht. Du kannst entweder ALLE Zellen direkt füllen (wie im o.a. Fall A4 bzw. K4) oder eben eine Schleife nutzen (wie alle anderen o.a. Fälle); durchgehende Schleife ist aber nicht möglich, da Du eben bestimmte Spalten "auslässt" (B, J).
Wenn Du keine Schaltfläche hast kannst Du auch aus einem "normalen" Makro (allgemeines Modul) den o.a. Code verwenden.
So hätte ich Dich verstanden... Oder meintest Du, Du hast nur eine TextBox und willst deren Wert zeilenweise an Zellen übergeben? Dazu wüsste ich aktuell nichts beizutragen...
Bin dann für heute auch raus - kann morgen wieder antworten.
LG
Michael

Bild

Betrifft: AW: Aus UserForm Daten übernehmen
von: Michael
Geschrieben am: 23.04.2015 17:54:14
Super Danke das mit der ersten Variante funktioniert nur macht er jetzt in der UserForm die TextBoxen nicht leer. Nach dem übertragen. Und wenn ich neue Faten eingebe trägt es immer in die erste Zeile ein also A4 . Und nimmt nicht die nächste freie.
Gruß Michael

Bild

Betrifft: AW: Aus UserForm Daten übernehmen
von: Michael (migre)
Geschrieben am: 23.04.2015 21:42:46
Hallo Michael!
Ahhh ;-), dann hab ich's doch verstanden. Dann so, inkl. jeweils nächster freier Zelle und Rücksetzen der Textboxen:

Private Sub CommandButton1_Click()
    
    Dim i As Byte 'Schleifenzähler
    
    'Textbox-Text in nächste freie Zelle in Spalte A schreiben
    Worksheets("Daten").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Value = Me.TextBox1.Text
    
    'Textbox-Text in nächste freie Zelle in Spalte C:I schreiben
    For i = 2 To 8
        Worksheets("Daten").Cells(Rows.Count, i + 1).End(xlUp).Offset(1, 0).Value = Me.Controls( _
"Textbox" & i).Text
    Next i
    
    'Textbox-Text in nächste freie Zelle in Spalte K schreiben
    Worksheets("Daten").Range("K" & Rows.Count).End(xlUp).Offset(1, 0).Value = Me.TextBox9.Text
    
    'Textboxen leeren
    For i = 1 To 9
        Me.Controls("Textbox" & i).Text = ""
    Next i
    
End Sub
Läuft's?
LG
Michael

Bild

Betrifft: AW: Aus UserForm Daten übernehmen
von: Michael
Geschrieben am: 23.04.2015 23:43:30
Hallo Michael
einiges übernimmt er aber nicht alles und die Userform Schließt auch nicht .
Hab mal die Datei hochgeladen vielleicht findest du den fehler.
https://www.herber.de/bbs/user/97277.xlsm
Danke schonmal
Gruß Michael

Bild

Betrifft: AW: Aus UserForm Daten übernehmen
von: Michael
Geschrieben am: 24.04.2015 00:00:42
Hallo Michael
es übernimmt jetzt alles nur die UserForm schließt nach dem drücken des Eingabe Buttons
super Arbeit danke dir
Gruß Michael

Bild

Betrifft: Nochmal sauber...
von: Michael (migre)
Geschrieben am: 24.04.2015 09:28:38
Hallo Michael!
Ich hatte mich nur auf das von Dir geschilderte Problem (TextBox-Werte in Zellen schreiben) bezogen; dass die UserForm danach zB schließen soll etc. hattest Du nicht angegeben.
Hab mir jetzt Deine Datei noch angesehen - Du hast in den Spalten A:B bzw. I:J in der Überschrift verbundene Zellen gesetzt - dadurch lief beim Makro noch etwas schief. Verbundene Zellen sind für solche Dinge gar nicht gut ;-). Aber nachdem ich nun Deine Datei gesehen habe, konnte ich etwas "aufräumen" und habe den Code noch gekürzt/optimiert bzw. Dir noch ein paar Dinge integriert:
- Die UserForm habe ich jetzt auf "ShowModal = False" gesetzt (siehe Eigenschaften UserForm). D.h. die Form bleibt geöffnet, auch nach Eingabe der Daten und Du kannst normal in der Tabelle weiterarbeiten.
- Geschlossen wird die UserForm nun entweder durch Klick auf "Abbrechen/Schließen" (habe ich umbenannt) bzw. auch durch Klicken auf das Schließkreuz "X" oben rechts.
- Durch Entfernen der verbundenen Zellen (die brauchst Du nicht, Du kannst ja Spalte A bzw. I jeweils nach der Breite der Inhalte ausrichten) ist jetzt ein vollständiger, schlanker Schleifendurchlauf möglich.
Hier die korrigierte Datei: https://www.herber.de/bbs/user/97284.xlsm
bzw. als Code:

Private Sub Abbrechen_Click()
    Unload Me 'UserForm aus Speicher entladen und schließen
End Sub
Private Sub CommandButton1_Click()
    
    Dim i As Byte 'Schleifenzähler
    
    'Textbox-Text in nächste freie Zellen in Spalten A:I schreiben
    For i = 1 To 9
        Worksheets("Daten").Cells(Rows.Count, i).End(xlUp).Offset(1, 0).Value = Me.Controls(" _
Textbox" & i).Text
    Next i
    
    'Textboxen leeren
    For i = 1 To 9
        Me.Controls("Textbox" & i).Text = ""
    Next i
    
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    Unload Me 'UserForm aus Speicher entladen und schließen, bei Klick auf "X"
End Sub
Freut mich, dass ich Dir helfen konnte! Noch als Tipp für das nächste Mal: Datei gleich herzeigen hilft den Helfern, weil besser klar wird, was Du wie machen möchtest bzw. schon machst!
LG
Michael

Bild

Betrifft: AW: Nochmal sauber...
von: Michael
Geschrieben am: 24.04.2015 11:22:48
Super Danke nochmal
Gruß Michael

Bild

Betrifft: AW: Nochmal sauber...
von: Michael
Geschrieben am: 24.04.2015 19:40:15
Hallo Michael
Hätte noch eine Frage zu meiner Datei gibt es auch die Möglichkeit mit einem 2.Button nach einer Zeichnungsnummer zu suchen und die dann irgendwie anzeigen zu lassen weil da kommen viele Daten in die Tabelle und wenn man dann immer alles durchsuchen muss ist nicht schön.
Wäre dann Spalte "C"
Gruß Michael

Bild

Betrifft: Ja, geht, melde mich am Montag wieder, owT
von: Michael (migre)
Geschrieben am: 24.04.2015 22:13:03
.

Bild

Betrifft: AW: Ja, geht, melde mich am Montag wieder, owT
von: Michael
Geschrieben am: 24.04.2015 22:30:16
Super 😀

Bild

Betrifft: Nun mit Such-Funktion...
von: Michael (migre)
Geschrieben am: 27.04.2015 09:47:24
Hallo Michael!
Hier die neue Datei, jetzt mit einer kleinen Such-Funktion: https://www.herber.de/bbs/user/97317.xlsm
Ich habe das jetzt schnell über den AutoFilter realisiert. Ich gehe davon aus, dass die Zeichnungs-Nr. jeweils einzigartig sind, d.h. nie doppelt vorkommen. Das Ganze wäre natürlich nur mit Nutzen der AutoFilter-Funktion genauso (und schneller) zu bewerkstelligen, aber Du wolltest eine Schaltfläche haben - und so ist der Vorteil, dass die Suche eine etwaige Eingabe neuer Datensätze, die aber zu bestehenden ähnlich sind, erleichtert.
Ein paar Anmerkungen:
- Zeile 3 des Tabellenblattes ist leer und neu, damit die Überschrift (mit bösen, verbundenen Zellen) von der eigentlichen Tabelle getrennt ist (sonst streikt der Filter)
- Wie gesagt, die Zeichnungs-Nr, nach der gesucht wird, muss eindeutig/einzigartig sein. Ich hab Dir keine Kontext- oder Teilsuche integriert; es muss nach einer vollständigen Nr. gesucht werden.
- Wenn ein Suchergebnis in Deiner UserForm angezeigt wird, können die einzelnen TextBoxen überschrieben bzw. korrigiert werden - ein Klick auf "Eingabe" schreibt dann die jeweiligen Daten wieder in die Tabelle (Achtung: Das könnte auch ungewünscht sein).
Viel Erfolg mit Deiner Tabelle!
LG
Michael

Bild

Betrifft: AW: Nun mit Such-Funktion...
von: Michael
Geschrieben am: 27.04.2015 15:31:36
Hallo Michael
super Danke funktioniert super aber mir wäre liebe die suche über die MsgBox da die Datei audf der
Arbeit genutzt wird und sich nicht jeder mit exel so gut auskennt.
da wäre eine MsgBox besser.
gruß michael

Bild

Betrifft: AW: Nun mit Such-Funktion...
von: Michael (migre)
Geschrieben am: 27.04.2015 16:46:00
Hallo Michael!
Hier nochmal die Datei, Such-Ergebnis diesmal in einer Msg-Box: https://www.herber.de/bbs/user/97319.xlsm
Die genannten Einschränkungen etc. treffen immer noch zu, es muss die gesuchte Zeichnungs-Nr eindeutig/einzigartig sein. Wird die Nr. nicht gefunden, zeigt die Msg-Box nur "Überschriften" aber keine Werte.
Die verbundenen Zellen in den Überschriften hab ich auch rausgenommen - damit sind jetzt hoffentlich alle verbundenen Zellen weg (bis auf die Blattüberschrift, da stört es nicht).
Ich hoffe jetzt passt's dann langsam ;-).
Viel Erfolg mit der Datei!
Michael

Bild

Betrifft: AW: Nun mit Such-Funktion...
von: Michael
Geschrieben am: 27.04.2015 18:43:06
Hallo Michael
Du bist der beste Danke ,genau so wollte ich es haben.
Nochmals vielen Dank für die Gedult
Gruß Michael

Bild

Betrifft: Gerne und vielen Dank für die Rückmeldung, owT
von: Michael (migre)
Geschrieben am: 27.04.2015 22:18:45
.

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Aus UserForm Daten übernehmen"