Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1812to1816
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
17.02.2021 13:24:01
Frederick
Hallo mal wieder.
Ich habe ein problem mit dem aktivieren einer Zeller während einer for each cell in range schleife.
Hier der gesamte Code:
Sub Berechnung()
Dim Mßnm As String
Mßnm = "BoraII"
For Each Cell In Sheets("Daten").Range("A1:A500")
Cell.Activate
If InStr(1, ActiveCell.Value, BoraII, 0) > 0 Then
ActiveCell.Offset(0, 4).Copy
Sheets("Auswertung").Cells(3, 6).PasteSpecial
Sheets("Auswertung").Cells(2, 6).Value = Sheets("Auswertung").Cells(2, 6).Value +  _
Sheets("Auswertung").Cells(3, 6).Value
Sheets("Auswertung").Cells(3, 6).ClearContents
End If
Next
End Sub

Wenn ich das ganze so ausführe bekomme ich den Laufzeitfehler 1004 mit der Anmerkung:"Die activate-Methode des Range Objekts konnte nicht ausgeführt werden.
Danke schonmal im vorraus
Frederick

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 1004
17.02.2021 13:30:39
Frederick
Es kann so einfach sein. Einfach ein s vergessen ^^
AW: Laufzeitfehler 1004
17.02.2021 13:32:10
Rudi
Hallo,
Select und Activate sind in VBA zu 99% überflüssig.
Was soll die Kopiererei, wenn du anschließen wieder löschst?
Keine Sonderzeiche/ Umlaute in VBA verwenden!
Sub Berechnung()
Dim s As String, Cell As Range
s = "BoraII"
For Each Cell In Sheets("Daten").Range("A1:A500")
If InStr(1, Cell.Value, s, 0) > 0 Then
Sheets("Auswertung").Cells(2, 6).Value = Sheets("Auswertung").Cells(2, 6).Value + Cell. _
Offset(, 4)
End If
Next
End Sub

Gruß
Rudi
AW: Laufzeitfehler 1004
17.02.2021 13:32:31
Daniel
HI
das aktivieren einer Zelle funktioniert immer nur im aktiven Tabellenblatt.
das Cell in diesem fall an das Blatt "Daten" gebunden ist, muss "Daten" das aktive Tabellenblatt sein und zuerst aktiviert werden.
also entweder ein Sheets("Daten") vorausschicken oder mit Application.Goto Cell arbeiten, dass kann Blatt und Zelle gleichzeitig in einem Schritt aktivieren.
allerdings würde ich auf das Activate verzichten und den Code so schreiben, dass er unabhängig von aktivem Blatt und Zelle funktioniert.
Dazu reicht es in deinem Codebeispiel aus, das ActiveCell durch Cell (also deine Schleifenvariable) zu ersetzen.
der Rest ist ja schon vollständig referenziert.
das Aktivieren und Selektieren im Code würde ich nur parallel für die Testphase mitlaufen lassen wenn ich beobachten will, was der Code macht.
Für den normalen Ablauf sollte der Code ohne das auskommen.
Gruß Daniel
Anzeige
AW: Laufzeitfehler 1004
17.02.2021 13:44:52
Frederick
Perfekt, funktioniert super. vielen Dank!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige