HERBERS Excel-Forum - das Archiv

Thema: Makro darf nur ausgeführt werden wenn Checkboxen aktiviert.

Makro darf nur ausgeführt werden wenn Checkboxen aktiviert.
Bernd_
Hallo Zusammen,

in meiner Beispieldatei befindet sich ein Makro.
Auf dem Blatt Check ist ein CommandButton und es befinden sie 3 CheckBoxen auf dem Blatt.

Ich möchte gerne das das Makro per Button nur ausgeführt werden kann wenn alle 3 Checkboxen "abgehakt" sind. Und nachdem das Makro ausgeführt wurde die CheckBoxen wieder deaktiviert sind.

Ist das möglich ?
https://www.herber.de/bbs/user/168584.xlsm
Gruß Bernd_
AW: Makro darf nur ausgeführt werden wenn Checkboxen aktiviert.
Yal
Hallo Bernd_

Version 1:
Sub PDF_ablegen()

Const cFilename = "C:\Users\XXXXXX\XXXXXXXXX\Desktop2\Neuer Ordner\Test"

With Sheets("Check")
'Prüfen, aussteigen
If Not .CheckBox1.Value Then Exit Sub
If Not .CheckBox2.Value Then Exit Sub
If Not .CheckBox3.Value Then Exit Sub
'Exportieren
.Range("A1:G23").ExportAsFixedFormat Type:=xlTypePDF, Filename:=cFilename & Format(Now, "_DD_MM_YYYY_hh_mm_"), _
Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False
'Daten löschen
.Range("A1:G23").ClearContents
'Checkbox zurücksetzen
.CheckBox1.Value = False
.CheckBox2.Value = False
.CheckBox3.Value = False
End With
End Sub


Version 2:
Sub PDF_ablegen()

Dim i As Long
Const cFilename = "C:\Users\XXXXXX\XXXXXXXXX\Desktop2\Neuer Ordner\Test"

With Sheets("Check")
'Prüfen, aussteigen
For i = 1 To 3
If Not .Controls("Checkbox" & i).Value Then Exit Sub
Next
'Exportieren
.Range("A1:G23").ExportAsFixedFormat Type:=xlTypePDF, Filename:=cFilename & Format(Now, "_DD_MM_YYYY_hh_mm_"), _
Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False
'Daten löschen
.Range("A1:G23").ClearContents
'Checkbox zurücksetzen
For i = 1 To 3
.Controls("Checkbox" & i).Value = False
Next
End With
End Sub


VG
Yal
AW: Makro darf nur ausgeführt werden wenn Checkboxen aktiviert.
Bernd_
Hallo Yal,

herzlichen Dank.

Wo ist der Unterschied zwischen Makro 1 und Makro 2?

Gruß bernd_
AW: Makro darf nur ausgeführt werden wenn Checkboxen aktiviert.
Yal
Hallo Bernd,

wenn ich ganz frech wäre, würde ich sagen, lesen und vergleichen ;-) Code zu lesen und sich damit auseinandersetzen ist sehr wichtig, um mit VBA zurecht zu kommen.

Die Unterschied liegt in der Aufruf der Checkboxes:
in der Version 1 werden jede einzelne ckb abgefragt. Daher wird direkt der ckb-Objekt verwendet.
Sheets("Check").CheckBox1.Value


In zweiten wird eine Schleife verwendet, um damit den Namen nachzubilden. Da diese Name ein String (=Zeichenkette) ist und kein Objekt, muss man es als Schlüssel, um in der Auflistung der "Controls" (mit einem s, weil Auflistung, eng. "Collection") den passenden Objekt adressieren zu können.
Sheets("Check").Controls("Checkbox1").Value


VG
Yal