Clever-Excel-Forum

Normale Version: UserForm in einer UserForm
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
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?
Nee, die ganze.
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.
Seiten: 1 2 3