1.4k Aufrufe
Gefragt in Tabellenkalkulation von
hallo forum

habe versucht eine etwas perfektere packliste für wandertouren in excel zu entwickeln und bin auch gleich an den rand meiner fähigkeiten geraten. ich bin mir durchaus bewusst, dass excel hier zum teil graphisch missbraucht wird, vielleicht aber kann mior trotzdem jemand helfen. folgendes ist die idee:

- die zeilen listen untereinander die dinge auf, die man einpacken kann (Gepäckstücke)

- Spalte A: Checkbox, welche man jeweils anklicken kann, wenn man das Gepäckstück physisch in den Rucksack gepackt hat (hat somit keine weitere Funktion)
- Spalte B: Auflistung aller möglichen Gepäckstücke
- Spalte C: Gewicht des Gepäckstücks
- Spalte D: Checkbox, welche geklickt wird, wenn man plant das Gepäckstück auf die aktuelle Tour einzupacken
- Spalte E: hier soll das Gewicht des Gespäckstücks übertragen werden, wenn die Checkbox in Spalte D geklickt ist

Hintergrund ist also eine Packliste mit welcher man sich seinen Rucksack zusammenstellen kann und gleichzeitig die Gewichtsbelastung im Voraus kontrollieren kann

besten dank im Voraus
kuefra

2 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

falls du das Kontrollkästchen aus der Symbolleiste Formular benutzt hast, kannst du über "Steuerelement formatieren" eine Zellverknüpfung eingeben, z.B. die Spalte F.

Wenn du eine Checkbox über die Symbolleiste Steuerelement Toolbox einfügst, so öffne mit ALT + F11 den Projektexplorer.
Bei den Eigenschaften der Checkbox kannst du unter "LinkedCell" eine Zelle in Spalte F eingeben.

Das musst dann leider für jede Checkbox entsprechend machen.

Die Spalte F kannst du ggf ausblenden.

Schreibe in Spalte E folgende Formel und ziehe sie soweit wie benötigt nach unten.
=WENN(F1=WAHR;C1;"")

Gruß

M.O.
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi,

wenn du Kontrollkästchen aus der Formular-Symbolleiste verwendest, kannst du ihnen (Spalte D) dieses Makro zuweisen:
Sub Eintragen()
With ActiveSheet.Shapes(ActiveSheet.Application.Caller)
If .ControlFormat.Value <> -4146 Then
Cells(.TopLeftCell.Row, .TopLeftCell.Column + 1) = Cells(.TopLeftCell.Row, .TopLeftCell.Column - 1)
Else
Cells(.TopLeftCell.Row, .TopLeftCell.Column + 1) = ""
End If
End With
End Sub

Damit du dies nicht für jedes Kontrollkästchen von Hand machen musst, kannst du (einmalig) diesen Code ausführen:
Sub MakroZuweisen()
Dim chCheckBox As CheckBox
For Each chCheckBox In ActiveSheet.CheckBoxes
If chCheckBox.TopLeftCell.Column = 4 Then chCheckBox.OnAction = "Eintragen"
Next chCheckBox
End Sub

Voraussetzung für das Funktionieren beider Codes ist, dass die linke obere Ecke des Kontrollkästchens in der jeweiligen Zelle in Spalte D liegt, für die die Werte aus Spalte C nach E übernommen werden sollen.

Bis später,
Karin
...