Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1800to1804
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Mehrere Subs zu einem zusammenfassen

Mehrere Subs zu einem zusammenfassen
21.12.2020 20:19:46
Alex
Guten Abend zusammen,
ich habe ein UserForm mit vier Checkboxen (CheckBox1, CheckBox2,...). CheckBox1 spricht alle Objekte an, die mit einer 1 enden, CheckBox2 alle Objekte, die mit einer 2 enden usw. Nun würde ich den Code an dieser Stelle gerne etwas zusammenfassen, wenn das möglich ist.
Mit meinen leider noch recht rudimentären VBA-Kenntnissen dachte ich zunächst an eine For-Next-Schleife. Das funktioniert aber wohl nur innerhalb eines Subs. Kann mir jemand von euch diesbezüglich weiterhelfen?
Private Sub CheckBox1_Click()
If Me.CheckBox1.Value = False Then
If ActiveDocument.ProtectionType  wdNoProtection Then ActiveDocument.Unprotect Password:=„ _
XXX“
ActiveDocument.InlineShapes(1).PictureFormat.Brightness = 1#
Me.ComboBoxInhalt1.Enabled = False
Me.ComboBoxJahrAlt1.Enabled = False
Me.CheckBox5.Enabled = False
Me.ComboBoxJahrJung1.Enabled = False
Me.TextBoxMdtName1.Enabled = False
Me.TextBoxAppendix1.Enabled = False
Me.TextBoxMdtNr1.Enabled = False
Me.ComboBoxInhalt1.Value = ""
Me.ComboBoxJahrAlt1.Value = ""
Me.ComboBoxJahrJung1.Value = ""
Me.TextBoxMdtName1.Value = ""
Me.TextBoxAppendix1.Value = ""
Me.TextBoxMdtNr1.Value = ""
ActiveDocument.Protect Type:=wdAllowOnlyFormFields, NoReset:=True, Password:=„XXX“
Else
If ActiveDocument.ProtectionType  wdNoProtection Then ActiveDocument.Unprotect Password:=„XXX“ _
ActiveDocument.InlineShapes(1).PictureFormat.Brightness = 0.5
Me.ComboBoxInhalt1.Enabled = True
Me.ComboBoxJahrAlt1.Enabled = True
Me.CheckBox5.Enabled = True
Me.ComboBoxJahrJung1.Enabled = True
Me.TextBoxMdtName1.Enabled = True
Me.TextBoxAppendix1.Enabled = True
Me.TextBoxMdtNr1.Enabled = True
ActiveDocument.Protect Type:=wdAllowOnlyFormFields, NoReset:=True, Password:=„XXX“
End If
End Sub
Viele Grüße
Alex

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrere Subs zu einem zusammenfassen
21.12.2020 20:57:15
onur
1) Statt
If Me.CheckBox1.Value = False Then
Me.ComboBoxInhalt1.Enabled = False
Else
Me.ComboBoxInhalt1.Enabled = True
...

Besser das:

Me.ComboBoxInhalt1.Enabled = Me.CheckBox1
...

2) Lagere alles in eine externe Sub
Public Sub Geklickt(byval i as Integer)
Me.Controls("ComboBoxInhalt"&i).Enabled = False
End Sub

Und rufe sie so auf:
Private Sub CheckBox1_Click()
Call Geklickt(1)
End Sub
Private Sub CheckBox21_Click()
Call Geklickt(2)
End Sub
...

Anzeige
AW: Mehrere Subs zu einem zusammenfassen
21.12.2020 21:40:00
GerdL
Moin Alex!
Private Sub CheckBox1_Click()
Call Doit(CheckBox1.Value, 1)
End Sub
Private Sub Doit(bol As Boolean, i As Integer)
Dim dblBrightness As Double
If ActiveDocument.ProtectionType  wdNoProtection Then ActiveDocument.Unprotect Password:=„ _
XXX“
If bol Then dblBrightness = 1 Else dlbBrightness = 0.5
ActiveDocument.InlineShapes(i).PictureFormat.Brightness = dblBrightness
Me.Controls("ComboBoxInhalt" & i).Enabled = bol
Me.Controls("ComboBoxJahrAlt" & i).Enabled = bol
Me.CheckBox5.Enabled = bol
Me.Controls("ComboBoxJahrJung" & i).Enabled = bol
Me.Controls("TextBoxMdtName" & i).Enabled = bol
Me.Controls("TextBoxAppendix" & i).Enabled = bol
Me.Controls("TextBoxMdtNr" & i).Enabled = bol
If Not bol Then
Me.Controls("ComboBoxInhalt" & i).Value = ""
Me.Controls("ComboBoxJahrAlt" & i).Value = ""
Me.Controls("ComboBoxJahrJung" & i).Value = ""
Me.Controls("TextBoxMdtName" & i).Value = ""
Me.Controls("TextBoxAppendix" & i).Value = ""
Me.Controls("TextBoxMdtNr" & i).Value = ""
End If
ActiveDocument.Protect Type:=wdAllowOnlyFormFields, NoReset:=True, Password:=„XXX“
End Sub

Gruß Gerd
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige