Frage von max1501, 28

Kann mit jemand bei Excel VBA helfen?

Hallo, mein Problem ist, dass ich einen Trainingsplan habe, bei dem man die Schwierigkeit angeben muss in Zahlen (Bsp.: Zelle A1) In A4 gibt man dann an wieviel Kilometer man in diesem Schwierigkeitsgrade macht. Wenn mann den Schwierigkeitsgrad auswählt erscheint danach ein Fenster mit nochmal 2 Buttons wo man nochmal auswählen soll ob man Arme oder Beine schwimmt. Die ganzen Kilometer der Woche sollen in einer kleinen Tabelle nochmal zusammengefasst werden. Wie macht man das, dass wenn man z.B. Beine ausgewählt hat, in z.B. Zelle F1 das gleiche steht wie in Zelle A4 und das, dass die ganze Zeit aktualisiert wird, wenn man die Zahl z.b. ändert. Das ganze halt mit vba. Vielen Dank für Ihre Antworten.

Expertenantwort
von Ninombre, Community-Experte für Excel, 28

Ich verstehe das Problem nicht ganz. Die Daten sollen also teilweise direkt in der Tabelle, aber auch über ein Formular erfasst werden. Was genau soll denn in der Tabelle abgelegt werden? Was ist die Zelle F1?

Warum muss es VBA sein, bestimmter Grund? Im Grunde wäre es mit einer Tabelle leicht erledigt: Datum, Schwierigkeitsgrad, Kilometer, Arme/Bein.  Die einzelnen Trainingsaktivitäten werden dann zeilenweise eingetragen. Über Pivot oder Formeln kann eine Auswertungstabelle leicht erstellt werden.

Antwort
von max1501, 27

Ok ich versuche nochmal eine neue Fragestellung.

Wie kann man, wenn bei bei Excel eine UserForm mit 2 Button erstellt hat, es so machen, dass wenn man den Button klickt Zelle F5 die ganze Zeit, die Zelle A1 "befragt" was in ihr drinne steht und das gleiche was in Zelle A1 steht dann auch in Zelle F5 übertrage. Und wenn man den anderen Button klickt, soll zelle F6 abfragen, was in Zelle A1 steht und auch das gleiche übernehmen. Ich hoffe, dass die Fragestellung besser ist. :D

Kommentar von Ninombre ,

Änderungen in der Tabelle lassen sich eigentlich mit worksheet_change einfach überwachen. Das Problem ist, dass die Information, welcher Button gedrückt wurde, weg ist, sobald die Userform geschlossen wird. Also müsstest Du (mir fällt zumindest kein anderer Weg ein) diese Information in einem Hilfsfeld ablegen. In meinem Beispiel A10 (Achtung in VBA sind die Spalten und Zeilen vertauscht, also erst Zeile dann Spaltenangabe). Diesen Code musst Du zum Tabellenblatt speichern, das überwacht werden soll

Private Sub Worksheet_Change(ByVal Target As Range)If Cells(10, 1).Value = "Button1" Then Cells(5, 6).Value = Cells(1, 1).Value
If Cells(10, 1).Value = "Button2" Then Cells(6, 6).Value = Cells(1, 1).Value
End Sub
Kommentar von Ninombre ,

Aber nochmal die Frage: Was spricht gegen die Formel in der Tabelle? F5: =wenn(A10="Button1";A1;"") bzw. für F6 =wenn(A10="Button2";A1;"")

Die Mischung aus Eingabe in der Tabelle und in der Userform erschließt sich mir immer noch nicht. Erfass doch entweder alles in der Userform oder verzichte darauf. Es klingt insgesamt nach einer unnötig komplizierten Lösung für die Aufgabe. Evtl. kann Dir jemand eine andere Lösungsidee zeigen, dann wäre es aber wichtig zu wissen, was genau das Ziel ist, aber nicht, dass Du einen Zellenwert irgendwo reinschreiben willst, sondern eher wie der fachliche Ablauf ist: Ich erfasse also eine Trainingseinheit, soweit klar. Aber warum sollen die Änderungen überwacht werden?

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten