ich habe (mal wieder) ein Problem und brauche eure Hilfe.
In meiner UserForm habe ich ComboBoxen, TextBoxen etc., dessen Inhalt durch ein klicken auf den Button 'Speichern' auf meine Exceltabelle übertragen werden. In meiner Textbox1 kann man "Hund;Katze;Maus" auswählen. Jetzt soll er machen: Wenn Hund ausgewählt wird, dann alle KomboBoxen & Textboxen in Babellenblatt1 übertragen Wenn Katze ausgewählt wird, dann alle KomboBoxen & Textboxen in Babellenblatt2 übertragen Wenn Maus ausgewählt wird, dann alle KomboBoxen & Textboxen in Babellenblatt3 übertragen Ich hoffe Ihr versteht mein Problem und könnt mir vllt sogar helfen.
Haloo! Vielleicht hilft Dir dieser Pseudocode bereits weiter, ansonsten: Datei hochladen!
Code:
Private Sub CommandButton1_Click() Dim wks As Worksheet Select Case ComboBox1.Text Case "Hund": Set wks = Worksheets("Tabelle1") Case "Katze": Set wks = Worksheets("Tabelle2") Case "Maus": Set wks = Worksheets("Tabelle3") End Select wks.Cells(15, 2) = TextBox1 End Sub
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
If Trim(CStr(TextBox1.Text)) = "" Then MsgBox "Sie müssen einen Kunden eingeben!", vbCritical + vbOKOnly, "FEHLER!" Exit Sub End If If Trim(CStr(TextBox2.Text)) = "" Then MsgBox "Sie müssen eine Bauteilbezeichnung eingeben!", vbCritical + vbOKOnly, "FEHLER!" Exit Sub End If
If Trim(CStr(ComboBox3.Text)) = "" Then MsgBox "Sie müssen einen Status auswählen!", vbCritical + vbOKOnly, "FEHLER!" Exit Sub End If
If Trim(CStr(ComboBox2.Text)) = "" Then MsgBox "Sie müssen eine Schaumart auswählen!", vbCritical + vbOKOnly, "FEHLER!" Exit Sub End If
Dim bolFound As Long Dim i As Long
For i = 12 To 143 bolFound = bolFound Or Controls("TextBox" & i) <> "" Next i If Not bolFound Then MsgBox "Es müssen Stückzahlen eingegeben werden" Exit Sub End If
Dim ZeileMax As Long Dim Zeile As Long Dim loSpalte As Long
With Tabelle1 ZeileMax = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count) 'letzte belegte Zeile in Spalte A (1) Zeile = ZeileMax + 1
Das ist mein Code für den Button "Speichern". Bestimmt kann man das ganze (deutlich) kürzer fassen. Aber bei mir läuft bisher alles so, wie es soll. Von daher bin ich besonders als VBA-Anfänger zufrieden. Bisher kamen nur Fehlermeldungen, als ich deinen Code meinen Tabellen angepasst habe. Daher weiterhin für jede Art von Hilfe offen und dankebar!! Gruß Jan
Und meine Datei kann ich natürlich auch gerne dran hängen. Dazu: Hund Katze Maus war ein allg. Bsp. In meinem Fall soll bei der ComboBox "Werk" bei der Auswahl "1411 NOV" in dem Arbeitsblatt "Novaky" gespeichert werden. Bei "1161 HDL" in dem Arbeitsblatt "Haldenleben". Und bei "1521 MEX" in dem Arbeitsblatt "Mexiko" usw.
Die Formate sind bislang nur in der Arbeitsblatt Novaky gespeichert. In die anderen Arbeitsblätter würde ich ihm Nachhinein noch die Formate übernehmen.
in Deiner angehängten Datei ist kein Blatt Nokay und die Blätter für die Werke sind auch nicht drin.
Wenn man im Dialog irgendwas einträgt, kommt auch kein Fehler. Allerdings ist auf dem Blatt "Bestell-Liste" in den Formeln ein Bezugsfehler. =WENN(ODER($M3=0;$M3="");"";#BEZUG!/$M3*$P3)
Der kommt aber wohl nicht vom code.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
15.11.2015, 10:04 (Dieser Beitrag wurde zuletzt bearbeitet: 15.11.2015, 10:05 von RPP63.)
Moin Jan! Es dürfte doch kein Problem sein, meinen Pseudocode auf Deine Bedürfnisse anzupassen?
Code:
Dim wks As Worksheet Select Case ComboBox1.Text Case "1411 NOV": Set wks = Worksheets("Novaky") Case "1521 MEX": Set wks = Worksheets("Mexiko") 'weitere Werke End Select
In Deinem CommandButton1_Click dann statt With Tabelle1With wks
Allerdings würde ich kein Tabellenblatt pro Werk nehmen, sondern alles in eine Tabelle schreiben (zusätzliche Spalte "Werk") und die Auswertung mittels Autofilter oder besser noch mit einer Pivottabelle vornehmen.
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)