Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1788to1792
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

Code Optimierung?

Code Optimierung?
17.10.2020 17:39:45
Matthias
ich habe eine Frage bezüglich dieses Codes zur Aktivierung von Checkboxen durch eine bestimmte Checkbox
Kann ich den folgenden Code optimieren, oder muß er so lang sein?
Private Sub CheckBox123_Click()
If CheckBox123.Value = True Then
CheckBox125.Value = True
CheckBox129.Value = True
CheckBox133.Value = True
CheckBox137.Value = True
CheckBox141.Value = True
CheckBox145.Value = True
CheckBox149.Value = True
CheckBox153.Value = True
End If
End Sub

Ich habe sehr viele solche Boxen anzusprechen, vielleicht geht es ja besser?
Gruß M@tt

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code Optimierung?
17.10.2020 17:47:38
chris
Hallo,
hilft Dir das evtl. ?
Private Sub CommandButton1_Click()
Dim cb As Control
For Each cb In UserForm1.Controls
If Left(cb.Name, 5) = "Check" Then
cb.Value = True
End If
Next
End Sub

AW: Code Optimierung?
17.10.2020 18:02:47
Matthias
Hallo Chris, vielen Dank für die schnelle Antwort. Das hilft mir leider eher nicht weiter. Ich dachte an so etwas wie
CheckBox125&129&133.Value = True
Das geht natürlich nicht, aber so wäre es in meinem Sinne gewesen.
Gruß Matthias
AW: Code Optimierung?
17.10.2020 18:09:30
onur
Wenn du deine eigene Programmiersprache entwickelst, kannst du ja dafür sorgen, dass
CheckBox125&129&133.Value = True
möglich ist. :)
Anzeige
AW: Code Optimierung?
17.10.2020 18:12:21
Hajo_Zi
Hallo M@tt,
Option Explicit
Private Sub CommandButton1_Click()
Private Sub CheckBox123_Click()
Dim InI As Integer
If CheckBox123.Value = True Then
For InI = 125 To 153 Step 4
Controls("Checkbox" & InI) = CheckBox23
Next InI
End If
End Sub


AW: Code Optimierung?
17.10.2020 19:26:10
M@tt
Hallo an alle,
vielen Dank.
Ich würde gern die Schleife von HaJo nehmen, leider bekomme ich in der Zeile
Controls("Checkbox" & InI) = CheckBox23
einen Fehler beim Kompilieren.
Checkbox muß ich auf 123 setzen, das ist klar.
Die Zeile mit CommandButton1 ist sicherlich versehentlich rein gerutscht? ;-)
@onur, ich lasse dich wissen, wenn es soweit ist ;-)
Gruß M@tt
Anzeige
AW: Code Optimierung?
17.10.2020 19:29:14
Hajo_Zi
Hallo M@tt,
Zu Deiner Datei kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue.Ich baue keine Datei nach.
Sollte die Datei verlinkt werden?
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
http://www.ms-office-forum.de/forum/showthread.php?t=322895
änderrn.
Bilder lade ich mir nicht runter, da Excel damit nichts anfangen kann.
http://www.excel-ist-sexy.de/bilder-statt-datei/
Hochgeladene Bilder können zwar als solche in Excel importiert werden, sind jedoch bei der Lösung von Problemen nicht sehr hilfreich, da man die eigentlichen Daten nicht ohne große und zeitraubende Umwege direkt in die Tabelle übertragen kann.
Das ist nur meine Meinung zu dem Thema.
Gruß Hajo
Anzeige
AW: Code Optimierung?
17.10.2020 19:52:28
Hajo_Zi
Gut mein Code hat Dir nbicht gefallen, darum ist der nicht enthalten.
Viel Erfolg noch.
Gruß Hajo
AW: Code Optimierung?
17.10.2020 19:55:51
M@tt
Hallo Hajo,
schwere Sache....
Ich bin vermutlich etwas überarbeitet, hier ist der Code eingefügt und an die neuen Gegebenheiten angepasst.
https://www.herber.de/bbs/user/140941.xlsm
Anzeige
AW: Code Optimierung?
17.10.2020 19:32:35
Nepumuk
Hallo M@tt,
befinden sich die Checkboxen in einer Tabelle?
Gruß
Nepumuk
AW: Code Optimierung?
17.10.2020 20:04:24
Nepumuk
Hallo M@tt,
teste mal:
Private Sub CheckBox1_Click()
    Dim lngIndex As Long
    If CheckBox1.Value = True Then
        For lngIndex = 3 To 31 Step 4
            OLEObjects("CheckBox" & CStr(lngIndex)).Object.Value = True
        Next
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: Code Optimierung?
17.10.2020 20:13:01
M@tt
Hallo Nepumuk,
es funktioniert, ich Danke vielmals.
Gruß M@tt
AW: Code Optimierung?
17.10.2020 18:41:37
Daniel
Hi
Kommt jetzt darauf an, wieviele solcher Gruppen du hast und wie die zusammen hängen.
Irgendwo musst du das beschreiben.
Eine Möglichkeit wäre, die Checkboxen 125-153 durch eine Multiselect-Listbox zu ersetzen.
Dann könnte man eine einfache Schleife über die Elemente der Listbox laufen lassen.
Eine andere Möglichkeit für Userforms wäre, dass du die Checkboxnummern 125 - 153 mit Leerzeichen getrennt in die Tag-Eigenschaft der Checkbox123 schreibst und dann diese Schleife verwendet:
for each x in Split(Checkbox123.Tag, " ")
Me.Controls("Checkbox" & x).Value = True
Next
Aber wie gesagt, so nur mit Userformen, nicht mit ActiveXControls auf dem Tabellenblatt.
Gruß Daniel
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige