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

Laufzeitfehler 1004 bei Call Makro

Laufzeitfehler 1004 bei Call Makro
11.11.2021 10:38:49
niniha
Hallo zusammen,
ich habe vor kurzem versucht in Kalkulation A Makros einzubauen, die je nach eingegebener Information die Zeilen in den anderen Tabellen (3 & 4) ein-oder ausblendet. Außerdem funktioniert das Eintragen der Information durch Copy-Paste, da die Personen die Infos aus Kalkulation B einfach übernehmen sollten. Dabei sollen die Zellennamen beim Einsetzen nicht übernommen werden, weshalb die "automatisch gelöscht" werden sollten.
Der Code hat immer funktioniert, aber seit gestern erscheint mir beim Copy-Pasten von Informationen ins Tabellenblatt 1 einen 'Laufzeitfehler 1004 Anwendungs- oder objektdefinierter Fehler'. Da ich mich mit VBA nicht super gut auskenne, weiß ich nicht woher der Fehler kommt. Das ein- und ausblenden funktioniert, aber es kommt dennoch zu einer Fehlermeldung. Ich hoffe ihr könnte mir weiter helfen :( Danke im Voraus!

Private Sub Worksheet_Change(ByVal Target As Range)
Dim keycells As Range
Dim DefName As Name
Set keycells = Range("B64:R143")
If Not Application.Intersect(keycells, Range(Target.Address)) _
Is Nothing Then
For Each DefName In ActiveWorkbook.Names
On Error Resume Next
DefName.Delete
On Error GoTo 0
Next DefName
Call Tabelle4.Zeilen_ausblenden_EG1_5
Call Tabelle3.Zeilenausblenden_EG6_9
Application.EnableEvents = True
End If
End Sub

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 1004 bei Call Makro
11.11.2021 11:23:50
Daniel
Hi
wenn der Fehler "plötzlich" auftritt, ohne das sich am Code was geändert hat, dann sollte dir doch klar sein, dass die Fehlerursache nicht am Code liegen kann, sondern irgendwo in der Datei liegen muss.
Dh nur der Code allein hilft bei der Suche nach der Fehlerursachen nicht weiter, sondern man braucht auch die Datei dazu, um zu schauen, was sich da von heute auf morgen verändert hat, so dass der Code nicht funktioniert.
Vielleicht hat ja jemand den Blattschutz aktiviert, so dass das Makro die gewünschten Aktionen nicht mehr ausführen kann, also da kanns viele ursachen geben.
außerdem, wenn der Fehler bei "Call Makro" angezeigt wird, dann müsste man sich auch mal dieses Makro genauer anschauen, und die Codes der aufgerufenen Makros kennen wir auch nicht.
bevor du jetzt weiter machst:
geh mal im VBA-Editor in EXTRAS - OPTIONEN - ALLGEMEIN und schau mal, welche Option bei "Unterbrechen bei Fehlern" ausgewählt ist.
Ist dort "bei nicht verarbeitenden Fehlern" aktiv, ändere dies mal in "in Klassenmodul" oder "bei jedem Fehler"
das problem bei "bei nicht verarbeiteten Fehlern" ist, dass wenn du mit Call Makro ein anders Makro aufrufst und in diesem aufgerufenen Makro ein Fehler auftritt, dann bekommst du die Zeile mit "Call Makro" als fehlerhaft angezeigt, was natürlich nicht viel weiterhilft.
Mit einer der beiden anderen Optionen wird dir die fehlerhafte Zeile in diesem Makro angezeigt, also die Zeile, die auch den Fehler tatsächlich verursacht.
Damit hast du dann einen bessern Hinweis darauf, was den Fehler verursacht haben könnte.
Gruß Daniel
Anzeige
AW: Laufzeitfehler 1004 bei Call Makro
12.11.2021 08:53:45
niniha
Danke Daniel für deine Antwort! Ich habe jetzt herausgefunden, dass der Laufzeitfehler nur mit Blattschutz aufgezeigt wird und ohne Blattschutz funktioniert das weiterhin ohne Probleme. Hast du da eine Idee wie dieses Problem behoben werden kann? Jetzt kommt die Meldung: Laufzeitfehler 1004 Die Hidden-Eigenschaft des Range-Objektes kann nicht festgelegt werden. Hier ist der Code der das Problem auslöst. Liegt es dran, dass man mit Blattschutz das Ein- und Ausblenden unterbindet?

Sub Zeilen_ausblenden_EG1_5()
With Tabelle4
If .Range("T13").Value = 1 Then
.Rows("13:13").Hidden = True
Else
.Rows("13:13").Hidden = False
End If
If .Range("T14").Value = 1 Then
.Rows("14:14").Hidden = True
Else
.Rows("14:14").Hidden = False
End If
If .Range("T15").Value = 1 Then
.Rows("15:15").Hidden = True
Else
.Rows("15:15").Hidden = False
End If
If .Range("T16").Value = 1 Then
.Rows("16:16").Hidden = True
Else
.Rows("16:16").Hidden = False
End If
If .Range("T17").Value = 1 Then
.Rows("17:17").Hidden = True
Else
.Rows("17:17").Hidden = False
End If
If .Range("T18").Value = 1 Then
.Rows("18:18").Hidden = True
Else
.Rows("18:18").Hidden = False
End If
If .Range("T19").Value = 1 Then
.Rows("19:19").Hidden = True
Else
.Rows("19:19").Hidden = False
End If
If .Range("T20").Value = 1 Then
.Rows("20:20").Hidden = True
Else
.Rows("20:20").Hidden = False
End If
If .Range("T21").Value = 1 Then
.Rows("21:21").Hidden = True
Else
.Rows("21:21").Hidden = False
End If
If .Range("T22").Value = 1 Then
.Rows("22:22").Hidden = True
Else
.Rows("22:22").Hidden = False
End If
If .Range("T23").Value = 1 Then
.Rows("23:23").Hidden = True
Else
.Rows("23:23").Hidden = False
End If
If .Range("T24").Value = 1 Then
.Rows("24:24").Hidden = True
Else
.Rows("24:24").Hidden = False
End If
If .Range("T25").Value = 1 Then
.Rows("25:25").Hidden = True
Else
.Rows("25:25").Hidden = False
End If
If .Range("T26").Value = 1 Then
.Rows("26:26").Hidden = True
Else
.Rows("26:26").Hidden = False
End If
If .Range("T27").Value = 1 Then
.Rows("27:27").Hidden = True
Else
.Rows("27:27").Hidden = False
End If
If .Range("T28").Value = 1 Then
.Rows("28:28").Hidden = True
Else
.Rows("28:28").Hidden = False
End If
If .Range("T29").Value = 1 Then
.Rows("29:29").Hidden = True
Else
.Rows("29:29").Hidden = False
End If
If .Range("T30").Value = 1 Then
.Rows("30:30").Hidden = True
Else
.Rows("30:30").Hidden = False
End If
If .Range("T31").Value = 1 Then
.Rows("31:31").Hidden = True
Else
.Rows("31:31").Hidden = False
End If
End With
End Sub

Anzeige
AW: Laufzeitfehler 1004 bei Call Makro
12.11.2021 09:14:12
Daniel
Hi
wenn der Blattschutz aktiviert ist, dürfen VBA-Makros auch nur das ausführen, was der Anwender auch ausführen darf.
Entweder du stellst beim Aktivieren des Blattschutzes ein, dass der Anwender "Zeilen formatieren" darf (dafür gibts eine Option)
oder du hebst im Makro den Blattschutz auf und setzt ihn hinter wieder (dafür gibts die Befehle Sheets(...).Protect / Unprotect Passwort muss bekannt sein)
Gruß Daniel
AW: Laufzeitfehler 1004 bei Call Makro
12.11.2021 09:27:34
niniha
Danke Daniel für deine Antwort! Ich habe jetzt herausgefunden, dass der Laufzeitfehler nur mit Blattschutz aufgezeigt wird und ohne Blattschutz funktioniert das weiterhin ohne Probleme. Hast du da eine Idee wie dieses Problem behoben werden kann? Jetzt kommt die Meldung: Laufzeitfehler 1004 Die Hidden-Eigenschaft des Range-Objektes kann nicht festgelegt werden. Hier ist der Code der das Problem auslöst. Liegt es dran, dass man mit Blattschutz das Ein- und Ausblenden unterbindet?

Sub Zeilen_ausblenden_EG1_5()
With Tabelle4
If .Range("T13").Value = 1 Then
.Rows("13:13").Hidden = True
Else
.Rows("13:13").Hidden = False
End If
If .Range("T14").Value = 1 Then
.Rows("14:14").Hidden = True
Else
.Rows("14:14").Hidden = False
End If
If .Range("T15").Value = 1 Then
.Rows("15:15").Hidden = True
Else
.Rows("15:15").Hidden = False
End If
If .Range("T16").Value = 1 Then
.Rows("16:16").Hidden = True
Else
.Rows("16:16").Hidden = False
End If
If .Range("T17").Value = 1 Then
.Rows("17:17").Hidden = True
Else
.Rows("17:17").Hidden = False
End If
If .Range("T18").Value = 1 Then
.Rows("18:18").Hidden = True
Else
.Rows("18:18").Hidden = False
End If
If .Range("T19").Value = 1 Then
.Rows("19:19").Hidden = True
Else
.Rows("19:19").Hidden = False
End If
If .Range("T20").Value = 1 Then
.Rows("20:20").Hidden = True
Else
.Rows("20:20").Hidden = False
End If
If .Range("T21").Value = 1 Then
.Rows("21:21").Hidden = True
Else
.Rows("21:21").Hidden = False
End If
If .Range("T22").Value = 1 Then
.Rows("22:22").Hidden = True
Else
.Rows("22:22").Hidden = False
End If
If .Range("T23").Value = 1 Then
.Rows("23:23").Hidden = True
Else
.Rows("23:23").Hidden = False
End If
If .Range("T24").Value = 1 Then
.Rows("24:24").Hidden = True
Else
.Rows("24:24").Hidden = False
End If
If .Range("T25").Value = 1 Then
.Rows("25:25").Hidden = True
Else
.Rows("25:25").Hidden = False
End If
If .Range("T26").Value = 1 Then
.Rows("26:26").Hidden = True
Else
.Rows("26:26").Hidden = False
End If
If .Range("T27").Value = 1 Then
.Rows("27:27").Hidden = True
Else
.Rows("27:27").Hidden = False
End If
If .Range("T28").Value = 1 Then
.Rows("28:28").Hidden = True
Else
.Rows("28:28").Hidden = False
End If
If .Range("T29").Value = 1 Then
.Rows("29:29").Hidden = True
Else
.Rows("29:29").Hidden = False
End If
If .Range("T30").Value = 1 Then
.Rows("30:30").Hidden = True
Else
.Rows("30:30").Hidden = False
End If
If .Range("T31").Value = 1 Then
.Rows("31:31").Hidden = True
Else
.Rows("31:31").Hidden = False
End If
End With
End Sub

Anzeige
Schöne Spaghetti Code :-)
12.11.2021 12:49:57
Yal
... kann man wie folgt zusammenfassen:

Sub Zeilen_ausblenden_EG1_5()
Dim i As Integer
With Tabelle4
For i = 13 To 31
.Rows(i).Hidden = (.Cells(i, "T").Value = 1)
Next
End With
End Sub
_ Wiederholung von 13 bis 31
_ die Prüfung Tx = 1 gibt einen boolean zurück (True/False), den man direkt als Wert für Hidden übergeben kann.
VG
Yal
Gibt es im Paste-Bereich verbundene Zellen?
11.11.2021 20:25:31
Yal
Hallo Niniha,
wenn etwas in einem Zielbereich reinkopiert werden soll, dass nicht zu den original passt, insbesondere wenn im Zielbereich verbundene Zellen vorhadnen sind, dann zickt VBA.
VG
Yal
Anzeige
AW: Gibt es im Paste-Bereich verbundene Zellen?
12.11.2021 08:17:09
niniha
Die beiden Kalkulation sind identisch, also jede Zelle die reinkopiert wird ist gleich mit der Zelle, die kopiert wurde. :(
das antwortet die Frage nicht.
12.11.2021 08:41:55
Yal
Hallo Niniha,
wenn ich die Zellen A1:A2 verbinde und die Zellen B1:B2 verbinde, dann sind Quelle und Ziel identisch.
Es kommt trotzdem eine Fehler 1004, wenn ich versuche A2 in B2 zu kopieren.
VG
Yal

188 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige