Frage von JTjart, 56

Warum funktioniert das Makro nicht?

Sub Wandeln()

Dim a As Object
a = ThisComponent

s = 2 

i = 1 
Do
    i = i + 1

    j = 1

    Do
        j = j + 1

        if ((a.Cells(i, 2) = a.Cells(j, 2)) And (a.Cells(i, 3) = a.Cells(j, 3)) And (a.Cells(i, 4) = a.Cells(j, 4))) Then
            a.Cells(i, 1) = a.Cells(i, 1) + a.Cells(j, 1)
            For k = 1 to 4
                a.Cells(j, k) = ""
            Next k

            l = j
            Do
            l = l + 1
            For m = 1 To 4
                a.Cells(l, m) = a.Cells(l + 1, m + 1)
            Next m  
            Loop Until a.Cells(l + 1, 2) = ""
        End If 
    Loop Until a.Cells(j + 1, 2) = ""
Loop Until a.Cells(i + 1, 2) = ""

End Sub

Ich habe mit Libreoffice dieses Makro erstellt. Es soll, wenn es eine Zeile gibt in der B, C und D gleich sind die beiden Werte aus A zusammenaddieren, die unnötige Spalte löschen und die folgenden eins nach oben verschieben.

Kann mir einer sagen, warum das nicht funktioniert?

Expertenantwort
von Iamiam, Community-Experte für Excel, 37

funktioniert das in xl nicht? dann k.A.

Aber LO -ebenso wie OO- haben andere Makrosprachen und leider (immer noch?) keinen Translator. Ist auch mein Problem, bin auf meine alten Tage zu dumm, um Python zu lernen und Sun Basic war mir einerseits zu nahe an Visual Basic (wegen Verwechslungen), andererseits doch zu unterschiedlich, um das mit nur wenigen Korrekturen an passen zu können.

Oder sollte es mittlerweile möglich sein, VBA-Makros in LO zum Laufen zu bringen? Dann würde ich noch heute anfangen, umzustellen!

(Java sooll auch möglich sein in LO/OO, aber ich kann auch das nicht)

 Was macht übrigens ThisComponent? Das kannte ich bisher nicht und meine Hilfe ist seeehr langsam!

Kommentar von Iamiam ,

Hab da inzwischen was gefunden

VBA : Different terminology for spreadsheets and their content is
used in VBA and OpenOffice.org Basic. Whereas the document object in VBA is called a Workbook and its individual pages Worksheets, they are called SpreadsheetDocument and Sheet in OpenOffice.org Basic.

gefunden in Yahoo: VBA Thiscomponent, gleich 2.Eintrag:

https://wiki.openoffice.org/wiki/Documentation/BASIC_Guide/Structure_of_Spreadsh...

(vllt unternehme ich doch einen neuen Anlauf...)

Kommentar von Iamiam ,
With a few exceptions, Microsoft Office and LibreOffice cannot run the same macro code. Microsoft Office uses VBA (Visual Basic for Applications) code, and LibreOffice uses Basic code based on the LibreOffice API (Application Program Interface) environment. Although the programming language is the same, the objects and methods are different.
>> The most recent versions of LibreOffice can run some Excel Visual Basic scripts if you enable this feature at LibreOffice -PreferencesTools - Options - Load/Save - VBA Properties.

Wäre schon mal ein Riesenfortschritt! Hab ich aus:

http://stackoverflow.com/questions/24724050/how-do-i-make-vba-code-compatible-wi...

Kommentar von Iamiam ,

Da sind (D)M!eine Informationen schlicht veraltet. Calc ist seit Version 3.0 in der Lage Excel-VBA auszuführen 

aus http://de.openoffice.info/viewtopic.php?t=24430

und auch bei LO-Calc ist die Option VBASupport Vorgabe, zumindest in meiner Version Libreoffice 4.4

Danke für die Frage, ein neuer Anstoß!

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten