VBA-Makro von Excel, läuft in Calc nicht richtig

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

kubacello
Beiträge: 1
Registriert: Mo, 03.08.2020 19:58

VBA-Makro von Excel, läuft in Calc nicht richtig

Beitrag von kubacello »

Hallo Thomas

Habe früher mit Excel gearbeitet. Wollte einen VBA Code aus Excel übernehmen. Habe den ein bisschen abgeändert. Dieser funktioniert jedoch in open office/Libre Calc nicht. Woran kann das liegen ?


Sub KopiereHinterLetzte()
Dim iRow As Long

if MsgBox("Wirklich kopieren?", vbyesno) = 6 then

Sheets("Menue").Range("E10:L10").Copy
With Sheets("Adressen")
'letzte Zeile aus Spalte B (B=2) / +1, damit es nicht den letzten Eintrag überschreibt
iRow = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
.Range("B" & iRow).PasteSpecial 'xlPasteValues
'Formeln und Formate mitkopieren? Wenn nein, das "xlpastevalues" einkommentieren.
End With

end if
End Sub

Bin für jede Hilfe dankbar

Gruss Marcel

craig22
**
Beiträge: 39
Registriert: Mi, 19.08.2020 13:47

Re: VBA-Makro von Excel, läuft in Calc nicht richtig

Beitrag von craig22 »

Hallo Marcel,

bevor Du weiter liest, erstelle zuerst eine Sicherungskopie von Deiner Datei:!:

Für die Programmierung in Open-/ Libre-Office wird das Basic-Derivat "StarBasic" genutzt.

VBA ist zwar auch ein Basic-Derivat, aber eben ein anderer Dialekt.

Deshalb muss man der OpenOffice-Basic-IDE mitteilen, dass Du einen VBA-Code verwenden möchtest.
Dies geschieht mit folgender Anweisung, welche ganz oben im Code steehen muss:

Code: Alles auswählen

Option VBASupport 1
Damit sieht Dein Code dann so aus:

Code: Alles auswählen

Option VBASupport 1

Sub KopiereHinterLetzte()
Dim iRow As Long

if MsgBox("Wirklich kopieren?", vbyesno) = 6 then

Sheets("Menue").Range("E10:L10").Copy
With Sheets("Adressen")
'letzte Zeile aus Spalte B (B=2) / +1, damit es nicht den letzten Eintrag überschreibt
iRow = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
.Range("B" & iRow).PasteSpecial 'xlPasteValues
'Formeln und Formate mitkopieren? Wenn nein, das "xlpastevalues" einkommentieren.
End With
Option VBASupport 1 ist aber keine Garantie dafür, dass jeglicher VBA-Code korrekt abgearbeitet wird.
Es ist nur ein Hilfsmittel. Besser wäre es Deinen gesamten Code in "StarBasic" zu übersetzen.
Gruß

Craig
_____________________________________________________
WIN 10 Pro 64-Bit • LO 6.4.4.2 (x64) • AOO 4.1.6

Antworten