Vba

J21

Ensign
Registriert
Okt. 2016
Beiträge
135
Vba Checkbox Bearbeitung / Gelöst

Hallo liebes Forum,

leider kenne ich mich nicht mit VBA aus und wollte deshalb euch fragen, ob Ihr mir weiter helfen könnt. :)

Ich lade euch einfach ein eine Excel Datei hoch mit dem Beispiel.Anhang anzeigen Beispiel.xlsx

Wie kann ich z.B. eine Checkbox mit Hacken, so programmieren das wenn sie angeklickt wird ein anderer Content verschwindet.

Mehr kann man dazu nicht sagen.

Gibts vielleicht auch einfachere Lösung, z.B. irgendein Programm usw.?

Es darf auch in eine Pdf umgewandelt werden(xls oder pdf beides ok).

Ich wäre sehr dankbar über eine Antwort.:)

Mit freundlichen Grüßen

Jan/J21
 
Zuletzt bearbeitet:
Wenn du noch gar keine Ahnung hast, wie VBA an sich funktioniert, fang mal hier mit an:
www.vba-tutorial.de
Objekte zu verbergen sollte dann für dich eine der leichten Aufgaben sein...
 
Oke, vielen Dank für deine Antwort. :)

Muss ich mir wohl oder überl, früher oder später anschauen. :)

Mit freundlichen Grüßen

J21/Jan
 
Ja, das ist denk ich das beste.
Weil auch wenn dir jetzt jemand hier ein "Beispiel" postet, wirst du das dann auf deine Wünsche anpassen müssen, etc. und spätestens da ist ein Grundverständnis schon echt hilfreich.
 
Ja für Programmierung hab ich ein Grundverständnis, nur ein Beispiel wäre sehr gut, da ich sonst in meiner Arbeit das Vba nicht gebrauchen kann.

Das ist nur diese eine Sache mehr nicht. :)

Vielleicht wäre es ein bisschen Zeitverschwendung wenn ich mir viel Vba anlerne. :)

Mit freundlichen Grüßen

J21/Jan
 
In Excel/VBA haben die meisten Objekte eine visible-Eigenschaft, die man auf true oder false setzen kann.
Siehe z.B. hier: https://msdn.microsoft.com/de-de/library/office/ff197786.aspx
Und das Setzen dieser Eigenschaft packst du dann z.B. auf das Ändern der Checkbox.
Siehe z.B. hier: http://www.excel-easy.com/vba/examples/check-box.html
Statt wie in diesem Beispiel nen Wert auf 0 oder 1 zu setzen, setzt du halt von dem zu versteckenden Content die visible-Eigenschaft auf false bzw. true.
(Bei Zellen oder Zellbereichen ist die Eigenschaft glaub ich hidden statt visible, aber je nachdem, was du ausblenden willst, musst du halt mal schauen, welche Eigenschaft du nutzen kannst.)
 
Zuletzt bearbeitet:
Diese Antwort hat mir auf jedenfall schon sehr viel gebracht!

Vielen Dank, für deine Antwort ! :):):)
Ergänzung ()

Hmm leider kommt nur ein Fehler raus, egal ob ich visible oder hidden her nehme.

Ich hab auch nach dem visible true/flase hin gesetzt, hat ebenfalls zu kein Ergebnis geführt.

Blub.PNG

Fehler.PNG
Ergänzung ()

Private Sub CheckBox1_Click()
If CheckBox1 = True Then
Rows("59:79").Select
Selection.EntireRow.Hidden = True
Range("B5").Select
Else
Rows("59:79").Select
Selection.EntireRow.Hidden = False
Range("B5").Select
End If
End Sub

Das ist der Code, falls jemand das gleiche Problem hat.

Hab lange rumprobiert.

Vba ist echt richtig schwer.. ^^
Ergänzung ()

Ich hab hier ein Code:

Private Sub CheckBox1_Click()
If CheckBox1 = True Then
Rows("21:79").Select
Selection.EntireRow.Hidden = True
Range("B5").Select
Else
Rows("21:79").Select
Selection.EntireRow.Hidden = False
Range("B5").Select

End If
End Sub

wie bekomme ich hin das in einer Tabelle mehrere Chechbox per diesen Code ausgewählt werden können. :freak:

Wäre über eine Antwort sehr erfreut. :)
Mit freundlichen Grüßen

J21/Jan
 
Zuletzt bearbeitet:
Verstehe deine Frage grade nicht 100%ig...
Wenn du mehrere Checkboxen hast, hat jede davon ihre Sub namens CheckBox#_Click, in die du einträgst, was sie bei Click machen soll...
Falls du wiederverwendbaren Code schreiben willst, kannst du z.B. eine Function schreiben und die dann in den Subs der Checkboxen aufrufen.
Die müsstest du dann halt so generell schreiben, dass sie auch bei allen Checkboxen funktioniert.
 
Danke erstmal für deine Antwort. :)

Meine frage hat sich gerade von selber beantwortet ich hätte nur noch eine frage?

Ich versuch gerade mehrere Rows auf eine Checkbox zu verknüpfen:

Private Sub CheckBox19_Click()

Dim rngBereich As Range
Set rngBereich = Range("4:20,59:79")

If CheckBox1 = True Then
rngBereich.EntireRow.Hidden = True
Else
rngBereich.EntireRow.Hidden = False
End If
End Sub

Habs einfach mal so ausprobiert,

funktioniert aber nicht, vielleicht weil ich noch eine andere Range eingeben muss wie z.B. B21 ? O.o

Davor in meinen Code hab ich ja das auch so gemacht. :)
 
Ich habs jetzt schnell mal selber gemacht - so sieht mein Code aus:

Code:
Private Sub CheckBox1_Click()

    If CheckBox1 = True Then
        ActiveSheet.Rows("2:3").Hidden = True
        ActiveSheet.Columns("B:C").Hidden = True
    Else
        ActiveSheet.Rows("2:3").Hidden = False
        ActiveSheet.Columns("B:C").Hidden = False
    End If

End Sub

Zeilen "2:3" oder Spalten "B:C" kannst du ja beliebig ersetzen...
 
Ich glaub wir haben ein bisschen an einander geredet. :)

Ist meine Schuld ich hab mich nicht richtig Ausgedrückt.

Also, Ich will in meiner Tabelle mit einer CheckBox mehrere Rows ansprechen.

Denn code den ich vorhin dir gesendet habe, sollte eig so sein.

Wichtig ist dabei das es sich nicht dabei um einzelne Spalten haltet.

Ich meinte das mit "B21", das es sich darauf bezieht, denn ganz oben hab ich ja auch das festgelegt.

"Range("B5").Select".

Ich will eig nur das Die rows 4:20,59:79 weg sind sobald ein hacken drinnen ist. :)

Ich glaub mein Code sollte stimmen aber, da fehlt was.

Mit freundlichen Grüßen

J21/Jan
 
Genau darauf passt mein Beispiel doch... Oder stehe ich jetzt auf dem Schlauch was du willst?
So abgewandelt blendet er genau deine Zeilen 4-20 und 59-79 aus.

Code:
Private Sub CheckBox1_Click()

    If CheckBox1 = True Then
        ActiveSheet.Rows("4:20").Hidden = True
        ActiveSheet.Rows("59:79").Hidden = True
    Else
        ActiveSheet.Rows("4:20").Hidden = False
        ActiveSheet.Rows("59:79").Hidden = False
    End If

End Sub
 
Vielen Dank !!!! :)

Endlich, ich hab eine Sache vergessen, die Chechbox19 auszuwählen. :)

Aber ich war vorhin nur verwirrt, ob du mich falsch verstehst. :)

Vielen Dank noch einmal :)
 
Zurück
Oben