Macro-Skript

Hallo,
Ich muss fuer die Implementierung einer Datenbank (FileMaker) in ein anderses System (Daphne) eine csv-Datei (bzw. excel-Datei) erstellen. Dazu habe ich die einzelnen Felder der FM-DB in ein csv exportiert und daraus ein ods-Dokument erstellt. Da sind nun 2796 Zeilen mit viel Inhalt entstanden. Da jedes Feld eine eigenen Spalte hat muss ich einige dieser zu einer fuer Daphne zusammenfuehren. Wenn ich das per Hand (also mit Maus und Tastatur) mache habe ich Jahre zu tun.

Hat jemand eine Idee wie ich eine Automatisierung basteln kann so wie die Stapelverarbeitung im Photoshop. Mit Makro-aufzeichnen funktioniert das bei mir irgendwie nicht. Das geht immer nur in einem Fall und wenn ich in die folgende Zeile gehe nicht mehr (da macht es immer nur die selbe Aktion in der Zeile der Aufzeichnung). Kann mir da jemand helfen und mal sehen wo der Fehler ist. Ich bin absoluter Neuling auf diesem Gebiet. Das Skript des Makros ist.


REM  *****  BASIC  *****
 
 
sub ZellVerb
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
 
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$C$304"
 
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
 
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "MoveContents"
args2(0).Value = true
 
dispatcher.executeDispatch(document, ".uno:ToggleMergeCells", "", 0, args2())
 
 

end sub

Es soll also folgendes machen:
Zwei Zellen sollen zu einer zusammengefasst werden, wobei die Inhalte beider Zellen erhalten bleiben und in die zusmmengefasste Zelle geschrieben werden.

Waere mir eine grosse Hilfe, wenn ich da nen Hinweis bekommen könnte.

Danke und viele Grüße aus Dresden.

Andreas

Wenn ich das per Hand (also mit Maus und Tastatur) mache habe ich Jahre zu tun.

Das verstehe ich nicht. Du machst eine Hilfsspalte C und schreibst in Zelle C1 die Formel =A1 & " " & B1( oder nutzt eine der Funktionen CONCAT(),CONCATENATE() oder TEXTJOIN(),markierst Zelle C1, STRG+D kopiert die Formel soweit nach unten, wie links davon etwas steht und fertig. Dann noch Spalte C markieren und Daten -> Berechnen -> Formel in Werte umwandeln und Du kannst anschließend Spalte A und B löschen. Mit etwas Übung dauert das 1 Minute maximal.


Zellen zu "mergen" macht in meinen Augen gar keinen Sinn, da Du am Ende doch eine CSV Datei erzeugen willst (Manche bezeichnen "Mergen" als Teufelszeug, wenn es um Tabellenkalkulation geht ;-))
Also in meinen Augen lohnt sich ein Makro nur, wenn das eine tägliche Arbeit sein wird.

Danke für den Tipp. Funktioniert prima - warum also kompliziert, wenn doch jemand eine einfache Lösung hat :slight_smile: