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
VBA-Makro von Excel, läuft in Calc nicht richtig
Moderator: Moderatoren
Re: VBA-Makro von Excel, läuft in Calc nicht richtig
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:
Damit sieht Dein Code dann so aus:
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.
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
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
Es ist nur ein Hilfsmittel. Besser wäre es Deinen gesamten Code in "StarBasic" zu übersetzen.
Gruß
Craig
_____________________________________________________
WIN 10 Pro 64-Bit • LO 7.1.5.2 (x64) • AOO 4.1.8
Craig
_____________________________________________________
WIN 10 Pro 64-Bit • LO 7.1.5.2 (x64) • AOO 4.1.8