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

"Anwendungs- oder Objektdefinierter Fehler" Active

Forumthread: "Anwendungs- oder Objektdefinierter Fehler" Active

"Anwendungs- oder Objektdefinierter Fehler" Active
12.08.2005 15:57:35
Stephan
Hallo zusammen!
ich habe ein seltsames Problem. Ich habe zwei Excel Files, die beide folgende VBA-Funktion haben:

Sub FülleZeile()
If Selection.Cells(1, 1).Column = 2 Then
ActiveCell.Offset(0, 8).Range("A1").Select
ActiveCell.FormulaR1C1 = "=222/3200*RC[1]"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "3200"
End If
End Sub

Bei einem Excel-Sheet funktioniert es einwandfrei, beim Anderen kommt "Anwendungs- oder Objektdefinierter Fehler" (Code 1004).
Bei dieser Zeile: ActiveCell.FormulaR1C1 = "=222/3200*RC[1]"
Ich komme einfach nicht drauf :(
Anzeige

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: "Anwendungs- oder Objektdefinierter Fehler" Active
12.08.2005 16:35:15
IngGi
Hallo Stephan,
ActiveCell.Offset(0, 8).Range("A1").Select
ActiveCell.Offset(0, 8).Select
Was macht denn die obere Zeile? Die untere würde die Zelle 8 Spalten recht von der aktiven Zelle auswählen.
Und: Sehe ich dass richtig, dass dein Makro 222 durch 3200 teilt und mit der Zahl rechts daneben multipliziert? Da du rechts daneben ebenfalls 3200 reinschreibst, hiesse die Rechnung dann =222/3200*3200 ?
Gruß Ingolf
Anzeige
AW: "Anwendungs- oder Objektdefinierter Fehler" Active
12.08.2005 16:45:14
Stephan
Hallo Ingolf,
ActiveCell.Offset(0, 8).Range("A1").Select
ActiveCell.Offset(0, 8).Select
=Was macht denn die obere Zeile? Die untere würde die Zelle 8 Spalten recht von der =aktiven Zelle auswählen.
Die obere tut das gleiche - denke ich :) bzw. sollte es. Das ist alter Code, da ich grad von Excel 97 auf 2003 umbaue!
=Und: Sehe ich dass richtig, dass dein Makro 222 durch 3200 teilt und mit der Zahl =rechts daneben multipliziert? Da du rechts daneben ebenfalls 3200 reinschreibst, hiesse =die Rechnung dann =222/3200*3200 ?
Genau!
Hat den Sinn, dass dann die Formel drin steht und man dann die Werte ändern kann, falls gewünscht.
Viele Grüße,
Stephan
Anzeige
AW: "Anwendungs- oder Objektdefinierter Fehler" Active
12.08.2005 16:55:51
IngGi
Hallo Stephan,
keine Änderung, wenn du in den beiden Zeilen das "Range("A1")." entfernst?
Gruß Ingolf
AW: "Anwendungs- oder Objektdefinierter Fehler" Active
12.08.2005 19:42:53
Stephan
Nein, leider nicht.
Der Fehler steckt bei dem RC[1] - das mag er nicht, genau da kommt der Fehler, ohne das gehts.
AW: "Anwendungs- oder Objektdefinierter Fehler" Active
12.08.2005 17:15:42
Fred
Hi,

Sub FülleZeile()
If Selection.Column = 2 Then
ActiveCell.Offset(0, 8).FormulaR1C1 = "=222/3200*RC[1]"
ActiveCell.Offset(0, 9) = 3200
End If
End Sub

mfg Fred
Anzeige
AW: "Anwendungs- oder Objektdefinierter Fehler" Active
12.08.2005 19:45:31
Stephan
Hallo Fred,
leider funktioniert dein Code auch nicht. Gleicher Fehler.
Das Problem ist ja an sich nicht der Code. Der funktioniert ja auch in einer anderen Excel Tabelle, aber in der einen eben nicht.
Der Fehler tritt bei dem RC[1] auf - ohne geht sowohl Dein, als auch mein Code :(
Vlg,
Stephan
Anzeige
AW: "Anwendungs- oder Objektdefinierter Fehler" Active
12.08.2005 19:47:28
Fred
Hi,
vielleicht bist du schon zuweit rechts? Verbundene Zellen? Blattschutz?
mfg Fred
AW: "Anwendungs- oder Objektdefinierter Fehler" Active
12.08.2005 19:54:37
Stephan
Hi!
Nein, weder Blattschutz, noch sonstwas.
Wenn ich RC[1] entferne - dann gehts.
Ich habe zwei identische Files, einmal gehts - einmal nicht. Seltsamerweise :/
Kann man das RC[1] durch was anderes ersetzen?
Hab ich irgendwas deaktiviert - Verweise vergessen?
Anzeige
AW: "Anwendungs- oder Objektdefinierter Fehler" Active
12.08.2005 19:56:53
Fred
Hi,
anderes Blatt in der selben Mappe?
Blatt auswechseln?
mfg Fred
AW: "Anwendungs- oder Objektdefinierter Fehler" Active
12.08.2005 20:16:53
Stephan
Die Funktionen werden auf verschiedenen Blättern verwendet und funktionieren dort alle nicht, immer wenn ein Verweis auf RC kommt, wie *RC[9] oder so.
In einer anderen Datei funktionieren Sie tadellos.
AW: "Anwendungs- oder Objektdefinierter Fehler" Active
12.08.2005 20:21:23
Fred
Hi,
das deutet darauf hin, dass die Mappe beschädigt ist.
mfg Fred
Anzeige
AW: "Anwendungs- oder Objektdefinierter Fehler" Active
12.08.2005 20:28:37
Stephan
Also öffnen&reparieren habe ich soeben ausgeführt - gleicher Effekt.
Die Mappe neu basteln ist vom Arbeitsaufwand her unrentabel.
MMh, kann ich den Z1S1-Bezug per Hand nachbilden?
Danke!
AW: "Anwendungs- oder Objektdefinierter Fehler" Active
12.08.2005 20:33:22
Fred
Hi,
lad die fehlerhafte Mappe mal hoch, nur das eine Blatt.
mfg Fred
AW: "Anwendungs- oder Objektdefinierter Fehler" Active
12.08.2005 20:41:16
Stephan
Ich habe es hochgeladen:
https://www.herber.de/bbs/user/25602.xls
Anzeige
AW: "Anwendungs- oder Objektdefinierter Fehler" Active
12.08.2005 20:59:14
Fred
Hi,
na ja, das entsprechende Makro sollte schon vorhanden sein.
mfg Fred
AW: "Anwendungs- oder Objektdefinierter Fehler" Active
12.08.2005 20:58:15
Stephan
Wahrscheinlich kannst du damit nichts anfangen:
Hab dir die komplette Mappe hochgeladen - es geht insbesondere um das Arbeitsblatt mwrot
http://www.huewe.info/trash/_Vorlage.xls
Der Cursor soll in der Spalte B stehen, mit STRG+A wird das script zu füllezeilemwrot ausgeführt.
Anzeige
AW: "Anwendungs- oder Objektdefinierter Fehler" Active
12.08.2005 21:41:55
Fred
Hi,
deine Mappe ist defekt. Dasselbe, ich habs mal nachgestellt, in einer neuen Mappe
läuft problemlos. Wenn ich dann ein Blatt aus der neuen Mappe in deine reinkopiere,
kommt wieder der Fehler.
mfg Fred
AW: "Anwendungs- oder Objektdefinierter Fehler" Active
12.08.2005 21:52:37
Stephan
Super! Vielen Dank für die Bestätigung.
Wenn ich die Blätter in eine neue Mappe kopiere, gehts dann wieder?
Anzeige
AW: "Anwendungs- oder Objektdefinierter Fehler" Active
12.08.2005 21:52:51
Stephan
Super! Vielen Dank für die Bestätigung.
Wenn ich die Blätter in eine neue Mappe kopiere, gehts dann wieder?
AW: "Anwendungs- oder Objektdefinierter Fehler" Active
12.08.2005 22:04:47
Stephan
Hi! Es funktioniert wieder!
Vielen lieben Dank für Deine Hilfe - an diesen Fall hatte ich absolut nicht gedacht!!!
Wenn ich Dir was schuldig bin, oder mich revanchieren kann, lass es mich wissen!
Gruß,
Stephan
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Anwendungs- oder Objektdefinierter Fehler in Excel VBA beheben


Schritt-für-Schritt-Anleitung

  1. Öffne die betroffene Excel-Datei: Stelle sicher, dass du die Datei mit dem Fehler geöffnet hast.
  2. Aktiviere den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Finde das Makro: Suche das Makro, das den Fehler verursacht. In diesem Beispiel handelt es sich um FülleZeile().
  4. Überprüfe die fehlerhafte Zeile: Achte auf die Zeile, die den Fehler verursacht, in diesem Fall:
    ActiveCell.FormulaR1C1 = "=222/3200*RC[1]"
  5. Teste Änderungen: Entferne Range("A1") und teste, ob der Fehler weiterhin auftritt.
  6. Überprüfe die Zellreferenzen: Stelle sicher, dass die Zellen, auf die verwiesen wird, existieren und nicht verbunden sind.
  7. Speichere die Datei und teste das Makro erneut: Führe das Makro aus, um zu sehen, ob der Fehler behoben wurde.

Häufige Fehler und Lösungen

  • Fehler: Anwendungs- oder objektdefinierter Fehler:

    • Ursache: Dieser Fehler kann auftreten, wenn auf eine Zelle verwiesen wird, die nicht existiert oder verbunden ist.
    • Lösung: Überprüfe, ob die Zelle, die du ansprechen möchtest, existiert und nicht durch einen Blattschutz oder andere Funktionen blockiert ist.
  • Fehler 1004:

    • Ursache: Ein häufiges Problem in VBA, wenn die Syntax oder die Zellreferenz nicht korrekt ist.
    • Lösung: Stelle sicher, dass die verwendete Formel korrekt ist und die Referenzen in der richtigen Form vorliegen.

Alternative Methoden

  • Verwende Cells anstelle von ActiveCell:

    Cells(ActiveCell.Row, ActiveCell.Column + 8).FormulaR1C1 = "=222/3200*RC[1]"
  • Direkte Zuweisung: Anstatt die Formel zu setzen, kannst du die Berechnung direkt in die Zelle schreiben:

    Cells(ActiveCell.Row, ActiveCell.Column + 8).Value = 222 / 3200 * Cells(ActiveCell.Row, ActiveCell.Column + 1).Value

Praktische Beispiele

Hier ist ein Beispiel für ein funktionierendes Makro, das den Fehler vermeidet:

Sub FülleZeile()
    If Selection.Column = 2 Then
        Cells(ActiveCell.Row, ActiveCell.Column + 8).FormulaR1C1 = "=222/3200*RC[1]"
        Cells(ActiveCell.Row, ActiveCell.Column + 9).Value = 3200
    End If
End Sub

Tipps für Profis

  • Vermeide die Verwendung von ActiveCell: Verwende stattdessen direkte Zellreferenzen, um Fehler zu vermeiden.
  • Testen in einer neuen Arbeitsmappe: Wenn du auf einen vba anwendungs oder objektdefinierter fehler stößt, kopiere dein Blatt in eine neue Arbeitsmappe und teste dein Makro dort.
  • Verwende Option Explicit: Dies zwingt dich dazu, alle Variablen zu deklarieren, was viele Fehler vermeiden kann.

FAQ: Häufige Fragen

1. Was verursacht den Fehler "Anwendungs- oder objektdefinierter Fehler"? Dieser Fehler tritt auf, wenn eine Referenz in VBA nicht korrekt ist, z.B. wenn auf eine nicht existierende Zelle verwiesen wird.

2. Wie kann ich den Fehler 1004 in VBA beheben? Überprüfe die Zellreferenzen und stelle sicher, dass die Zellen, auf die du zugreifst, nicht leer oder verbunden sind.

3. Was kann ich tun, wenn mein Arbeitsblatt beschädigt ist? Kopiere die Blätter in eine neue Arbeitsmappe. Dies kann oft helfen, wenn du wiederkehrende Fehler in einem bestimmten Arbeitsblatt hast.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige