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.

Excel mit VBA ListBox2 in Abhängigkeit von ListBox1 befüllen
#21
Ich habe es noch mal getestet und klappt alles so, wie es mir vorgestellt habe.

Ich habe jetzt ein bischen gebastest so das das VBA ausgeführt wird, wenn das Arbeitsblatt "Datenbank" geöffnet wird.
Und einen >Ende< Button eingefügt, womit das Arbeitsblatt dann auch gleich gespeichert wird und wieder auf das Arbeitsblatt "Trainingsplan"
gewechselt wird.

Gruß
Sveni_Lee
Antworten Top
#22
Das geht auch in VBA.
Diese Code reicht für Userform_Initialize

Code:
Private Sub UserForm_Initialize()
    ListBox_Muskelgruppe.Column = Tabelle9.Rows(1).SpecialCells(2).Value
    ComboBox_KW.List = [index(row(1:53),)]
    ListBox_Wochentag.List = Application.GetCustomListContents(2)
    ListBox_Training.List = Split("Muskelaufbau Cardio")
    ComboBox_Jahr.List = [index(row(2019:2025),)]
    ListBox_Uebung.List = Tabelle9.Cells(1).CurrentRegion.Offset(1).Value
End Sub

Und diese in Listbox Muskelgruppe Change:

Code:
Private Sub ListBox_Muskelgruppe_Change()
    ListBox_Uebung.ColumnCount = ListBox_Muskelgruppe.ListCount

    ReDim st(ListBox_Muskelgruppe.ListCount)
    st(ListBox_Muskelgruppe.ListIndex) = 12
    ListBox_Uebung.ColumnWidths =Join(st, "0;")
End Sub

Die Spinbutton Eigenschaften ( Min) sollte man im Design Mode einstellen.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#23
Die komplette Code im Userform:


Code:
Private Sub UserForm_Initialize()
    ListBox_Muskelgruppe.Column = Tabelle9.Rows(1).SpecialCells(2).Value
    ComboBox_KW.List = [index(row(1:53),)]
    ListBox_Wochentag.List = Application.GetCustomListContents(2)
    ListBox_Training.List = Split("Muskelaufbau Cardio")
    ComboBox_Jahr.List = [index(row(2019:2025),)]
    ListBox_Uebung.List = Tabelle9.Cells(1).CurrentRegion.Offset(1).Value
End Sub


Code:
Private Sub ListBox_Muskelgruppe_Change()
    ListBox_Uebung.ColumnCount = ListBox_Muskelgruppe.ListCount
    ReDim st(ListBox_Muskelgruppe.ListCount)
    st(ListBox_Muskelgruppe.ListIndex) = 12
    c00 = Join(st, "0;")
    ListBox_Uebung.ColumnWidths = c00
End Sub


Code:
Private Sub SpinButton_Gewicht_Change()
  TextBox_Gewicht.Text = SpinButton_Gewicht.Value
End Sub


Code:
Private Sub SpinButton_Wdhlg_Change()
  TextBox_Wdhlg.Text = SpinButton_Wdhlg.Value
End Sub


Code:
Private Sub SpinButton_Zeit_Change()
  TextBox_Zeit.Text = SpinButton_Zeit.Value
End Sub


Code:
Private Sub Button_Eingabe_Click()
   sn = Array(ComboBox_KW, ListBox_Wochentag, , ListBox_Training, ListBox_Muskelgruppe, ListBox_Uebung, , TextBox_Gewicht, TextBox_Wdhlg, , TextBox_Strecke, TextBox_Zeit, ComboBox_Jahr)
    
   sn(2) = DateSerial(sn(12), 1, 4) - Weekday(DateSerial(sn(12), 1, 4), 2) + ListBox_Wochentag.ListIndex + 1 + 7 * sn(0)
   sn(6) = "Satz " & Application.Match(True, Array(OptionButton_Satz1, OptionButton_Satz2, OptionButton_Satz3, OptionButton_Satz4), 0)
   sn(9) = "Intervall " & Application.Match(True, Array(OptionButton_Interv1, OptionButton_Interv2, OptionButton_Interv3, OptionButton_Interv4, OptionButton_Interv5, OptionButton_Interv6), 0)
   
   Tabelle8.Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 13) = sn
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#24
danke...

ich hab es grad mal probiert
dabei bekomme ich eine Fehlermeldung "Typ unverträglich"


Code:
Private Sub Button_Eingabe_Click()
   sn = Array(ComboBox_KW, ListBox_Wochentag, , ListBox_Training, ListBox_Muskelgruppe, ListBox_Uebung, , TextBox_Gewicht, TextBox_Wdhlg, , TextBox_Strecke, TextBox_Zeit, ComboBox_Jahr)
    
   sn(2) = DateSerial(sn(12), 1, 4) - Weekday(DateSerial(sn(12), 1, 4), 2) + ListBox_Wochentag.ListIndex + 1 + 7 * sn(0)
   sn(6) = "Satz " & Application.Match(True, Array(OptionButton_Satz1, OptionButton_Satz2, OptionButton_Satz3, OptionButton_Satz4), 0)
   sn(9) = "Intervall " & Application.Match(True, Array(OptionButton_Interv1, OptionButton_Interv2, OptionButton_Interv3, OptionButton_Interv4, OptionButton_Interv5, OptionButton_Interv6), 0)
   
   Tabelle8.Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 13) = sn
End Sub

und zwar in dieser Zeile:

Code:
sn(9) = "Intervall " & Application.Match(True, Array(OptionButton_Interv1, OptionButton_Interv2, OptionButton_Interv3, OptionButton_Interv4, OptionButton_Interv5, OptionButton_Interv6), 0)
Antworten Top
#25
Du hast vergessen einer der Optionbuttons zu wählen.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#26
hmm...

Aber wenn ich die OptionButton_Satz1 - 4 wähle, sind die OptionButton_Interv1 - 6 obsolet da diese ja nur für das
Lauftrainung und nicht für den Muskelaufbau sind.
Antworten Top
#27
Dann solltest du diese Bedingung im Code einbauen.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#28
da fehlt mir der Ansatz wie ich dort eine Bedingung einbauen kann.

Cardio -> Interv1 - 6
Muskelaufbau -> Satz1 - 4
Antworten Top


Gehe zu:


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