Ahoi, hab hier ein kleines Problem das sich in mein Makro eingeschlichen hatt..
Hier erstmal der Code :
Code: Alles auswählen
REM ***** BASIC *****
REM Sichtkanten Makro
Option Explicit
Sub Sichtkanten(oEvent)
dim oAuslesen, oDocument, oSheet(5) as Object
dim oDraw(5), oForm(5), oControler as Object
dim oCheckBox as Object
dim iSicht, Z, I as Integer
dim oCBLib, oLib, oRan, sTesT as String
oAuslesen = oEvent.Source.Model.Name
oDocument = StarDesktop.CurrentComponent
oSheet(0) = oDocument.Sheets.GetByName("Plattenerfassung")
oSheet(1) = oDocument.Sheets.GetByName("Granit Modul")
oSheet(2) = oDocument.Sheets.GetByName("Durabo Modul")
oSheet(3) = oDocument.Sheets.GetByName("GlassStone Modul")
oSheet(4) = oDocument.Sheets.GetByName("HILFSTABELLE2")
oSheet(5) = oDocument.Sheets.GetByName("Bestellformular")
oDraw(0) = oSheet(0).DrawPage
oDraw(5) = oSheet(5).DrawPage
oForm(0) = oDraw(0).Forms.GetByIndex(0)
oForm(5) = oDraw(5).Forms.GetByIndex(0)
oControler = oDocument.GetCurrentController
Select Case Val(Right(oForm(0).getByName(oAuslesen).Name,1))
Case 1 : Z = 11 : oRan = "$B$2" : oLib = "$F$2"
Case 2 : Z = 12 : oRan = "$H$2" : oLib = "$L$2"
Case 3 : Z = 13 : oRan = "$B$7" : oLib = "$F$7"
Case 4 : Z = 14 : oRan = "$H$7" : oLib = "$L$7"
Case 5 : Z = 22 : oRan = "$B$13" : oLib = "$F$13"
End Select
sTest = "Check Box " & Z
oCheckBox = oControler.GetControl(oForm(5).GetByName(sTest))
iSicht = Val(oSheet(4).GetCellRangeByName(oRan).String)
oCBLib = oSheet(4).GetCellRangeByName(oLib).String
If iSicht > 1 Then
If not(oSheet(1).GetRows().GetByIndex(Z).isVisible) Then
For I = 1 To 3
oSheet(I).GetRows().GetByIndex(Z).isVisible = True
Next I
oCheckBox.State = 0
End If
Else
If oSheet(1).GetRows().GetByIndex(Z).isVisible Then
For I = 1 To 3
oSheet(I).GetRows().GetByIndex(Z).isVisible = False
Next I
oCheckBox.State = 1
End If
End If
End Sub
Beim Ausführen des Codes bekomme ich folgende Fehlermeldung :
BASIC-Laufzeitfehler.
Es ist eine Exception aufgetreten
Type : com.sun.star.container.NoSuchElementException
Message : .
In folgender Zeile :
Code: Alles auswählen
oCheckBox = oControler.GetControl(oForm(5).GetByName(sTest))
Nur versteh ich nicht warum ich nun die Fehlermeldung bekommen, weil in nem anderen Makro benutz ich genau die gleiche Funktion um danach die oCheckBox.State zu überprüfen.
Nun hier will ich schlussendlich wenn ich diese Fehlermeldung überwinden kann...
die CheckBox Sichtbar/Unsichtbar machen
den Text der CheckBox ändern und
die CheckBox Checken/Unchecken
*****
Nebenbei werden auch Zeilen in 3 anderen Blättern Versteckt/resp. angezeigt dies funktionniert tadellos und wurde auch gestestet bevor ich die CheckBox eingebaut habe.
Ps Datei im Anhang

Ahoi, hab hier ein kleines Problem das sich in mein Makro eingeschlichen hatt..
Hier erstmal der Code :
[code]
REM ***** BASIC *****
REM Sichtkanten Makro
Option Explicit
Sub Sichtkanten(oEvent)
dim oAuslesen, oDocument, oSheet(5) as Object
dim oDraw(5), oForm(5), oControler as Object
dim oCheckBox as Object
dim iSicht, Z, I as Integer
dim oCBLib, oLib, oRan, sTesT as String
oAuslesen = oEvent.Source.Model.Name
oDocument = StarDesktop.CurrentComponent
oSheet(0) = oDocument.Sheets.GetByName("Plattenerfassung")
oSheet(1) = oDocument.Sheets.GetByName("Granit Modul")
oSheet(2) = oDocument.Sheets.GetByName("Durabo Modul")
oSheet(3) = oDocument.Sheets.GetByName("GlassStone Modul")
oSheet(4) = oDocument.Sheets.GetByName("HILFSTABELLE2")
oSheet(5) = oDocument.Sheets.GetByName("Bestellformular")
oDraw(0) = oSheet(0).DrawPage
oDraw(5) = oSheet(5).DrawPage
oForm(0) = oDraw(0).Forms.GetByIndex(0)
oForm(5) = oDraw(5).Forms.GetByIndex(0)
oControler = oDocument.GetCurrentController
Select Case Val(Right(oForm(0).getByName(oAuslesen).Name,1))
Case 1 : Z = 11 : oRan = "$B$2" : oLib = "$F$2"
Case 2 : Z = 12 : oRan = "$H$2" : oLib = "$L$2"
Case 3 : Z = 13 : oRan = "$B$7" : oLib = "$F$7"
Case 4 : Z = 14 : oRan = "$H$7" : oLib = "$L$7"
Case 5 : Z = 22 : oRan = "$B$13" : oLib = "$F$13"
End Select
sTest = "Check Box " & Z
oCheckBox = oControler.GetControl(oForm(5).GetByName(sTest))
iSicht = Val(oSheet(4).GetCellRangeByName(oRan).String)
oCBLib = oSheet(4).GetCellRangeByName(oLib).String
If iSicht > 1 Then
If not(oSheet(1).GetRows().GetByIndex(Z).isVisible) Then
For I = 1 To 3
oSheet(I).GetRows().GetByIndex(Z).isVisible = True
Next I
oCheckBox.State = 0
End If
Else
If oSheet(1).GetRows().GetByIndex(Z).isVisible Then
For I = 1 To 3
oSheet(I).GetRows().GetByIndex(Z).isVisible = False
Next I
oCheckBox.State = 1
End If
End If
End Sub
[/code]
Beim Ausführen des Codes bekomme ich folgende Fehlermeldung :
BASIC-Laufzeitfehler.
Es ist eine Exception aufgetreten
Type : com.sun.star.container.NoSuchElementException
Message : .
In folgender Zeile :
[code]oCheckBox = oControler.GetControl(oForm(5).GetByName(sTest))[/code]
Nur versteh ich nicht warum ich nun die Fehlermeldung bekommen, weil in nem anderen Makro benutz ich genau die gleiche Funktion um danach die oCheckBox.State zu überprüfen.
Nun hier will ich schlussendlich wenn ich diese Fehlermeldung überwinden kann...
die CheckBox Sichtbar/Unsichtbar machen
den Text der CheckBox ändern und
die CheckBox Checken/Unchecken
*****
Nebenbei werden auch Zeilen in 3 anderen Blättern Versteckt/resp. angezeigt dies funktionniert tadellos und wurde auch gestestet bevor ich die CheckBox eingebaut habe. :)
Ps Datei im Anhang :)