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

Anwendungs- / objektdefinierter Fehler

Anwendungs- / objektdefinierter Fehler
31.05.2023 09:31:43
Thomas

Ich habe in einem Blatt eine Zelle benannt ("radius"). Dieser Wert wird in dem Blatt in anderen Zellen verwendet für Berechnungen.
Wenn ich in VBA nun schreibe
Worksheets("Tabellen").Range("radius").Value = 200,
wird ein Fehler 1004, "Anwendungs- oder objektdefinierter Fehler" ausgelöst. ("radius" bezieht sich nur auf eine Zelle, nicht auf mehrere)
Kann ich das irgendwie umgehen?
(Application.Range("radius").Value = 200 macht gleichen Fehler)

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Anwendungs- / objektdefinierter Fehler
31.05.2023 09:39:54
Fennek
Hallo,

am Namen sollte es nicht liegen. Hier ging das (Randius: mehrere Zellen, Test: eine Zelle)


Range("Radius").Value = 100
Range("Test").Value = 200


Ist der Tabellen-Name falsch?

mfg



AW: Anwendungs- / objektdefinierter Fehler
31.05.2023 12:18:24
Thomas
Hattest Du die Werte 'radius' oder 'test' zu Berechnungen in anderen Zellen verwendet?


AW: Anwendungs- / objektdefinierter Fehler
31.05.2023 10:03:30
Daniel
HI
vermutlich hast du den Tabellenblattnamen falsch geschrieben.
wenn der Name für die gesamte Arbeitsmappe gültig ist (und das ist er normalerweise, wenn du es nicht extra angeben hast), dann kannst du den Namen auch ohne Angabe des Sheets verwenden, also nur Range("Radius")
Solltest du das Tabellenblatt davor schreiben, dann musst du darauf achten, dass es auch das richtige ist, nämlich das, auf welches der Name referenziert
Gruß Daniel


Anzeige
AW: Anwendungs- / objektdefinierter Fehler
31.05.2023 12:20:43
Thomas
Danke, Daniel, das ist es wohl nicht:
1. Debug.Print Worksheets("Tabellen").Range("radius").Cells.Count funktioniert
2. Application.Range("radius").Value = 200 macht gleichen Fehler


AW: Anwendungs- / objektdefinierter Fehler
31.05.2023 13:10:29
Thomas
Also nun hab ich selbst mal noch rumprobiert:
Diese Zuweisung eines Wertes an eine bezeichnete Zelle darf offenbar nicht in einer Function stehen. In einem Sub klappt das.
Einfacher Test:
Habe eine Zelle mit 'MyWert' bezeichnet.
im Sub

Sub eins()
   On Error Resume Next
   Application.Range("MyWert").Value = 200
   Debug.Print Err.Number, Err.Description
End Sub
klappt das, jedoch tritt besagter Fehler auf, wenn ich Function zwei aufrufe (einer Zelle das Ergebnis von Function zwei zuweise):

Function zwei() As Double
   On Error Resume Next
   Application.Range("MyWert").Value = 200
   Debug.Print Err.Number, Err.Description
   zwei = 5
End Function


Anzeige
AW: Anwendungs- / objektdefinierter Fehler
31.05.2023 13:21:36
Ulf

MsgBox "Der radius ist " & Application.ActiveWorkbook.Names("radius").RefersToRange.Value, vbInformation


AW: Anwendungs- / objektdefinierter Fehler
31.05.2023 14:10:59
Thomas
Danke Ulf, aber Auslesen ist nicht das Problem. Setzen verursacht den Fehler.
MsgBox Application.Range("MyWert").Value
Liefert das auch.


AW: Anwendungs- / objektdefinierter Fehler
31.05.2023 16:01:38
Ulf
Application.ActiveWorkbook.Names("radius").RefersToRange.Value=100 ?!


AW: Anwendungs- / objektdefinierter Fehler
31.05.2023 17:47:30
Thomas
Wie gesagt: Es liegt an der Function. Dein Code liefert in einer Function den gleichen Fehler.


AW: Anwendungs- / objektdefinierter Fehler
31.05.2023 20:47:49
Ulf
Liegt nicht an Function, sondern der Verwendung für einer selben in der die Grundlage der Berechnung verändert wird. xlCalulationState => https://de.wikipedia.org/wiki/Deadlock

Funktionen haben einen Typ, geben Werte zurück und verändern nicht die Basis.


Anzeige
AW: Anwendungs- / objektdefinierter Fehler
01.06.2023 09:13:27
Thomas
Siehe mein Beitrag am 31.05.2023 13:10:29.
Hier ändere ich lediglich den Wert der bezeichneten Zelle ohne sie sonst irgendwie zu verwenden. Daher wird durch den code auch kein deadlock erzeugt.
Probiers mal aus, dann wirst Du es sehen.


AW: Anwendungs- / objektdefinierter Fehler
01.06.2023 10:33:44
Pappawinni
Wenn der benannte Bereich nicht in der Tabelle liegt in der das Makro steht muss man tatsächlich Klimmzüge machen, um darauf zuzugreifen. Workbook.names("bla").referstorange.


AW: Anwendungs- / objektdefinierter Fehler
01.06.2023 11:16:29
Thomas
Das Makro steht in einem eigenen Modul. Der Zugriff auf den benannten Range ist nicht das Problem. Lesen geht problemlos. Schreiben geht nicht aus einer function heraus.


Anzeige
AW: Anwendungs- / objektdefinierter Fehler
01.06.2023 11:40:34
Daniel
wie rufst du denn die Function auf?
Functions dürfen nur dann eine Außenwirkung haben (also Zellwerte oder -formate verändern), wenn sie innerhalb von Makros verwendet werden, also von einer andern Sub aus aufgerufen werden.
Steht die Function jedoch in einer Formel in einer Excelzelle, so darf sie keine Außenwirkung haben und lediglich das Funktionsergebnis zurückgeben.
Wenn lesen geht und schreiben nicht, dann besteht immer auch die Möglichkeit, dass du den Blattschutz aktivert hast und die Zelle gesperrt ist.
aber bei "Excel gut" hast du das wahrscheinlich geprüft.

lad doch mal die Datei hoch, damit wir vollständig sehen, was du so machst und programmiert hast.
Gruß Daniel


Anzeige
AW: Anwendungs- / objektdefinierter Fehler
01.06.2023 13:06:35
Thomas
"Steht die Function jedoch in einer Formel in einer Excelzelle, so darf sie keine Außenwirkung haben und lediglich das Funktionsergebnis zurückgeben."
Aha. Das isses. Das habe ich sonst noch nirgends gefunden.
Beispiel anbei
https://www.herber.de/bbs/user/159407.xlsm


AW: Anwendungs- / objektdefinierter Fehler
01.06.2023 13:07:23
Thomas
Vielen Dank!!

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige