Zellen von Sheet A nach Sheet B kopieren

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Zellen von Sheet A nach Sheet B kopieren

von jo_achim » Mo, 04.12.2006 10:31

Stephan hat geschrieben:in der IDL-Referenz:
Danke!

von Stephan » So, 03.12.2006 22:49

von jo_achim » So, 03.12.2006 22:37

Toxitom hat geschrieben: Wie soll man dir sonst helfen können? etwa so:

Code: Alles auswählen

dim aDat()
oDoc = thisComponent
oBereich1 = oDoc.sheets(0).getCellRangeByName("A6:b14")
aDat = oBereich1.getDataArray()
oBereich2 = oDoc.sheets(1).getCellRangeByName("b6:c14")
oBereich2.setDataArray(aDat())
Hallo,

wo kann man diese Funktionen nachlesen? getCellRangeByName() finde ich im "Star Office Programmierhandbuch BASIC" unter docs.sun.com/app/docs/coll/1274.1 Aber wo sind Funktionen wie getDataArray()?

Danke, jo

von Karolus » Fr, 17.11.2006 11:19

Hallo Sir Duke
Ich dachte ich benötige hierfür ein Makro da EXCEL es auch nur mit konnte
Excel kann das auch, die Formel lautet :

Code: Alles auswählen

=INDIREKT("CSV!AL"&ZEILE(A1)*4+673)
Gruß Karo

von Sir_Duke » Fr, 17.11.2006 09:32

Hallo Karo

danke für deinen Tipp mit der Formel, hat super funktioniert.
Ich dachte ich benötige hierfür ein Makro da EXCEL es auch nur mit konnte.

von Karolus » Di, 14.11.2006 05:03

Hallo

Mit ein paar Mausklicks aus :
http://www.dannenhoefer.de/faqstarbasic/

zusammengetragen, und konkret auf deine Zielvorstellung modifiziert :

Code: Alles auswählen

Sub copyschleife
odoc = thisComponent
mySheet1 = oDoc.Sheets().getByName("CSV")
mySheet2 = oDoc.Sheets().getByName("DATEN")
m = 1017  'erste Zeilennr. Zielbereich
for n = 673 to 1050 step 4   'Zeilennr. Quellbereich (von,bis,Schrittweite)
 oQuelleRange1=mySheet1.getCellRangeByName("AL" & n)
 oQuelleRange2=mySheet1.getCellRangeByName("AO" & n+2)
 oQuelleRange3=mySheet1.getCellRangeByName("AO" & n+3)
 oZiel1 = mySheet2.getCellByPosition(0,m-1)
 oZiel2 = mySheet2.getCellByPosition(1,m-1)
 oZiel3 = mySheet2.getCellByPosition(2,m-1)
 oQuellRangeAddresse = oQuelleRange1.getRangeAddress
 oZielCellAdresse=oZiel1.getCellAddress
 mySheet2.copyRange(oZielCellAdresse,oQuellRangeAddresse)
 oQuellRangeAddresse = oQuelleRange2.getRangeAddress
 oZielCellAdresse=oZiel2.getCellAddress
 mySheet2.copyRange(oZielCellAdresse,oQuellRangeAddresse)
 oQuellRangeAddresse = oQuelleRange3.getRangeAddress
 oZielCellAdresse=oZiel3.getCellAddress
 mySheet2.copyRange(oZielCellAdresse,oQuellRangeAddresse)
 m = m+1
 next n
End Sub
Das gleiche Ergebnis erhälst du mit der Funktion (in DATEN.A1018):

=INDIREKT("CSV.AL"&ZEILE(A1)*4+673)
für Spalte B und C anpassen und alles zusammen nach unten ausfüllen.



Gruß Karo

von Sir_Duke » Mo, 13.11.2006 23:26

Sorry Thomas das es so ungenau war. Ich dachte ich fasse es etwas allgemeiner damit mehr leute darauf zurück greifen können.

Aber nun konkret.

Es sollen Zellinhalte von Sheet(Tabellenblatt) "CSV" nach "DATEN" kopiert werden.

1) "CSV" Spalte: AL ; Zeile 673 ----> "DATEN" Spalte A ; Zeile 1017
2) "CSV" Spalte: AO; Zeile 675 ----> "DATEN" Spalte B ; Zeile 1017
3) "CSV" Spalte: AO; Zeile 676 ----> "DATEN" Spalte C ; Zeile 1017

Danach geht es immer um 4 Zeilen nach unten (Spalten bleiben gleich)

Also:


1) "CSV" Spalte: AL ; Zeile 677 ----> "DATEN" Spalte A ; Zeile 1018
2) "CSV" Spalte: AO; Zeile 679 ----> "DATEN" Spalte B ; Zeile 1018
3) "CSV" Spalte: AO; Zeile 680 ----> "DATEN" Spalte C ; Zeile 1018

Ich hoffe das die Angaben reichen.

Mfg


Erwin

von Toxitom » Mo, 13.11.2006 12:58

Hey Sir_Duke,
Nun bräuchte ich ein Makro das mir Aus diesem Sheet bestimmte Werte kopiert und auf in ein anderes Sheet speichert.
Hmm, kanns ein bischen genauer sein? Wie heisst das "sheet", was für Werte (Zelladressen, Inhalte) und wohin (Tabellenname, Zelladressen etc).

Wie soll man dir sonst helfen können? etwa so:

Code: Alles auswählen

dim aDat()
oDoc = thisComponent
oBereich1 = oDoc.sheets(0).getCellRangeByName("A6:b14")
aDat = oBereich1.getDataArray()
oBereich2 = oDoc.sheets(1).getCellRangeByName("b6:c14")
oBereich2.setDataArray(aDat())
???

Gruss
Thomas

Zellen von Sheet A nach Sheet B kopieren

von Sir_Duke » So, 12.11.2006 22:58

Hallo Leute

So nachdem ich nun das Forum vergeblich nach einem passenden Makro durchsucht habe versuche ich es nun so.

Ich habe eine Calc Datei mit mehreren Sheets. Im 1.Sheet sind meine Rohdaten abgespeichert.
Nun bräuchte ich ein Makro das mir Aus diesem Sheet bestimmte Werte kopiert und auf in ein anderes Sheet speichert.
Anschließend soll er eine bestimmte Anzahl von Zeilen weitergehen und von vorne beginnen.

Hab mal mit dem Recorder versucht es herauszubekomen aber irgendwie Blick ich in Basic nicht durch.
Hatte alles zwar schon in Excel laufen aber in OO bring ich es nicht hin.

Ich hoffe ihr könnt mir ein wenig weiterhelfen.

MFg

Sir_Duke

Nach oben