"Objektvariable nicht belegt" bei Tabellenstart

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: "Objektvariable nicht belegt" bei Tabellenstart

Re: "Objektvariable nicht belegt" bei Tabellenstart

von DerThomas » Do, 29.01.2009 12:53

Hallo Jürgen,

super, danke für Deine Hilfe :D

Mit dem "goto" im Sub hatte ich die Fehlermeldung immernoch (vielleicht hatte ich es falsch umgesetzt) und ich hab dann ein bischen weiter probiert. Jetzt sieht der Code so aus :

Code: Alles auswählen

function Button_aktivieren(wert)
	on error goto weiter
	if wert <> 0 then : Button_control
	end if
	weiter:
end function

Sub Button_control
   	Dim vButton, vForm
   	Dim oForms
   	myDoc = thisComponent
	mySheet = myDoc.sheets(0)
	mycell = mysheet.getCellByRange("$A$1")
	myvalue=mycell.value
   	oForms = ThisComponent.CurrentController.ActiveSheet.DrawPage.Forms
   	vForm = oForms.getByIndex(0)
   	vButton = vForm.getByName("PushButton")
   	if myvalue = 3 then : vButton.enabled = True
   	else : vButton.enabled = False
   	end if
End Sub
Das funktioniert :D

Möchtest Du die fertige Tabelle einmal sehen ? Falls ja sende ich sie gerne, pm mir einfach Deine Email Adresse !

Nochmals vielen Dank für Deine Hilfe, hat mich ein großes Stück weiter gebracht :)

Viele Grüße !

Thomas

Re: "Objektvariable nicht belegt" bei Tabellenstart

von turtle47 » Mi, 28.01.2009 21:02

Hallo Thomas,

so wie Du das Makro jetzt aufgbaut hast, dann wird Zelle "A1" auf jede beliebige Zahl geprüft und das natürlich auch beim Starten der Datei.

Die Sub "Button_enabled" wird also schon dann ausgeführt wenn die Datei noch nicht vollständig geladen ist.

Um den Fehler zu unterdrücken kannst Du folgendes machen:
Schreibe am Anfang der Sub "Button_enabled"

Code: Alles auswählen

Sub Button_enabled
	on error goto weiter
	.......
als Ender Sub

Code: Alles auswählen

   .........
   weiter:
End Sub
So wird die Fehlermeldung unterdrückt.
Damit werden andere Fehler die Auftreten könnten, was bei diesem kleinen Makro zwar unwahrscheinlich ist, zwar auch unterdrückt, aber in diesem Fall praktikabel.

Viel Erfolg.

Jürgen

"Objektvariable nicht belegt" bei Tabellenstart

von DerThomas » Mi, 28.01.2009 19:52

Guten Abend,

Jürgen hatte mir eine schöne Hilfe für die Aktivierung eines Buttons mit einem Makro geschrieben. Der Button sollte dabei aktiv werden, wenn 3 Felder einen bestimmten Wert hatten. Das hat auch super geklappt, danke nochmal :)

Ich wollte jetzt aber, wenn eines der drei Felder geändert wird, das der Button wieder inaktiv wird. Das hat wunderbar geklappt mithilfe von diesem Makro, das ich mir aus Jürgens erstem Makro und Stefans Site zusammen geschustert habe :

Code: Alles auswählen

function Button_aktivieren()
	myDoc = thisComponent
	mySheet = myDoc.sheets("start")
	mycell = mysheet.getCellByPosition(0,0)
	myvalue=mycell.value
	if myvalue <> 0 then : Button_enabled
	end if
end function

Sub Button_enabled
   Dim vButton, vForm
   Dim oForms
   	myDoc = thisComponent
	mySheet = myDoc.sheets(0)
	mycell = mysheet.getCellByPosition(0,0)
	myvalue=mycell.value
   oForms = ThisComponent.CurrentController.ActiveSheet.DrawPage.Forms
   vForm = oForms.getByIndex(0) 'Erstes Tabellenblatt
   vButton = vForm.getByName("PushButton") 'Name der Schaltfläche
   'vButton.Label = "Tabelle ausblenden" 'Beschriftung der Schaltfläche (Titel)
   
   if myvalue = 3 then : vButton.enabled = True 'Schaltfläche aktivieren
   else : vButton.enabled = False 'Schaltfläche deaktivieren
   end if
End Sub[/co
Das funktioniert wunderbar, und mit Hilfe des anderen Makros von Jürgen wird die Tabelle "Start" dann ausgeblendet, wenn der aktivierte Button gedrückt wird. Soweit, so gut. Speichere ich die Tabelle aber jetzt und starte sie neu, bekomme ich diese Fehlermeldung : "BASIC-Laufzeitfehler Obejektvariable nicht belegt"
Liegt das daran das die Tabelle "Start" ausgeblendet ist ? Und wenn ja, wie kann ich diese Fehlermeldung umgehen ?

Ich wäre echt dankbar für jede Hilfe !

Nach oben