Seite 1 von 2
Automatischer Seitenumbruch / automatische Tabellenblätter
Verfasst: Do 19. Mär 2015, 09:56
von dreckfrosch
Hallo liebe Libre-Office-Gemeinde,
ich habe folgendes Problem:
In einer Tabelle enthält eine Spalte viele verschiedene E-Mail Adressen. Die einzelnen Adressen tauchen teilweise einzeln oder auch mehrfach auf. Die Tabelle ist alphabetisch nach den E-Mail-Adressen sortiert
Beispiel:
franz@email.de
franz@email.de
hanswurst@xyz.com
klaus@abc.de
karl@123.de
karl@123.de
karl@123.de
Nun muss ich die Tabellen so ausdrucken, dass auf einem Ausdruck immer nur die Einträge zu sehen sind, die einer e-Mail-Adresse zuzuordnen sind.
Wie kann ich also entweder automatisch immer dann einen Seitenumbruch einrichten, wenn die E-Mail-Adresse sich ändert, oder wie kann ich aus den einzelnen E-Mail-Adressen jeweils neue Tabellenblätter generieren, die ich dann schnell hintereinander ausdrucken kann?
Um beim obigen Beispiel zu bleiben:
franz@email.de
franz@email.de
_______________________
hanswurst@xyz.com
_______________________
klaus@abc.de
_______________________
karl@123.de
karl@123.de
karl@123.de
_______________________
Das ganze händisch zu machen ist aufgrund der Datenmenge undenkbar.
Vielen Dank für Eure Unterstüzung!
Der Dreckfrosch
Re: Automatischer Seitenumbruch / automatische Tabellenblätt
Verfasst: Do 19. Mär 2015, 12:05
von miesepeter
Workaround:
SUCHEN/ERSETZEN @ durch @_ (_ = Leerzeichen)
Menü Daten > Text in Spalten (Trenner Leerzeichen)
Dann sortieren oder filtern...
Wenn sonst nichts geht, wäre das eine manuelle Alternative...
Ciao
Re: Automatischer Seitenumbruch / automatische Tabellenblätt
Verfasst: Do 19. Mär 2015, 12:34
von dreckfrosch
Vielen Dank, ich habe Deine Schritte grundsätzlich verstanden, komme aber nicht zum gewünschten Ergebnis. Mit dieser Methode trenne ich ja nur alles ab, was hinter dem @ steht. Dennoch bleiben alle Einträge untereinander sortiert in einem Tabellenblatt...oder verstehe ich das irgendwie falsch?
Re: Automatischer Seitenumbruch / automatische Tabellenblätt
Verfasst: Do 19. Mär 2015, 13:09
von karolus
Hallo
@miesepeter : #####frosch möchte manuelle Zeilenumbrüche wenn die Mail-adresse wechselt.
Code: Alles auswählen
Sub Main
doc = ThisComponent
sel = doc.CurrentSelection
sheet = sel.Spreadsheet
rows = sheet.Rows
c = 0 'index Spalte A -- Bitte Anpassen'
r = 0
firstentry = sheet.getCellByPosition(c, r).String
do
r = r+1
nextentry = sheet.getCellByPosition(c, r).String
if nextentry <> firstentry then 'first →→ firstentry'
rows.getByIndex(r).IsManualPageBreak = True
End If
firstentry = nextentry
Loop until nextentry = ""
End Sub
Edit: Fehler in Zeile 13 berichtigt
Re: Automatischer Seitenumbruch / automatische Tabellenblätt
Verfasst: Do 19. Mär 2015, 13:15
von dreckfrosch
Super der Code scheint zu funktionieren. Die Spalte mit den E-Mail-Adressen ist Spalte L, wie ist das dann genau einzutragen. Ich kenne mich mit Makros leider überhaupt nicht aus. Ich habe ihn zwar ausführen können, aber nun ist hinter jeder E-Mail Adresse ein Seitenumbruch. Es wird also nicht erkannt, wenn die Adressem gleich lauten.
Wahrscheinlich hab ich das mit der Spalte L falsch eingegeben...
Code: Alles auswählen
Sub Main
doc = ThisComponent
sel = doc.CurrentSelection
sheet = sel.Spreadsheet
rows = sheet.Rows
c = 0 'index Spalte L'
r = 0
firstentry = sheet.getCellByPosition(c, r).String
do
r = r+1
nextentry = sheet.getCellByPosition(c, r).String
if nextentry <> first then
rows.getByIndex(r).IsManualPageBreak = True
End If
firstentry = nextentry
Loop until nextentry = ""
End Sub
Re: Automatischer Seitenumbruch / automatische Tabellenblätt
Verfasst: Do 19. Mär 2015, 13:22
von karolus
Hallo
Ich habs ungenau beschrieben -- ja du möchtest Seitenumbrüche zwischen den Zeilen bei denen der Inhalt wechselt.
edit.
du hast den Kommentar geändert aber nicht den Index
edit_ende
Karolus
Re: Automatischer Seitenumbruch / automatische Tabellenblätt
Verfasst: Do 19. Mär 2015, 13:31
von dreckfrosch
...mmh...
es bleibt bei Umbrüchen nach jeder einzelen E-Mail-Adresse...
Code: Alles auswählen
REM ***** BASIC *****
Sub Main
doc = ThisComponent
sel = doc.CurrentSelection
sheet = sel.Spreadsheet
rows = sheet.Rows
c = 11
r = 0
firstentry = sheet.getCellByPosition(c, r).String
do
r = r+1
nextentry = sheet.getCellByPosition(c, r).String
if nextentry <> first then
rows.getByIndex(r).IsManualPageBreak = True
End If
firstentry = nextentry
Loop until nextentry = ""
End Sub
Re: Automatischer Seitenumbruch / automatische Tabellenblätt
Verfasst: Do 19. Mär 2015, 13:43
von karolus
Hallo
Ja - du musst die Dinger erst wieder wegbekommen.
Code: Alles auswählen
Sub setback
doc = ThisComponent
sel = doc.CurrentSelection
sheet = sel.Spreadsheet
sheet.Rows.IsManualPageBreak = False
End Sub
Re: Automatischer Seitenumbruch / automatische Tabellenblätt
Verfasst: Do 19. Mär 2015, 14:13
von karolus
Hach - immer diese blöden Fehler in Basic - update:
Code: Alles auswählen
Sub Main
doc = ThisComponent
sel = doc.CurrentSelection
sheet = sel.Spreadsheet
rows = sheet.Rows
c = 11 'index Spalte L -- Bitte Anpassen
r = 0
f_irst = sheet.getCellByPosition(c, r).String
do
r = r+1
n_ext = sheet.getCellByPosition(c, r).String
if n_ext <> f_irst then
rows.getByIndex(r).IsManualPageBreak = 1
Else
rows.getByIndex(r).IsManualPageBreak = 0
End If
f_irst = n_ext
Loop until n_ext = ""
End Sub
Re: Automatischer Seitenumbruch / automatische Tabellenblätt
Verfasst: Do 19. Mär 2015, 14:48
von dreckfrosch
Ohne Scheiß---TOTAL GEIL! Vielen Dank und sorry für den unflätigen Ton, aber das musste mal sein!
Haut hin!!! DAAAAANKE!!!!
Fällt Dir jetzt noch irgendwas cooles ein, damit er auch auf jeder Seite die Tabellenüberschrift übernimmt??? Wäre nur ein Schmankerl und nicht so schlimm, wenn's nicht geht oder total kompliziert ist!