Kopierern, Ausschneiden und Einfügen... dürfte die schnellste (und offensichtlichste) Lösung sein.Gast hat geschrieben:Nun möchte ich alle Zeilen dieser Tabellen in der ersten Tabelle "Zusammenfassung" zusammenführen.
Tabellen zusammenführen
Moderator: Moderatoren
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Tabellen zusammenführen
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Tabellen zusammenführen
Hallo Gast
Das kann man recht einfach als Makro aufzeichnen und dann auf einen Button legen zum beliebigen wiederholen
im welchem Umfang verändern sich die Unter-Tabellen?
und sind die zu kopierenden Bereiche konsistente Datenbereiche also ein Bereich ohne Leerzeile/Spalten dazwischen?
oder wie wo was ?
Das kann man recht einfach als Makro aufzeichnen und dann auf einen Button legen zum beliebigen wiederholen
im welchem Umfang verändern sich die Unter-Tabellen?
und sind die zu kopierenden Bereiche konsistente Datenbereiche also ein Bereich ohne Leerzeile/Spalten dazwischen?
oder wie wo was ?
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: Tabellen zusammenführen
Hi
falls noch Interesse besteht
so geht es mit 33 Maus/Tastaturklicks bei konsistenten Datenbereichen
Bitteschöööööön
falls noch Interesse besteht
so geht es mit 33 Maus/Tastaturklicks bei konsistenten Datenbereichen
Bitteschöööööön
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: Tabellen zusammenführen
Vielen Dank für den super Service!
Ich werde mir das Makro am Wochenende anschauen.
Herzlichen Dank
die Struktur bleibt gleich, keine Leerzeilen und Spalten, jedoch ändert sich die Zeilenanzahl.clag hat geschrieben:so geht es mit 33 Maus/Tastaturklicks bei konsistenten Datenbereichen
Ich werde mir das Makro am Wochenende anschauen.
Herzlichen Dank
OO portable 3.2.0 deutsch
WIN XP, WIN Vista, WIN 7
WIN XP, WIN Vista, WIN 7
Re: Tabellen zusammenführen
Hallo joemouth
das Beispiel zeigt auf wie du es machen kannst,
du kannst das Makro nicht so ohne weiters kopieren und auf ein anderes Cals Dokument anwenden,
weil es auf gezeichnet und nicht geschrieben wurde.
Die im Beispiel beschrieben Vorgehensweise kannst du aber bei
dann hoffe ich es hilft dir weiter
das Beispiel zeigt auf wie du es machen kannst,
du kannst das Makro nicht so ohne weiters kopieren und auf ein anderes Cals Dokument anwenden,
weil es auf gezeichnet und nicht geschrieben wurde.
Die im Beispiel beschrieben Vorgehensweise kannst du aber bei
genauso anwenden, du hast nur etwas mehr Klicks weil mehr Unter-Tabellen.joemouth hat geschrieben:die Struktur bleibt gleich, keine Leerzeilen und Spalten, jedoch ändert sich die Zeilenanzahl.

dann hoffe ich es hilft dir weiter
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Tabellen zusammenführen
War in der Zwischenzeit offline und hatte ausnahmsweise etwas Zeit.
Dabei kam folgendes Makro raus...vielleicht hilft es ja jemanden
Den Namen des Zielblattes anpassen (erste Konstante), ggfs. die Blätter in der 2. Konstanten benennen, die nicht bearbeitet werden sollen.
Kopiert keine Formate!
Der Code und Ablauf sollten selbsterklärend sein... wenn Frage bestehen: fragen !
Dabei kam folgendes Makro raus...vielleicht hilft es ja jemanden

Den Namen des Zielblattes anpassen (erste Konstante), ggfs. die Blätter in der 2. Konstanten benennen, die nicht bearbeitet werden sollen.
Kopiert keine Formate!
Code: Alles auswählen
' de40039
' Inhalte kopieren auf ein Zielblatt
const cZielBlatt = "summary"
const cNichtbearbeiten = "Steuerung Deckblatt label"
Private sMakroName
Private oZielBlatt
Private oZielBereich
Private oZielCursor
Private lMaxZeilen
Private lErsteSpalte
Private lLetzteZeile
' ------------------------------------------------------------------
Sub de40039
sMakroName = "Makro de40039"
' Kopieren aller Daten von einer Anzahl Tabellenblätter
' auf ein Blatt "Zusammenfassung"
' Objekte der Datei
oDok = ThisComponent
oZielBlatt = oDok.Sheets().getByName( cZielBlatt )
' Cursor für Ziel
oZielCursor = oZielBlatt.createCursor()
' Zieladresse bestimmen
oZielCursor.gotoStartOfUsedArea( FALSE )
oZielCursor.gotoEndOfUsedArea( TRUE )
lErsteSpalte = oZielCursor.getRangeAddress().StartColumn
lLetzteZeile = oZielCursor.getRangeAddress().EndRow
' max Anzahl Zeilen pro Blatt
lMaxZeilen = oDok.Sheets().getByIndex( 0 ).Rows.getCount()
de40039_kopieren
End Sub
' ------------------------------------------------------------------
' Routine zum Kopieren der Daten
Sub de40039_kopieren
' alle Namen
aQuellBlaetter = oDok.Sheets().ElementNames
' für alle Blätter im Quellbereich
For i = LBound( aQuellBlaetter ) To UBound ( aQuellBlaetter )
oTempBlatt = oDok.Sheets().getByName( aQuellBlaetter(i) )
oTempBlattName = oTempBlatt.Name
If Instr( cNichtbearbeiten, oTempBlattName ) > 0 Then
oTempBlattname = "nicht bearbeiten"
End If
Select Case oTempBlattName
' Zielblatt nicht bearbeiten
Case cZielBlatt
' sonstige Blätter,die nicht bearbeitet werden sollen
Case "nicht bearbeiten"
' alle anderen kopieren
Case Else
oQuellCursor = oTempBlatt.createCursor()
' Datenbereich ermitteln
oQuellCursor.gotoStartOfUsedArea( FALSE )
oQuellCursor.gotoEndOfUsedArea( TRUE )
' Bereichsadressen
aQuellAdresse = oQuellCursor.getRangeAddress()
aQuellDatenBereich = oTempBlatt.getCellRangeByPosition( _
aQuellAdresse.StartColumn, aQuellAdresse.StartRow, _
aQuellAdresse.EndColumn, aQuellAdresse.EndRow )
' Prüfen, ob ins Ziel passt
If ( aQuellDatenBereich.Rows.Count + lLetzteZeile > lMaxZeilen ) Then
MsgBox "Zielbereich zu klein zum Einfügen!" & CHR(10) & _
"Blatt " & s & " nicht kopiert", 0, sMakroName
STOP
End If
'
aQuellDaten = aQuellDatenBereich.getDataArray()
'
oZielBlatt.getCellRangeByPosition( _
aQuellAdresse.StartColumn , _
aQuellAdresse.StartRow + lLetzteZeile, _
aQuellAdresse.EndColumn , _
aQuellAdresse.EndRow + lLetzteZeile ).setDataArray( aQuellDaten )
' letzteZeile neu setzen
lLetzteZeile = lLetzteZeile + aQuellDatenBereich.Rows.Count
End Select
Next
End Sub
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Tabellen zusammenführen
Und schon die erste Frage:komma4 hat geschrieben: Der Code und Ablauf sollten selbsterklärend sein... wenn Frage bestehen: fragen !
Das Makro stoppt hier mit "Object variable not set"
Code: Alles auswählen
aQuellBlaetter = oDok.Sheets().ElementNames
Was ist zu tun?
Vielen Dank
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Tabellen zusammenführen
mmmh,
setze mal die Zeile
oben zu den anderen Private Zeilen.
Klappt es dann?
Du führst das Makro de40039 aus...nicht das Unterprogramm de40039_kopieren?!
setze mal die Zeile
Code: Alles auswählen
Private oDok
Klappt es dann?
Du führst das Makro de40039 aus...nicht das Unterprogramm de40039_kopieren?!
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Tabellen zusammenführen
jetzt jakomma4 hat geschrieben:Klappt es dann?

nun möchte ich aber verhindern, das von allen QuellTabellen die Spaltenköpfe mit kopiert werden
weil die Tabellen alle gleich aufgebaut sind und die ZielTabelle bereits Spaltenköpfe hat
da müsste ein "-1" oder so etwas an der richtigen Stelle diesen Wunsch erfüllen nur wo ?
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Tabellen zusammenführen
Bei der Setzung von aQuellDatenBereich, StartRow +1,an den zwei Stellen im Code, wo verwendet
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Tabellen zusammenführen
Hi
so jetzt läuft das Makro prima
Danke........
so jetzt läuft das Makro prima

Danke........
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: Tabellen zusammenführen
Ja, Bestens, nun funktioniert es, herzlichen Dank und ein schönes Wochenende!komma4 hat geschrieben: setze mal die Zeileoben zu den anderen Private Zeilen.Code: Alles auswählen
Private oDok
Klappt es dann?
OO portable 3.2.0 deutsch
WIN XP, WIN Vista, WIN 7
WIN XP, WIN Vista, WIN 7