CALC: Fehlermeldung "Eigenschaft/Methode nicht gefunden"

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: CALC: Fehlermeldung "Eigenschaft/Methode nicht gefunden"

Re: CALC: Fehlermeldung "Eigenschaft/Methode nicht gefunden"

von theindless » Mo, 16.04.2012 21:56

Hallo DPunch,

danke für den Tip. Damit kommst du ein bischen einer Nachfrage von mir zuvor.

Was sind eure Erfahrungen mit der Benennung von Variablen (gemeint sind diejenigen, die schon länger programmieren und das Problem oder Eigenheiten kennen!)?
Sollte z.B. in 1 Bibliothek keine gleichen Variablen vorkommen? Oder nur in 1 Dialog?

Oder reicht es, wie DPunch vorschlägt, alle Variablen als leer in jedem Sub-Dialog zu definieren?

Prinzipiell möchte ich nämlich ein gewisses System haben, dass z.B. immer mit

oDoc = ThisComponent

beginnt, oder so....
Sonst halte ich das für eher schwierig!

Wie sind eure Erfahrungen?

Re: CALC: Fehlermeldung "Eigenschaft/Methode nicht gefunden"

von DPunch » Mo, 16.04.2012 19:08

Servus

Stell doch mal an den Anfang der Prozedur die Codezeilen

Code: Alles auswählen

Dim Ziel
Dim Datum
Dadurch werden für die Laufzeit der Prozedur alle eventuell im Scope existierenden Variablen mit gleichem Namen durch neue, leere, lokale Variablen ersetzt.
Wenn diese Codezeilen Deinem Problem Abhilfe schaffen, kannst Du das Problem schonmal eingrenzen.
Das pure Umbenennen aller anderen Vorkommen, wie Stephan es vorschlägt, verfolgt zwar das gleiche Ziel, schliesst aber nicht aus, dass das Problem trotzdem an einer Merkwürdigkeit von OOo hängt - bei meiner Installation von OpenOffice ist zum Beispiel die Variable "y" stets als ein Array mit 6 Elementen vordefiniert, obwohl ich die Variable in keinem Modul in keiner Bibliothek definiere, weder lokal noch global.

Der Fehler an sich ist jedenfalls weder durch einen Blick auf den Code erklärbar noch ist er für mich reproduzierbar.

Re: CALC: Fehlermeldung "Eigenschaft/Methode nicht gefunden"

von theindless » Mo, 16.04.2012 16:16

Hallo Stephan,

danke für die Hilfestellung.

Das mit den Variablen-Namen werde ich mal noch probieren.

Bin ja schon beruhigt, dass ich nicht einen offensichtlichen Blödsinn produziert hab :)

Re: CALC: Fehlermeldung "Eigenschaft/Methode nicht gefunden"

von Stephan » Mo, 16.04.2012 16:10

Ich habe heute noch einige andere Macros geschrieben, in welchen ich grundsätzlich auch gleiche Variablen-Bezeichnungen verwende.
Aber wenn ich keine globalen Variablen verwende, müsste das doch unproblematisch sein, oder??
Jein.

Ich würde in jedem Fall testweise Namen verwenden die sich klar unterscheiden um sicher auszuschließen das hier kein Problem liegt.


Meine Antwort ist hier durchaus etwas ungenau oder unbefriedigend, die WAhrheit ist nur das ich im Laufe der Jahre schon zu viele Ungereimtheiten bei der OOo-Makroprogrammierung erlebt habe, als das ich mich auf irgendwas blindlinks verlassen würde, nur weil es eigentlich so sein sollte.
Das Ganze auszuprobieren ist im Zweifel immer zu empfehlen, denn selbst wenn die dazu nötigen Änderungen aus irgendwelchen Gründen nicht dauerhaft benutzt werden können/sollen ist allein schon die Gewissheit wie man einen FEhler ausschließen kann eine wertvolle Erkenntnis.

Im Übrigen habe ich derzeitig für DEin konkretes Problem ohnehin keinen weiteren RAtschlag, so das auch so gesehen die versuchweise Umbenennung von Variablen (ggf. Makro-namen etc.) ein SChritt wäre überhaupt etwas zu versuchen.


Gruß
Stephan

Re: CALC: Fehlermeldung "Eigenschaft/Methode nicht gefunden"

von theindless » Mo, 16.04.2012 15:38

Hallo Stephan,

leider hat auch die Änderung des Codes nach deinen Vorschlägen nichts gebracht.
Die Fehlermeldung blieb unverändert.

Ich habe jetzt auf Verdacht nochmal alle OO-Instanzen geschlossen und die Datei neu geöffnet.

Nun funktioniert der ursprüngliche Code wieder!

Verstehe ich nicht...

Ich habe heute noch einige andere Macros geschrieben, in welchen ich grundsätzlich auch gleiche Variablen-Bezeichnungen verwende.
Aber wenn ich keine globalen Variablen verwende, müsste das doch unproblematisch sein, oder??

Re: CALC: Fehlermeldung "Eigenschaft/Methode nicht gefunden"

von Stephan » Mo, 16.04.2012 15:26

Ich habe die von dir geposteten Schritte durchgeführt und erhalte für die MsgBox zu Datum bereits eine Fehlermeldung.
dann scheint zumindestens die ursprüngliche Fehlermeldung korrekt zu sein und meine Mutmaßung daas vielleicht eiune irreführende Meldung vorläge unbegründet.

Mir ist aber trotzdem weiter unklar was der eigentliche Grund für den Fehler ist. Da das CopyRange mein MIßtrauen erweckt verwende testweise statt:

Code: Alles auswählen

Zielbereich = Ziel.getCellByPosition(0,3)
ZielbereichAdresse = Zielbereich.getCellAddress

Ziel.copyRange(ZielbereichAdresse,Ursprungsbereichadresse)

Datum = Ziel.getCellByPosition(4,3)
Datum.Value = CDate(Date)
den Code:

Code: Alles auswählen

Zielbereich = Ziel.getCellByPosition(0,3)
ZielbereichAdresse = Zielbereich.getCellAddress

ziel_x = Ziel

Ziel.copyRange(ZielbereichAdresse,Ursprungsbereichadresse)

Datum = ziel_x.getCellByPosition(4,3)
Datum.Value = CDate(Date)

Hilft das?



Gruß
Stephan

Re: CALC: Fehlermeldung "Eigenschaft/Methode nicht gefunden"

von theindless » Mo, 16.04.2012 15:00

Hallo Stephan,

danke schon mal für die Hilfe!

Der Code, der in meinem ersten Beitrag gepostet ist, enthält die komplette Sub-Routine, die ich der Schaltfläche zugewiesen habe.
Ich habe keinerlei globalen Variablen zugewiesen.

Ich habe die von dir geposteten Schritte durchgeführt und erhalte für die MsgBox zu Datum bereits eine Fehlermeldung.

Die MsgBox zu Ziel hat den im Anhang enthaltenen Screenshot geliefert:
Dateianhänge
Ziel_properties.jpg
Ziel_properties.jpg (122.62 KiB) 2035 mal betrachtet

Re: CALC: Fehlermeldung "Eigenschaft/Methode nicht gefunden"

von Stephan » Mo, 16.04.2012 14:51

Habt ihr Tipps für mich, woraus die Fehlermeldung resultieren könnte!?
Die Fehlermeldung besagt inhaltlich das die Eigenschaft .Value für das Objekt Datum nicht gefunden wurde.
(Das weiß man deshalb weil die Rede ist von 'Eigenschaft oder Methode', Value jedoch eine Eigenschaft ist und weil sich .Value in der genannten Codezeile nur auf das Objekt "Datum" bezieht.)

Diese Feststellung ist relativ banal, aber eine weitere Schlußfolgerung kann ich zunächst nicht treffen, da ja die Zeile:

Code: Alles auswählen

Datum = Ziel.getCellByPosition(4,3)
offensichtlich keinen Fehler lieferte und somit "Datum" tatsächlich ein Zellobjekt repräsentieren sollte, welches dann aber auch die .Value-Eigenschaft haben müßte.

Immer vorausgesetzt das ich nichts übersehe.


In dieser Situation müßtes Du das Makro debuggen um dem Fehler auf die Spur zu kommen. Hierzu gibt es verschiedene WEge, ich würde jedoch in der konkreten Situation bevorzugen den Code wie folgt zu ergänzen:

Code: Alles auswählen

Datum = Ziel.getCellByPosition(4,3)
Msgbox Datum.dbg_properties
Datum.Value = CDate(Date)
wodurch ein Meldefenster mit den Eigenschaften von DAtum angezeigt werden sollte oder evtl. schon hier eine Fehlermeldung erfolgt. Wenn ein Meldefenster angezeigt wird (und das in der Situation geschieht wo danach die Fehlermeldung in der nächsten Zeile auftritt) kann man aus dem Meldefenster ersehen welcher Typ von Object vorliegt.

Dazu müßtest Du einen Screenshot posten oder die erste Zeile "properties of ..." abschreiben.

KOmmt hingegen kein meldungsfenster sondern schon in Zeile "Msgbox Datum.dbg_properties" eine Fehlermeldung müßte man als Nächstes "Ziel" untersuchen indem man z.B. nun den Code ändert in:

Code: Alles auswählen

Msgbox Ziel.dbg_properties
Datum = Ziel.getCellByPosition(4,3)
Datum.Value = CDate(Date)


und sich wieder die Anzeige anschaut.


Leider weiß ich nicht vorab welcher Fehler wahrscheinlich ist, sofern Du den Code exakt wiedergegeben hast, denn die 2 aufeinanderfolgenden Zeilen:

Code: Alles auswählen

Datum = Ziel.getCellByPosition(4,3)
Datum.Value = CDate(Date)
sind eigentlich 'sicher' insofern ich nicht wüßte wie die erste Zeile fehlerfrei laufen könnte und gleichzeitig die zweite Zeile einen Fehler zeigt. Aufgrund der Aussage:
aber nach erneutem Laden des Dokuments hat alles wieder funktioniert.
würde ich vielleicht mutmaßen das irgendwo eine Variable falsch belegt ist und beim Neuladen neu initialisiert wird, aber ich kann aus dieser Mutmaßung nichts Greifbares schlußfolgern.
Möglich ist leider auch (und passiert bei OOo gelegentlich) das die FEhlermeldung ansich bereits irreführend ist, also der Text der FEhlermeldung nicht stimmt und das eigentliche Problem etwas ganz Anderes ist, ich kann jedoch zunächst keine Auffälligkeiten im Code feststellen.

Extrem wichtig ist in jedem Fall das Du den Code hier im Forum exakt so wiedergibts wie er ist, also keine Kopierfehler machst.


Gruß
Stephan

CALC: Fehlermeldung "Eigenschaft/Methode nicht gefunden"

von theindless » Mo, 16.04.2012 12:53

Hallo,

ich habe folgenden Code geschrieben und der hat bisher auch bestens funktioniert (Zeile auf anderes Tabellenblatt verschoben und Datum gesetzt):

Code: Alles auswählen

Sub NA_Archivieren

Dim Dokument As Object, Auswahl As String

Dokument = ThisComponent
Ursprung = Dokument.Sheets.getByName("NA")
Ziel = Dokument.Sheets.getByName("Historie NA")

Zelle = Dokument.getCurrentSelection().getCellAddress()
Zeile = Zelle.Row

Ursprungsbereich = Ursprung.getCellRangeByPosition(0, Zeile, 255, Zeile)
UrsprungsbereichAdresse = Ursprungsbereich.getRangeAddress

ZielZeilen = Ziel.getRows
ZielZeilen.insertByIndex(3,1)

Zielbereich = Ziel.getCellByPosition(0,3)
ZielbereichAdresse = Zielbereich.getCellAddress

Ziel.copyRange(ZielbereichAdresse,Ursprungsbereichadresse)

Datum = Ziel.getCellByPosition(4,3)
Datum.Value = CDate(Date)

UrsprungsZeilen = Ursprung.getrows
UrsprungsZeilen.removeByIndex(Zeile,1)

End Sub
Plötzlich erhalte ich jedoch folgende Fehlermeldung in der Zeile

Code: Alles auswählen

Datum.Value = CDate(Date)
"Eigenschaft oder Methode nicht gefunden: Value"


Bisher hat das ganze jedoch bestens funktioniert!?
Ich hatte die Fehlermeldung schon einmal, aber nach erneutem Laden des Dokuments hat alles wieder funktioniert.

Habt ihr Tipps für mich, woraus die Fehlermeldung resultieren könnte!?

Nach oben