Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1524to1528
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

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

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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige