von Stephan » Mo, 04.10.2004 19:12
Hallo Hartmut,
es sollte auch unter Excel 97 laufen
das tut es aber nicht, es hängt mit Laufzeitfehler 1004 bei Zeile:
Selection.EntireRow.Insert
und auch wenn Du mir den gesamten Code postest, weiß ich immer noch nicht was diese Zeile bewirken soll. Meine Recherchen sagen das ist das Einfügen einer leeren Zeile, aber ich weiß das nicht genau. Mit dem Recorder kann ich das nicht so aufzeichnen das ich den exakt selben Code bekomme (?)
Vorbehaltlich das ich somit nicht weiß wo eingefügt werden soll (bei A5 direkt oder dort Leerzeile und dann in diese Zeile) ist das soweit der Code:
Code: Alles auswählen
Sub Speichern()
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
Meldung = "Haben Sie Ihre diverse Zeiten eingegeben ?"
DialogArt = 260
Titel = "Hinweis"
Anwt = MsgBox(Meldung, DialogArt, Titel)
If Anwt = 7 Then
myDoc = ThisComponent
myView = myDoc.CurrentController
mySheet = myDoc.Sheets.getByName("Diverse")
myView.setActiveSheet(mySheet)
oCtl = myDoc.getCurrentController
oSheet = oCtl.ActiveSheet
oCell = oSheet.getCellRangeByName("F14")
oCtl.select(oCell)
Else
Anwt = 6
myDoc = ThisComponent
oCtl = myDoc.getCurrentController
oSheet = oCtl.ActiveSheet
oCell = oSheet.getCellRangeByName("E52:AD52")
oCtl.select(oCell)
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
mySheet = myDoc.Sheets.getByName("Datenbank")
myView = myDoc.CurrentController
myView.setActiveSheet(mySheet)
oCtl = myDoc.getCurrentController
oSheet = oCtl.ActiveSheet
oCell = oSheet.getCellRangeByName("A5")
oCtl.select(oCell)
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
oCell = oSheet.getCellRangeByName("A5:A6")
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "NumberFormatValue"
args2(0).Value = 109
dispatcher.executeDispatch(document, ".uno:NumberFormatValue", "", 0, args2())
oCell = oSheet.getCellRangeByName("A5")
oCell.HoriJustify = com.sun.star.table.CellHoriJustify.RIGHT
End if
End Sub
Leider kann ich hierzu garnichts sagen:
'Application.ScreenUpdating = False 'Bildschirm ausgeschaltet ( Einfrieren))
Bei mir läuft das ganz gut. Da Du sagst der gesamte Rest läuft bei Dir schon, füge erstmal den Code ein und teste mal was insgesamt passiert.
Gruß
Stephan
Hallo Hartmut,
[quote]es sollte auch unter Excel 97 laufen[/quote]
das tut es aber nicht, es hängt mit Laufzeitfehler 1004 bei Zeile:
[color=green]Selection.EntireRow.Insert [/color]
und auch wenn Du mir den gesamten Code postest, weiß ich immer noch nicht was diese Zeile bewirken soll. Meine Recherchen sagen das ist das Einfügen einer leeren Zeile, aber ich weiß das nicht genau. Mit dem Recorder kann ich das nicht so aufzeichnen das ich den exakt selben Code bekomme (?)
Vorbehaltlich das ich somit nicht weiß wo eingefügt werden soll (bei A5 direkt oder dort Leerzeile und dann in diese Zeile) ist das soweit der Code:
[code]Sub Speichern()
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
Meldung = "Haben Sie Ihre diverse Zeiten eingegeben ?"
DialogArt = 260
Titel = "Hinweis"
Anwt = MsgBox(Meldung, DialogArt, Titel)
If Anwt = 7 Then
myDoc = ThisComponent
myView = myDoc.CurrentController
mySheet = myDoc.Sheets.getByName("Diverse")
myView.setActiveSheet(mySheet)
oCtl = myDoc.getCurrentController
oSheet = oCtl.ActiveSheet
oCell = oSheet.getCellRangeByName("F14")
oCtl.select(oCell)
Else
Anwt = 6
myDoc = ThisComponent
oCtl = myDoc.getCurrentController
oSheet = oCtl.ActiveSheet
oCell = oSheet.getCellRangeByName("E52:AD52")
oCtl.select(oCell)
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
mySheet = myDoc.Sheets.getByName("Datenbank")
myView = myDoc.CurrentController
myView.setActiveSheet(mySheet)
oCtl = myDoc.getCurrentController
oSheet = oCtl.ActiveSheet
oCell = oSheet.getCellRangeByName("A5")
oCtl.select(oCell)
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
oCell = oSheet.getCellRangeByName("A5:A6")
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "NumberFormatValue"
args2(0).Value = 109
dispatcher.executeDispatch(document, ".uno:NumberFormatValue", "", 0, args2())
oCell = oSheet.getCellRangeByName("A5")
oCell.HoriJustify = com.sun.star.table.CellHoriJustify.RIGHT
End if
End Sub[/code]
Leider kann ich hierzu garnichts sagen:
[color=green]'Application.ScreenUpdating = False 'Bildschirm ausgeschaltet ( Einfrieren))[/color]
Bei mir läuft das ganz gut. Da Du sagst der gesamte Rest läuft bei Dir schon, füge erstmal den Code ein und teste mal was insgesamt passiert.
Gruß
Stephan