Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

UserForm in einer UserForm
#11
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
Antworten Top
#12
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?
Antworten Top
#13
Nee, die ganze.
Antworten Top
#14
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.
Antworten Top
#15
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
Antworten Top
#16
(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.
Antworten Top
#17
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.


Angehängte Dateien
.xlsx   Fomel beispiel.xlsx (Größe: 9,01 KB / Downloads: 10)
Antworten Top
#18
Ok habe ich mit einer SUMMEWENN Formel gelöst. Hat sich also erledigt.
Antworten Top
#19
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
Antworten Top
#20
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.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste