wieder einmal copy&paste

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

kalle05
**
Beiträge: 38
Registriert: So, 19.10.2014 18:13

wieder einmal copy&paste

Beitrag von kalle05 »

Hallo Gemeinde,
ihr könnt mir bestimmt weiterhelfen. Ich habe inzwischen einen starren Blick bekommen, vom vielen Lesen.
Trotzdem weiß ich nicht mehr weiter.
Es soll von einem aktiven Blatt (Tabelle 1, 5 oder 20) die Zeilen A3 bis D4 kopiert und immer in die Tabelle 2, in D4 bis G5 geschrieben werden.
Was muss ich tun, um das Quellblatt zu definieren, ohne es direkt anzusprechen ? Mit „ getCellRangeByName“ geht es offensichtlich nicht.
Und damit auch nicht: „osheet=odoc.currentcontroller.activesheet“.
Vielen Dank für eure Hilfe.

sub Datenbereich_kopieren_Zeileeinfuegen

oDoc = ThisComponent
oSheet = ThisComponent.CurrentController.getActiveSheet() 'aktiv

myDoc = thisComponent
myView = myDoc.CurrentController 'Cursor



Quellblatt = oDoc.CurrentController
Zielblatt = oDoc.Sheets().getByName("Tabelle2")



adaten = Quellblatt.getCellRangeByName("A3:D4").getDataarray() =Eigenschaft oder Methode nicht gefunden

Zielblatt.getCellrangeByName("E2:F4").setdataarray(adaten)

myDoc = ThisComponent
myView = myDoc.CurrentController
mySheet = myDoc.Sheets.getByName("Tabelle2")
myView.setActiveSheet(mySheet)



end sub
:lol: Win 10
mikeleb
*******
Beiträge: 1316
Registriert: Fr, 09.12.2011 16:50

Re: wieder einmal copy&paste

Beitrag von mikeleb »

Hallo,
Was muss ich tun, um das Quellblatt zu definieren
Das hast du in deinem Code bereits.

Code: Alles auswählen

oSheet = ThisComponent.CurrentController.getActiveSheet() 'aktiv
oSheet ist das aktuelle Tabellenblatt, das du als Quellblatt nehmen kannst (du kannst natürlich auch noch Quellblatt=oSheet setzen).
Gruß,
mikeleb
kalle05
**
Beiträge: 38
Registriert: So, 19.10.2014 18:13

Re: wieder einmal copy&paste

Beitrag von kalle05 »

Vielen Dank, dies hat geklappt.
Leider tritt beim Zielblatt ein Fehler auf und ich erkenne meinen Fehler nicht.


Zielblatt.getCellrangeByName("E2:F4").setdataarray(adaten) 'einfügen in A2:K2
FehlerMeldung:
Es ist eine Exception aufgetreten. Type: com.sun.star.uno. Runtime Exception Message.
Gruß Kalle
:lol: Win 10
mikeleb
*******
Beiträge: 1316
Registriert: Fr, 09.12.2011 16:50

Re: wieder einmal copy&paste

Beitrag von mikeleb »

Hallo,
Quell- und Zielbereich müssen gleichgroß sein.
Ich bin verwirrt: Am Anfang schreibst du D4 bis G5. Im Code steht dann E2:F4 und zuletzt
einfügen in A2:K2
???
Gruß,
mikeleb
kalle05
**
Beiträge: 38
Registriert: So, 19.10.2014 18:13

Re: wieder einmal copy&paste

Beitrag von kalle05 »

Tut mir leid, habe den Bereich verwechselt.
ich habe das Zielblatt dementsprechend korrigiert und jetzt läuft das kleine Makro :lol:
Vielen Dank für Deine Hilfe
Gruß Kalle
:lol: Win 10
Antworten