Aktive Zelle mit Inhalt aus GetDataArray füllen

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: Aktive Zelle mit Inhalt aus GetDataArray füllen

Re: Aktive Zelle mit Inhalt aus GetDataArray füllen

von LidiaS » Fr, 27.03.2015 10:40

Hallo Karolus,
ich denke, Kommentare brauchts da keine...
nein, der Code ist für mich sehr gut nachvollziehbar :D . Vielen Dank für die schnelle Hilfe und den sehr aufgeräumten Code. Funktioniert einwandfrei.

Viele Grüße
Lidia

Re: Aktive Zelle mit Inhalt aus GetDataArray füllen

von Karolus » Fr, 27.03.2015 10:14

Hallo

Code: Alles auswählen

sub CSV_Gesamt

    doc = thisComponent
    source_sheet = doc.Sheets.GetByName("CSV") 
    data = source_sheet.getCellRangeByName("A2:AD2").getDataArray() 
    
    target_sheet = doc.Sheets.getByName("CSV_Gesamt") 
    cursor = target_sheet.createCursor()
    cursor.gotoEndOfusedArea(0)
    row = cursor.RangeAddress.StartRow + 1

    targetrange =  target_sheet.getCellRangeByPosition(0, row, 29, row)
    targetrange.setDataArray( data )

end sub
ich denke, Kommentare brauchts da keine...

Karolus

Re: Aktive Zelle mit Inhalt aus GetDataArray füllen

von LidiaS » Fr, 27.03.2015 10:05

Guten Morgen Karolus,
Möchtest du wirklich die Daten aus dem Bereich A2:AD2 in eine einzelne Zelle reinwürgen ??
Nein, da habe ich mich falsch ausgedrückt. Die Zellen sollen so beschreiben werden wie in dem Tabellenblatt CSV, nur mit Werten, nicht mit Formeln.

Viele Grüße
Lidia

Re: Aktive Zelle mit Inhalt aus GetDataArray füllen

von Karolus » Fr, 27.03.2015 09:45

Hallo

Möchtest du wirklich die Daten aus dem Bereich A2:AD2 in eine einzelne Zelle reinwürgen ??

( grundsätzlich kannst du schonmal sämtliche Zeilen rauswerfen in denen `CurrentController` oder `myView` benutzt wird. )

Re: Aktive Zelle mit Inhalt aus GetDataArray füllen

von LidiaS » Fr, 27.03.2015 09:34

Kleiner Nachtrag zum besseren Verständnis:

Natürlich soll der Zellbereich A2:AD2 übertragen werden. Im Tabellenblatt CSV sind die Zellen mit Formeln belegt (Daten werden in enem weiteren Tabellenblatt eingegeben und im Tabellenblatt CSV über Formeln gesammelt). In das Tabellenblatt CSV_Gesamt sollen die Zellen nur mit Werten gefüllt werden und bei jedem neuen Ausführen des Makros immer in die nächste freie Zeile geschrieben werden. Das Makro wird immer dann ausgeführt, wenn sich die Daten im Tabellenblatt CSV ändern. Diese sollen dann im Tabellenblatt CSV_Gesamt als Werte gesichert werden, bevor sie im Tabellenblatt CSV wieder gändert werden.

Ich hoffe es ist nachvollziehbar.

Viele Grüße
Lidia

Aktive Zelle mit Inhalt aus GetDataArray füllen

von LidiaS » Fr, 27.03.2015 08:49

Guten Morgen Allerseits,

auch auf die Gefahr hin, dass die Antwort hier schon gegeben wurde (ich sie aber partout nicht finde) bitte ich Euch um Eure Hilfe:

Der Makro soll einfach als nächsten Schritt die mit GetDataArray in dem Tabellenblatt CSV geholten Daten in die aktive Zelle des Tabellenblattes CSV_Gesamt einfügen. Ich bekommes es aber nicht hin. Es ist bestimmt gaaaaaanz einfach, aber ich sehe den Wald vor lauter Bäumen nicht.

Nachfolgend mein bisheriger Code:

Code: Alles auswählen

sub CSV_Gesamt

Dim myDoc
Dim myView
Dim mySheet
Dim mySheets
Dim myRow
Dim myCell
Dim Cellrange
Dim Zellinhalt
Dim LeereZelle
Dim mySheet_CSV
Dim Zellinhalt_CSV
Dim mySheet_CSV_Gesamt
Dim Zellinhalt_CSV_Gesamt

myDoc = thisComponent
myView = myDoc.CurrentController 'benötigt man zum Aktivieren des gewählten Tabellenblattes
mySheet_CSV = myDoc.Sheets.GetByName("CSV") ' Wähle Datenblatt "CSV"
myView.setActiveSheet(mySheet_CSV) ' aktiviere Datenblatt CSV
Zellinhalt_CSV = mySheet_CSV.getCellRangeByName("A2:AD2").GetDataArray() ' "kopiere" Daten im Zellbereich
mySheet_CSV_Gesamt = myDoc.Sheets.GetByName("CSV_Gesamt") ' wähle Tabellenblatt "CSV_Gesamt"
myView.setActiveSheet(mySheet_CSV_Gesamt) ' aktiviere Tabellenblatt "CSV_Gesamt"
REM Gehe zur ersten freien Zeile im Tabellenblatt "CSV_Gesamt"
LeereZelle = mySheet_CSV_Gesamt.getCellRangeByName("A1:AD100").queryEmptyCells
getFirstEmptyRowInColumn = Split(LeereZelle.RowDescriptions(0)," ")
myRow = getFirstEmptyRowInColumn(1)
myCell =  mySheet_CSV_Gesamt.getCellRangeByName("A" & myRow)
ThisComponent.CurrentController.Select(myCell)

end sub
Bin gespannt wie es geht. Und über Korrekturen an meinem bisherigen Code wäre ich dankbar. Aber bitte so einfach wie möglich, damit ich es als Anfänger nachvollziehen kann (gerne mit Kommentaren :) ).

Ganz herlichen Dank im Voraus und einen schönen Tag
Lidia

Nach oben