Date: prev next · Thread: first prev next last
2017 Archives by date, by thread · List index


Hallo Günter,

ich habe das an einem neuen Calc-Dokument ausprobiert, bei mir funktioniert das. Mein Release: 5.3.4.2. Es würde mich aber sehr wundern, wenn das Release damit zu tun hätte. Versuche das auch mal ohne das Drumherum deines jetzigen Dokuments in einem neuen Dokument, wenn es dann wie bei mir klappt, wird etwas an deinem sonstigen Code das Problem sein.
Zwei Anmerkungen noch:

 * An einer Stelle hast du im Code, den du geschickt hast, oLinie10
   statt oLinie1; das meldet Basic ordentlich als Fehler
 * zahl und oTab wird offenbar derzeit nicht gebraucht und tut auch
   nichts Sichtbares

Gruß

Gerhard

Am 24.10.2017 um 13:50 schrieb Günter Fritze:
Hallo zusammen!
Ich verstehe garnichts mehr: Ich habe ein Makro geschrieben, das einen speziellen Jahreskalender in einer Tabellen-Calculation generiert. Für die Strukturierung der Tabelle habe ich ein Makro, das um einen Bereich eine Umrandung erzeugt. Die Bereiche werden als Namen angegebn, z.B. "$A1:$EG5".  Da die Breite der Monatstabellen variiert, Februar, Schaltjahr,30,31 Tage, möchte ich die Angaben als Position machen, und das geht schief. Die Funktion sieht so aus:

Sub doRahmen(sBereich As String,d As Integer)
'Sub doRahmen(iLOx As Integer,iLOy As Integer,iRUx As Integer,iRUy As Integer,d As Integer)
    Dim oZelle As Object
    oDoc = ThisComponent
    oSheets = oDoc.getSheets()
    zahl = oDoc.getSheets().Count+1
    oTab = oDoc.createInstance("com.sun.star.sheet.Spreadsheet")
       oController      = oDoc.CurrentController
       oSheet           = oController.activesheet
       oZelle             = oSheet.getCellRangeByName(sBereich)
'       oZelle             = oSheet.getCellRangeByPosition(iLOx,iLOy,iRUx,iRUy)
    Dim oLinie1 as new com.sun.star.table.BorderLine
    With oLinie1
        .Color = 16724991
        .outerLineWidth = d
    End With
    Dim oRahmen as new com.sun.star.table.TableBorder
    With oRahmen
        .leftLine = oLinie1
        .isLeftLineValid = True
        .rightLine = oLinie10
        .isRightLineValid = True
        .bottomLine = oLinie1
        .isBottomLineValid = True
        .topLine = oLinie1
        .isTopLineValid = True
    End With
    oZelle.TableBorder = oRahmen
End Sub
 Es funktionert einwandfrei mit der Namensangabe z.B. mit dem Aufruf
doRahmen("$A$1:$EG$2",71)

Benutze ich die in der Prozedur auskommentierten Zeilen, Ortsbestimmung per Position, dann kommt die Fehlermeldun : Prozedur schon wo anders definiert???. Na schön habe ich gedacht, dann setze ich vor das doRahmen noch ein i, also idoRahmen. Ergebnis: gleiche Fehlermeldung. Wat nu?
    doRahmen(0,0,33,1,71)
Ich würde ja akzeptieren wenn die Prozedur bei der Änderung garnicht mehr funktionieren würde, aber die Fehlermeldung kommt schon, wenn man einen Haltepunkt setzt.
Mein System:
Linux Mint 18.2 Sonya 64 Bit
Kernel Linux 4.8.0-53-generic,  x86_64
Mate 1.18.0

Mit freundlichen Grüßen
Günter




--
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.