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

Laufzeitfehler 1004
04.11.2015 13:05:20
Albert
Hallo zusammen,
ich hab vorhin in ein Tabellenblatt folgenden Code geschrieben.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Counter As Long
Dim Bereich As Range
With Sheets("Gefahrenaufnahme")
Set Bereich = .Range("E22:E25;J22:J26;O22:O26;T24:T26")
'Hier den Bereich anpassen
Set Target = Application.Intersect(Target, Bereich)
'Set Target = Application.Intersect(Target, Range("E22:E25; J22:J26"))
'Wenn nicht innerhalb des Bereiches wird die Prozedur verlassen
If Target Is Nothing Then Exit Sub
'Sheets("Gefahrenaufnahme").Unprotect Password:="1"
'Errorhandling aktivieren, um im Falle eines Fehlers die Ereignisse am Ende wieder zu  _
aktivieren
On Error GoTo ErrorHandler
'Ereignisse ausschalten, um das Change-Ereignis nicht erneut auszulösen
'Application.EnableEvents = False
Application.DisplayAlerts = False
'Eine Range-Variable deklarieren
Dim rngZelle As Range
'jede Zelle innerhalb des Target-Bereiches durchlaufen
For Each rngZelle In Target
'Prüfen, welche Zellfarbe vorhanden ist
If .Cells(rngZelle.Row, rngZelle.Column).Interior.ColorIndex = xlNone Then
.Cells(rngZelle.Row, rngZelle.Column).Interior.Color = RGB(255, 255, 0)
Exit For
Else
.Cells(rngZelle.Row, rngZelle.Column).Interior.ColorIndex = xlNone
Exit For
End If
Next rngZelle
Counter = 0
For Each rngZelle In .Range("A22:T26")
If Cells(rngZelle.Row, rngZelle.Column).Interior.Color = RGB(255, 255, 0) Then
Counter = Counter + Cells(rngZelle.Row, rngZelle.Column).Value
End If
Next rngZelle
'Endergebnis der Berechnung einfügen
.Cells(28, 4).Value = Counter
Cancel = True
End With
ErrorHandler:
Application.EnableEvents = True   'Ereignisse wieder einschalten
Application.DisplayAlerts = True
End Sub
Auf meinem Rechner läuft der Code wie geschmiert. Nun ruft mich eine
Kollegin an, die diese Datei auf ihrem Rechner auch benützen sollte.
Nun kommt bei ihr der Laufzeitfehler 1004 mit dem Hinweis auf die Range-Methode.
Ich weiß nicht mehr weiter und auch nicht wirklich, wonach ich bei Google
suchen sollte.
Neustart bei dem anderen Rechner haben wir gemacht!
Wäre euch um Hilfe echt dankbar!
Gruß
A.

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

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 1004
04.11.2015 18:50:23
Uduuh
Hallo,
da fehlt der . vor Cells.
    For Each rngZelle In .Range("A22:T26")
If Cells(rngZelle.Row, rngZelle.Column).Interior.Color = RGB(255, 255, 0) Then
Counter = Counter + Cells(rngZelle.Row, rngZelle.Column).Value
End If
Next rngZelle

Warum arbeitest du anstatt mit
Cells(rngZelle.Row, rngZelle.Column)
nicht mit rngZelle?
        If rngZelle.Interior.Color = RGB(255, 255, 0) Then
Counter = Counter + rngZelle.Value
Gruß aus’m Pott
Udo

Anzeige
AW: Laufzeitfehler 1004
05.11.2015 08:34:32
Albert
Guten Morgen zusammen,
bei der Zeile...
Set Bereich = .Range("E22:E25;J22:J26;O22:O26;T24:T26")
sind die einzelnen Bereiche mit Union(.range("E22:E25"), .Range("J22:J26"), usw. usw. usw.)
zu beschreiben!
Danke für deine Hilfe
Gruß
A

AW: Laufzeitfehler 1004
05.11.2015 08:40:37
matthias
Hallo Uduuh,
das stimmt nicht, mit einem Komma statt Semikolon als Trennzeichen funktioniert auch seine Schreibweise. Kann man übrigens sehr gut ausprobieren.
Sub test()
Dim rRange As Range, rZelle As Range
Set rRange = Range("E22:E25,J22:J26,O22:O26,T24:T26")
For Each rZelle In rRange
MsgBox rZelle.Address
Next
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige