Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1732to1736
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
Mehrere Kontrollkästchen via VBA einfügen
14.01.2020 17:54:19
Anke
Hallo,
ich bin gerade dabei, mittels eines VBA Skripts eine vorher definierte und sich unterscheidende Anzahl an Kontrollkästchen in die Spalten B und C einzufügen.
Hier ist mal mein Code, der den Abschnitt betrifft.
Sub SetAmountChkBox()
'Disable Screen Update
Application.ScreenUpdating = False
'Variable Declaration
Dim Rng As Range
Dim ShtRng As Range
Dim WrkSht As Worksheet
Dim i, j, k, m As Integer
Dim numPoints As Integer
'Variable Initialization
i = 1
numPoints = Sheets("Punkte").Cells(3, 1).Value
Set ShtRng = Range("B22", "C22")
For j = 1 To numPoints
m = j + 21
For k = 2 To 3
Set ShtRng = Union(ShtRng, Cells(m, k))
Next
Next
For Each Rng In ShtRng
With Sheets("Protokoll").CheckBoxes.Add(Left:=Rng.Left, Top:=Rng.Top,
Width:=Rng.Width, Height:=Rng.Height)
End With
Next
'ShtRng.ClearContents
'ShtRng.Select
'Enable Screen Update
Application.ScreenUpdating = True
End Sub
Wenn ich das ganze Debugge passiert genau das, was ich von dem Programm erwarte, das Ergebnis sieht so aus:
Userbild
Wenn ich allerdings das Programm ohne Debugg durch laufen lasse bekomme ich folgendes Ergebnis (am Code wurde nichts geändert!)
Userbild
Hat mir jemand ne Idee, wie ich das obere Ergebniss immer bekomme, nicht nur beim debuggen?
Vielen herzlichen Dank schonmal im voraus.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrere Kontrollkästchen via VBA einfügen
15.01.2020 07:09:27
Werner
Hallo Anke,
bei VBA gut sollte man aber auf den Fehler kommen: Stichwort Referenzierung
Zudem macht es mittlerweile keinen Sinn mehr Laufvariable als Integer zu deklarieren, besser Long, dann bist du auf alle Fälle auf der sicheren Seite.
So Dim i, j, k, m As Integer ist nur die Variable m vom Typ Integer, alle anderen sind vom Typ Variant.
Und das ScreenUpdating braucht man am Ende vom Code nicht wieder einzuschalten - macht Excel automatisch.
Sub SetAmountChkBox()
Dim Rng As Range, ShtRng As Range
Dim i As Long, j As Long, k As Long
Dim m As Long, numPoints As Long
Dim WrkSht As Worksheet
i = 1
numPoints = Sheets("Punkte").Cells(3, 1).Value
'Blattname hat gefehlt
Set ShtRng = Worksheets("Protokoll").Range("B22", "C22")
For j = 1 To numPoints
m = j + 21
For k = 2 To 3
'Blattname hat gefehlt
Set ShtRng = Union(ShtRng, Worksheets("Protokoll").Cells(m, k))
Next
Next
Application.ScreenUpdating = False
For Each Rng In ShtRng
With Worksheets("Protokoll").CheckBoxes.Add(Left:=Rng.Left, _
Top:=Rng.Top, Width:=Rng.Width, Height:=Rng.Height)
End With
Next
End Sub
Gruß Werner
Anzeige
AW: Mehrere Kontrollkästchen via VBA einfügen
15.01.2020 07:38:08
Anke
Hallo Werner,
vielen vielen Dank!
Jetzt funktionierts;)
Gerne u. Danke für die Rückmeldung. o.w.T.
15.01.2020 08:24:13
Werner

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige