Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Code in LibreOffice Calc

Forumthread: VBA Code in LibreOffice Calc

VBA Code in LibreOffice Calc
11.06.2018 19:44:34
Philipp
Hey Leute,
ich möchte folgenden Code in Libre Office Calc zum laufen bringen.
Leider stimmen anscheinend manche Befehle nicht überein, da Libre ein anderes "VBA" verwendet.
Kann das hier jemand lösen?
Danke an dieser Stelle an "sepp" für deine Hilfe und den funktionalen Code!
Sub Druck()
Dim Spalte As Long
Dim Zeile As Long
Dim Zeilendifferenz As Long
Dim lngRow As Long
Dim rngCopy As Range
Spalte = 4 'Spalte für Bedingung
Zeile = 5 'Beginn zeile Bedingung
Zeilendifferenz = 5 'Zeile in Tabelle Druck (Einfügen Übertrag)
With Worksheets("Eingabe")
For lngRow = Zeile To 150
If .Cells(lngRow, Spalte)  0 Then
If rngCopy Is Nothing Then
Set rngCopy = .Rows(lngRow)
Else
Set rngCopy = Union(rngCopy, .Rows(lngRow))
End If
End If
Next
End With
If Not rngCopy Is Nothing Then
rngCopy.Copy
With Sheets("Kalkulation").Cells(Zeilendifferenz, 1)
.PasteSpecial Paste:=xlValues
.PasteSpecial Paste:=xlFormats
End With
Application.CutCopyMode = False
End If
Set rngCopy = Nothing
End Sub

Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: option vbasupport 1
11.06.2018 20:02:51
Fennek
Hallo,
versuche es mit der genannten Option, dann sollte oo vba verstehen (aber kein Dictionary, Regex, Createobject, API)
mfg
AW: option vbasupport 1
11.06.2018 20:33:55
mumpel
Hallo!
Eigentlich sollte "option vbasupport 1" beim Öffnen einer Exceldatei automatisch gesetzt werden. Der VBA-Code funktioniert in LibreOffice jedoch nur in Exceldateien. In ODF-Dateien (LibreOffice-Calc-Format) gespeichert kann VBA-Code nicht genutzt werden.
Gruß, René
Anzeige
AW: option vbasupport 1
12.06.2018 18:49:38
Philipp
Ja der Befehl ist gesetzt. Aber der Code wird nicht verarbeitet.
Laufzeitüberschreitung bei rngCopy.Copy.
AW: option vbasupport 1
12.06.2018 20:47:44
mumpel
Ist das eine Exceldatei (xls) oder eine Calc-Datei (odf)?
AW: option vbasupport 1
12.06.2018 20:49:12
Philipp
xls
Anzeige
AW: option vbasupport 1
12.06.2018 21:41:04
mumpel
Dann kommt LibreOffice damit nicht zurecht. Wenn ich die nächsten Tage mal Zeit habe werde ich versuchen den Code nach Starbasic umzuschreiben (kann aber dauern, hab schon ein paar Jahre nichts mehr in Starbasic gemacht). Der läuft dann aber nur in ODF-Dateien.
AW: option vbasupport 1
12.06.2018 21:42:46
Philipp
Wow. Ok. Das wäre super.
Ja muss nur in Libre laufen.
Danke!
Anzeige
AW: option vbasupport 1
12.06.2018 22:02:25
mumpel
Du kannst mal eine Beispieldatei anhängen, das macht es mir leichter.
AW: option vbasupport 1
12.06.2018 22:24:54
Philipp
Hat mich die Datei leider nicht laden lassen.
Hier kannst die runter laden.
https://wetransfer.com/downloads/f6886f04f93c49665175f6c435431bc620180612202328/aece00
AW: option vbasupport 1
12.06.2018 22:43:06
mumpel
Ungern von Filehostern.
Anzeige
AW: option vbasupport 1
13.06.2018 22:23:23
Philipp
Kann ich dir das anders zukommen lassen?
Mir fällt sonst keine Möglichkeit ein. :(
Oder muss man sich im Forum verifizieren um was hochladen zu können?
AW: option vbasupport 1
16.06.2018 09:32:35
mumpel
Schick es mir per Email. Die Adresse steht in meinem Profil (die Visitienkarte links neben dem Nickname anklicken).
;
Anzeige

Infobox / Tutorial

VBA Code in LibreOffice Calc


Schritt-für-Schritt-Anleitung

  1. VBA Unterstützung aktivieren: Stelle sicher, dass in LibreOffice die Option Option VBASupport 1 gesetzt ist. Dies ermöglicht die Ausführung von VBA-Code in LibreOffice Calc.

  2. Makros aktivieren: Gehe zu Extras > Optionen > LibreOffice > Sicherheit > Makrosicherheit und wähle eine der sichereren Optionen, die die Ausführung von .vba libreoffice ermöglichen.

  3. VBA Code anpassen: Da LibreOffice eine abgewandelte Version von VBA verwendet, musst du möglicherweise den Originalcode anpassen. Zum Beispiel:

    • Ersetze Worksheets durch Sheets.
    • Stelle sicher, dass alle Objekte und Methoden, die in Excel VBA verwendet werden, auch in LibreOffice Calc VBA kompatibel sind.
  4. Code testen: Führe den angepassten Code in der LibreOffice Calc Umgebung aus, um sicherzustellen, dass er wie gewünscht funktioniert.


Häufige Fehler und Lösungen

  • Laufzeitüberschreitung bei rngCopy.Copy: Dies kann auftreten, wenn rngCopy nicht korrekt gesetzt wird. Überprüfe, ob die angegebenen Zeilen und Spalten vorhanden sind.

  • Option vbasupport nicht gesetzt: Wenn der Code nicht verarbeitet wird, könnte es daran liegen, dass die Option vbasupport 1 nicht aktiviert ist. Stelle sicher, dass dies in den Einstellungen korrekt gesetzt ist.

  • Kompatibilitätsprobleme mit ODF-Dateien: Der VBA-Code funktioniert möglicherweise nicht in ODF-Dateien. Stelle sicher, dass die Datei im .xls Format gespeichert ist.


Alternative Methoden

Falls der VBA-Code nicht funktioniert, kannst du folgende Alternativen ausprobieren:

  • StarBasic verwenden: Der Code kann in StarBasic umgeschrieben werden, der die Programmierung in LibreOffice nativ unterstützt.

  • Makros aufzeichnen: Nutze die Funktion Makro aufzeichnen in LibreOffice, um einfache Abläufe aufzuzeichnen und zu speichern. Dies kann helfen, einfache Automatisierungen ohne den Einsatz von VBA zu erreichen.


Praktische Beispiele

Hier ist ein Beispiel, wie du einen einfachen Makro in LibreOffice Calc erstellen kannst:

Sub BeispielMakro()
    Dim oDoc As Object
    Dim oSheet As Object
    oDoc = ThisComponent
    oSheet = oDoc.Sheets(0) ' Erstes Blatt auswählen
    oSheet.getCellRangeByName("A1").setString("Hallo LibreOffice!")
End Sub

Dieser einfache Makro setzt den Text in die Zelle A1. Du kannst dieses Beispiel erweitern, um komplexere Aktionen durchzuführen, die auf deinen Bedürfnissen basieren.


Tipps für Profis

  • Verwende die Dokumentation: Nutze die offizielle LibreOffice Dokumentation, um spezifische LibreOffice Basic-Befehle zu finden und deine Kenntnisse zu vertiefen.

  • Debugging: Verwende MsgBox oder Print zur Fehlersuche, um den Status deiner Variablen während der Ausführung zu überprüfen.

  • Regelmäßige Backups: Speichere regelmäßig Sicherungskopien deiner .vba libreoffice Projekte, um Datenverluste zu vermeiden.


FAQ: Häufige Fragen

1. Kann ich Excel VBA Code direkt in LibreOffice verwenden?
Nein, die VBA-Implementierung von LibreOffice ist nicht vollständig kompatibel mit Excel VBA. Du musst den Code anpassen.

2. Wie aktiviere ich Makros in LibreOffice?
Gehe zu Extras > Optionen > LibreOffice > Sicherheit und stelle die Makrosicherheit ein.

3. Was ist StarBasic und wie unterscheidet es sich von VBA?
StarBasic ist die Programmiersprache von LibreOffice. Sie ist anders strukturiert als VBA und erfordert möglicherweise eine Anpassung deines Codes.

4. Wo finde ich weitere Beispiele für LibreOffice Makros?
Du kannst in der LibreOffice Community nach LibreOffice Makros Beispiele suchen oder die offizielle Dokumentation besuchen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige