von turtle47 » Sa, 01.09.2007 15:48
Hallo Thomas,
Toxitom hat geschrieben:man kann zwar die erste leere Zelle durch eine Schleife ermiteln (kleine Bitte am Rand: Keine "While ... wend" Schleife nutzen. Die ist "überholt". Nehmt die "Do.... loop" Schleife, die könnt ihr zur Not auch auch verlassen.
Danke für den Hinweis. Werde es mir hinter die Ohren schreiben.
herbert r. hat geschrieben:Was ich noch suche ist ein Basic-Routine mit der ich die erste leere Zeile einer Tabelle ermitteln kann.
Es würde reichen, zu prüfen ob die Zelle in Spalte A leer ist.
Deshalb habe ich den Code für Spalte A durchsuchen genommen. Das hat natürlich den Nachteil, dass wirklich die erste leere Zelle in Spalte A gesucht wird. Wenn danach noch etwas kommt dann kann das unter Umständen zu Problemen führen. Das hatte ich jetzt aber für mich einmal ausgeschlossen.
herbert r. hat geschrieben:...ich nur noch gerne, wie statt der Formeln im Ziel die Werte eingefügt werden.
dafür habe ich folgendes mit dem Makrorecorder aufgezeichnet um die Formeln zu eliminieren:
Code: Alles auswählen
sub Zeile_kopieren
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 = "$A$2:$Y$2"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Nr"
args3(0).Value = 2
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args3())
rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "ToPoint"
args4(0).Value = "$A$3:$Y$3"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args4())
rem ----------------------------------------------------------------------
dim args5(5) as new com.sun.star.beans.PropertyValue
args5(0).Name = "Flags"
args5(0).Value = "SVDNT"
args5(1).Name = "FormulaCommand"
args5(1).Value = 0
args5(2).Name = "SkipEmptyCells"
args5(2).Value = false
args5(3).Name = "Transpose"
args5(3).Value = false
args5(4).Name = "AsLink"
args5(4).Value = false
args5(5).Name = "MoveMode"
args5(5).Value = 4
dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args5())
end sub
Wie bringe ich jetzt das Makro für die letzte Zelle Spalte A und das Makro Zeile_kopieren zusammen?
Das müsste meiner Meinung nach ja hier passieren:
Vorab schon mal vielen Dank.
Jürgen
Hallo Thomas,
[quote="Toxitom"]man kann zwar die erste leere Zelle durch eine Schleife ermiteln (kleine Bitte am Rand: Keine "While ... wend" Schleife nutzen. Die ist "überholt". Nehmt die "Do.... loop" Schleife, die könnt ihr zur Not auch auch verlassen.[/quote]Danke für den Hinweis. Werde es mir hinter die Ohren schreiben. :|
[quote="herbert r."]Was ich noch suche ist ein Basic-Routine mit der ich die erste leere Zeile einer Tabelle ermitteln kann.
Es würde reichen, zu prüfen ob die Zelle in Spalte A leer ist.[/quote] Deshalb habe ich den Code für Spalte A durchsuchen genommen. Das hat natürlich den Nachteil, dass wirklich die erste leere Zelle in Spalte A gesucht wird. Wenn danach noch etwas kommt dann kann das unter Umständen zu Problemen führen. Das hatte ich jetzt aber für mich einmal ausgeschlossen.
[quote="herbert r."]...ich nur noch gerne, wie statt der Formeln im Ziel die Werte eingefügt werden.[/quote]
dafür habe ich folgendes mit dem Makrorecorder aufgezeichnet um die Formeln zu eliminieren:
[code]sub Zeile_kopieren
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 = "$A$2:$Y$2"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Nr"
args3(0).Value = 2
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args3())
rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "ToPoint"
args4(0).Value = "$A$3:$Y$3"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args4())
rem ----------------------------------------------------------------------
dim args5(5) as new com.sun.star.beans.PropertyValue
args5(0).Name = "Flags"
args5(0).Value = "SVDNT"
args5(1).Name = "FormulaCommand"
args5(1).Value = 0
args5(2).Name = "SkipEmptyCells"
args5(2).Value = false
args5(3).Name = "Transpose"
args5(3).Value = false
args5(4).Name = "AsLink"
args5(4).Value = false
args5(5).Name = "MoveMode"
args5(5).Value = 4
dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args5())
end sub[/code]
Wie bringe ich jetzt das Makro für die letzte Zelle Spalte A und das Makro Zeile_kopieren zusammen?
Das müsste meiner Meinung nach ja hier passieren:
[code]args4(0).Value = "$A$3:$Y$3"[/code]
Vorab schon mal vielen Dank.
Jürgen