Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VB-Fehler nach dem Kopieren von Tabellenblättern

Forumthread: VB-Fehler nach dem Kopieren von Tabellenblättern

VB-Fehler nach dem Kopieren von Tabellenblättern
25.11.2016 10:10:14
Tabellenblättern
Hallo,
ich habe folgendes Problem:
In einem Script zähle ich die Gesamtzahl aller und der aktiven Checkboxen und zeige die Anzahl unter der Tabelle an:

Public Sub Formular_Check()
Dim aktive As Integer
Dim alle As Integer
Dim CB As CheckBox
Dim Zeile1 As Integer
Dim Zeile2 As Integer
Dim Spalte As String
Zeile1 = 16
Zeile2 = 17
Spalte = "E"
For Each CB In ActiveSheet.CheckBoxes
If Not Intersect(CB.TopLeftCell, Range("B4:P13")) Is Nothing And _
Not Intersect(CB.BottomRightCell, Range("B4:P13")) Is Nothing Then
alle = alle + 1
If CB.Value = 1 Then aktive = aktive + 1
End If
Next CB
ActiveSheet.Range(Spalte & Zeile1).Value = alle
ActiveSheet.Range(Spalte & Zeile2).Value = aktive
End Sub

Die komplette Datei: https://www.herber.de/bbs/user/109708.xlsm
Das Script funktioniert auf dem Tabellenblatt ohne Probleme.
Wenn ich aber das Tabellenblatt dupliziere, kommt es beim Ausführen des duplizierten Blattes zum Fehler 400. Beim Ausführen im VB-Editor wird die Fehlermeldung "Laufzeitfehler 1004, anwendungs- oder objektdefinierter Fehler" angezeigt.
Was mache ich falsch?
Über Hilfe würde ich mich sehr freuen.
Viele Grüße
Bernd
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
VB-Fehler nach dem Kopieren von Tabellenblättern
25.11.2016 10:25:25
Tabellenblättern
Hallo,
versuchs mal so:
Public Sub Formular_Check()
Dim aktive As Integer
Dim alle As Integer
Dim CB As CheckBox
Dim Zeile1 As Integer
Dim Zeile2 As Integer
Dim Spalte As String
Zeile1 = 16
Zeile2 = 17
Spalte = "E"
With ActiveSheet
For Each CB In .CheckBoxes
If Not Intersect(CB.TopLeftCell, .Range("B4:P13")) Is Nothing And _
Not Intersect(CB.BottomRightCell, .Range("B4:P13")) Is Nothing Then
alle = alle + 1
If CB.Value = 1 Then aktive = aktive + 1
End If
Next CB
.Range(Spalte & Zeile1).Value = alle
.Range(Spalte & Zeile2).Value = aktive
End With
End Sub

Gruß
Rudi
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige