Diese Code reicht im Userform:
Code:
Private Sub UserForm_Initialize()
ComboBox4.List = Array("Hand", "0,8", "1,2")
ComboBox1.List = Tabelle3.Columns(1).SpecialCells(2).Value
ComboBox2.List = Tabelle3.Columns(2).SpecialCells(2).Value
ComboBox3.List = Tabelle3.Columns(3).SpecialCells(2).Value
End Sub
Private Sub CommandButton1_Click()
Tabelle1.Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 15) = Array(TextBox1, texbox2, TextBox3, ComboBox3, TextBox4, TextBox5, Format(OptionButton1, "Yes/no"), ComboBox2, ComboBox1, ComboBox4, TextBox6, TextBox7, TextBox8, TextBox9, TextBox10)
End Sub
Private Sub CommandButton5_Click()
For Each ct In Controls
Select Case LCase(TypeName(ct))
Case "textbox", "combobox"
ct = ""
Case "optionbutton"
ct.Value = False
End Select
End Sub
Private Sub CommandButton4_Click()
Unload Me
End Sub
Erstmal danke an Rabe, ich habe nie programmieren gelernt. Ich bin eher durch Zufall auf VBA gestoßen und habe mich dafür einfach interessiert. Dadurch bin ich die ganze Sache wahrscheinlich nicht mit der richtigen Reihenfolge angegangen ;) aber mal schauen was daraus wird.
Und snb du meinst jetzt aber nicht, dass das meine komplette UserForm ersetzt, sondern nur einzelne Teile, oder?
Das passt bei mir dann aber nicht. Einmal wird das Format (und auch die Formeln) nicht kopiert und in die nächste Zeile eingefügt. Und zweitens wird meine zweite Page mit den Stückzahlen nicht in die Tabelle übertragen.
Hi Jan,
(06.11.2015, 09:44)Jan-Lan95 schrieb: [ -> ]Das passt bei mir dann aber nicht. Einmal wird das Format (und auch die Formeln) nicht kopiert und in die nächste Zeile eingefügt. Und zweitens wird meine zweite Page mit den Stückzahlen nicht in die Tabelle übertragen.
Ich habe es noch nicht ausprobiert, aber mit diesem Code müßte es eigentlich die Daten eintragen:
Code:
Private Sub CommandButton1_Click()
Tabelle1.Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 15) = Array(TextBox1, texbox2, TextBox3, ComboBox3, TextBox4, TextBox5, Format(OptionButton1, "Yes/no"), ComboBox2, ComboBox1, ComboBox4, TextBox6, TextBox7, TextBox8, TextBox9, TextBox10)
End Sub
(06.11.2015, 11:14)Rabe schrieb: [ -> ]Ich habe es noch nicht ausprobiert, aber mit diesem Code müßte es eigentlich die Daten eintragen:
stimmt, da fehlen die Textboxen 11-142.
Außerdem heißt die texbox2: TextBox2
Aber das kannst Du selbst erweitern:
Ich vermute, im Teil Resize die 15 durch 147 ersetzen, dann hinten TextBox11 bis 142 einzeln einfügen.
oder Du machst es so in Kombination der beiden Codes:
Code:
Private Sub CommandButton1_Click()
Dim loSpalte As Long
Dim loZeileMax As Long
Tabelle1.Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 15) = Array(TextBox1, TextBox2, TextBox3, ComboBox3, TextBox4, TextBox5, Format(OptionButton1, "Yes/no"), ComboBox2, ComboBox1, ComboBox4, TextBox6, TextBox7, TextBox8, TextBox9, TextBox10)
With Tabelle1
loZeileMax = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count) 'letzte belegte Zeile in Spalte A (1)
'Jahr 2016 - 2026: eintragen der Monatsstückzahlen
For loSpalte = 17 To 148
.Cells(loZeileMax, loSpalte) = Me.Controls("TextBox" & loSpalte - 6).Value
Next loSpalte
End With
End Sub
und im Sub CommandButton5_Click() fehlt die Dimensionierung von ct und vor End Sub fehlt ein "Next ct"
Code:
Private Sub CommandButton5_Click()
Dim ct As Object
For Each ct In Controls
Select Case LCase(TypeName(ct))
Case "textbox", "combobox"
ct = ""
Case "optionbutton"
ct.Value = False
End Select
Next ct
End Sub
So funktioniert es jetzt.
Jap jetzt passt es bei mir auch, Perfekt!! Jetzt habe ich noch ne etwas kürzere Variante. Danke an alle ;)
Wenn ihr noch Energie habt würde ich noch ne Frage stellen, die zu dem Thema nicht passt:
Als übertragenes Bsp. folgende Situation
In Zeile A Habe ich die Worte Hund, Katze, Maus mehrmals untereinander stehen. Die sind nicht in einer bestimmten Reihenfolge und kommen unterschiedlich oft vor.
In Zeile B sind Werte den Worten Hund, Katze, Maus zugeordnet (Diese Werte sind aber nicht immer gleich. Sprich Hund ist z.B. nicht immer die Zahl 7 sondern kann auch 4 sein etc.)
In Zeile C habe ich eine Formel die folgendes können soll:
Sie soll in Zeile A nach dem Wort "Hund" suchen und dann die dazugehörigen Werte aus Zeile B addieren.
Sowas ähnliches habe ich schon mit der Bedingten Formatierung gemacht. Ich weiß aber nicht, ob das in dem Fall auch geht.
Danke schonmal für die Hilfe und danach ist auch gut und ich schließe dieses Thema ;)
Im Anhang nochmal ganz einfach die Situation beschrieben.
Ok habe ich mit einer SUMMEWENN Formel gelöst. Hat sich also erledigt.
Das machen wir einfach so:
Code:
for j=11 to 142
c00=c00 & "|" & Me("TextBox" & j)
next
tabelle1.cells(rows.count,1).end(xlup).offset(1).resize(,131)=split(mid(c00,2),"|")
das schreiben in eines Arbeitsblatt sollte man minimieren.
und diese Code reicht:
Code:
Private Sub CommandButton5_Click()
For Each ct In Controls
Select Case LCase(TypeName(ct))
Case "textbox", "combobox"
ct = ""
Case "optionbutton"
ct.Value = False
End Select
Next
End Sub
Hi Jan,
kopiere deine Spalte A in die Hilfsspalte C und entferne die Duplikate. Spalte kann ausgeblendet werden. Dann daneben die Formel:
Zitat:=SUMMEWENN(A:A;C1;B:B)
Edit:
Habe erst jetzt gesehen, dass die Frage erledigt ist.