Hallo Stephan,
ich hab´ fast nach jedem Deiner Beiträge das Bedürfnis mich bei Dir zu bedanken, werde mir das jetzt aber weitgehend lassen, um nicht zu nerven. Es klappt jetzt anscheinden (jedenfalls wenn ich den Code schrittweise durchteste).
Du hast doch sicher auch eine Erklärung warum ich im Code-Editor (oder wie man das nennt) nicht mit dem Kontextmenü der rechten Maustaste kopieren und einfügen kann.
Gruß - Mr.Ioes
So was wie Serienbriefe mit Calc?
Moderator: Moderatoren
Hallo Stephan,
also ich scheine es gerade für das erste Haus hingekriegt zu haben. Der Code (die Tabellen, insb. die Mieterliste habe ich zwischenzeitlich verändert):
Kannst Du mir jetzt noch erklären:
1. Wie ich (am besten zusätzlich) den .pdf-Export der einezlnen Abrechnungen hinkriege und
2. diese neuen Dateien entweder in bereits vorhandene Verzeichnisse oder (noch besser) in zu erstellende Verzeichnisse schreiben kann (wenn gleichnamige Verzeichnisse noch nicht vorhanden sind).
3. Ich die neuen Tabellen statt an erster Stelle (0) nach hinten an der gerade letzte Stelle erstellen kann.
4. Schließlich bitte ich noch um einen Tipp, wie ich die gerade per Makro erstellten neuen Tabellen einfach überschreiben kann, insb. wenn ich eine nachträglich in der Vorlage geänderte Formatierung in alle Einzeltabellen übernehemen kann. Als ich probiert habe den Code einfach noch mal ausführen zu lassen kam eine Fehlermeldung.
Ich hoffe nicht unverschämt zu werden. Im Wesentlich wurde mir ja nun schon geholfen.
Gruß - Mr.Ioes
also ich scheine es gerade für das erste Haus hingekriegt zu haben. Der Code (die Tabellen, insb. die Mieterliste habe ich zwischenzeitlich verändert):
Code: Alles auswählen
Sub Main
dim myDoc as object
myDoc = ThisComponent
'myDoc ist eine Objektvariable
Dim datensatz%
For datensatz = 2 To 8
Wohnung = myDoc.getSheets().getByName("Mieterliste").getCellByPosition(0,datensatz-1)
ohne = LTRIM(Wohnung.string)
myDoc.Sheets.CopyByName("BK_EinzelAbrechnung",ohne,0)
Formel_B4 = "=$Mieterliste.C" & datensatz
Formel_C4 = "=$Mieterliste.A" & datensatz
Formel_F4 = "=$Mieterliste.G" & datensatz
Formel_B5 = "=$Mieterliste.F" & datensatz
Formel_F5 = "=$Mieterliste.H" & datensatz
Formel_B6 = "=$Mieterliste.E" & datensatz
Formel_F7 = "=$Mieterliste.J" & datensatz
Formel_F9 = "=$Mieterliste.L" & datensatz
Formel_F13 = "=$Mieterliste.M" & datensatz
Formel_C18 = "=$Mieterliste.N" & datensatz
myDoc.getSheets().getByName(ohne).getCellRangeByName("$B$4").Formula = Formel_B4
myDoc.getSheets().getByName(ohne).getCellRangeByName("$C$4").Formula = Formel_C4
myDoc.getSheets().getByName(ohne).getCellRangeByName("$F$4").Formula = Formel_F4
myDoc.getSheets().getByName(ohne).getCellRangeByName("$B$5").Formula = Formel_B5
myDoc.getSheets().getByName(ohne).getCellRangeByName("$F$5").Formula = Formel_F5
myDoc.getSheets().getByName(ohne).getCellRangeByName("$B$6").Formula = Formel_B6
myDoc.getSheets().getByName(ohne).getCellRangeByName("$F$7").Formula = Formel_F7
myDoc.getSheets().getByName(ohne).getCellRangeByName("$F$9").Formula = Formel_F9
myDoc.getSheets().getByName(ohne).getCellRangeByName("$F$13").Formula = Formel_F13
myDoc.getSheets().getByName(ohne).getCellRangeByName("$C$18").Formula = Formel_C18
Next datensatz
End Sub
1. Wie ich (am besten zusätzlich) den .pdf-Export der einezlnen Abrechnungen hinkriege und
2. diese neuen Dateien entweder in bereits vorhandene Verzeichnisse oder (noch besser) in zu erstellende Verzeichnisse schreiben kann (wenn gleichnamige Verzeichnisse noch nicht vorhanden sind).
3. Ich die neuen Tabellen statt an erster Stelle (0) nach hinten an der gerade letzte Stelle erstellen kann.
4. Schließlich bitte ich noch um einen Tipp, wie ich die gerade per Makro erstellten neuen Tabellen einfach überschreiben kann, insb. wenn ich eine nachträglich in der Vorlage geänderte Formatierung in alle Einzeltabellen übernehemen kann. Als ich probiert habe den Code einfach noch mal ausführen zu lassen kam eine Fehlermeldung.
Ich hoffe nicht unverschämt zu werden. Im Wesentlich wurde mir ja nun schon geholfen.

Gruß - Mr.Ioes
weil die Entwickler übersehen haben das zu implementieren? Ist bei mir genauso - verwende die üblichen Shortcuts STRG+C usw.Du hast doch sicher auch eine Erklärung warum ich im Code-Editor (oder wie man das nennt) nicht mit dem Kontextmenü der rechten Maustaste kopieren und einfügen kann.
Fehlermeldung kommt weil gleichnamige Blätter schon existieren. Da ich nicht weiß was sich zukünftig auf dem Ausgangsblatt alles ändern könnte würde ich eine universelle Lösung vorschlagen. Ergänze Deinen Code wie folgt:Schließlich bitte ich noch um einen Tipp, wie ich die gerade per Makro erstellten neuen Tabellen einfach überschreiben kann, insb. wenn ich eine nachträglich in der Vorlage geänderte Formatierung in alle Einzeltabellen übernehemen kann. Als ich probiert habe den Code einfach noch mal ausführen zu lassen kam eine Fehlermeldung.
Code: Alles auswählen
...
ohne = LTRIM(Wohnung.string)
If myDoc.Sheets.hasByName(ohne) Then
mydoc.Sheets.removebyname(ohne)
end if
myDoc.Sheets.CopyByName("BK_EinzelAbrechnung",ohne,0)
...
Ändere diese Zeile:Ich die neuen Tabellen statt an erster Stelle (0) nach hinten an der gerade letzte Stelle erstellen kann.
Code: Alles auswählen
myDoc.Sheets.CopyByName("BK_EinzelAbrechnung",ohne,0)
Code: Alles auswählen
myDoc.Sheets.CopyByName("BK_EinzelAbrechnung",ohne,myDoc.Sheets.count-1)
folgende Fragen:1. Wie ich (am besten zusätzlich) den .pdf-Export der einezlnen Abrechnungen hinkriege und
2. diese neuen Dateien entweder in bereits vorhandene Verzeichnisse oder (noch besser) in zu erstellende Verzeichnisse schreiben kann (wenn gleichnamige Verzeichnisse noch nicht vorhanden sind).
es werden beispielsweise 8 neue Blätter erzeugt und zu den vorhandenen in der Ausgangsdatei hinzugefügt, ob das beibehalten werden soll ist mir egal - aber die 8 Blätter sollen auch in andere Dateien (damit sie gespeichert werden können)
Sollen das 8 Dateien mit je einem Tabellenblatt sein oder eine Datei mit 8 Tabellenblättern?
Steht der Speicherort wo die neuen Verzeichnisse angelegt werden sollen in irgendeiner Beziehung zum Speicherort des Ausgangsdokuments?
In Abhängigkeit wie die Dateien beschaffen sein sollen (1.Frage) können diese in einem oder mehreren Verzeichnissen gespeichert werden - was kannst Du dazu sagen?
Sollen die neuen Dateien nur gespeichert oder auch geöffnet werden (aber Vorsicht bei 20 Mietern gehen dann u.U. im Prinzip 20 Fenster auf)? Wenn geöffnet: welches Fenster soll den Fokus haben?
Müssen Druckbereiche per Code gesetzt werden? Was ist mit der Gestaltung von Kopf- und Fußzeilen bei PDF-Export? Wo sollen die PDF-Dateien gespeichert werden?
soweit, zunächst
Gruß
Stephan
Also am liebsten wäre mir für die konkrete Aufgabe, wenn von den neu erstellten Tabellenblättern der Ausgangs-Calc-Tabelle .pdf-Exporte jeweils als eigenständige (einseitige) Datei einfach in dasselbe Verzeichnis geschrieben werden. Die Einzelbabrechnungen sollten denselben Druckbereich der Vorlage haben und zwar (in diesem Fall) ohne Kopf- oder Fußzeile. Der Name der pdf-Exporte sollte (bis natürlich auf die Dateiendung.pdf) identisch mit dem Namen der Einzelabrechnungstabelle sein, nämlich der Wohnungsnummer die ursprünglich in der Tabelle "Mieterliste" in Spalte A steht.Stephan hat geschrieben:folgende Fragen:1. Wie ich (am besten zusätzlich) den .pdf-Export der einezlnen Abrechnungen hinkriege und
2. diese neuen Dateien entweder in bereits vorhandene Verzeichnisse oder (noch besser) in zu erstellende Verzeichnisse schreiben kann (wenn gleichnamige Verzeichnisse noch nicht vorhanden sind).
es werden beispielsweise 8 neue Blätter erzeugt und zu den vorhandenen in der Ausgangsdatei hinzugefügt, ob das beibehalten werden soll ist mir egal - aber die 8 Blätter sollen auch in andere Dateien (damit sie gespeichert werden können)
Sollen das 8 Dateien mit je einem Tabellenblatt sein oder eine Datei mit 8 Tabellenblättern?
Steht der Speicherort wo die neuen Verzeichnisse angelegt werden sollen in irgendeiner Beziehung zum Speicherort des Ausgangsdokuments?
In Abhängigkeit wie die Dateien beschaffen sein sollen (1.Frage) können diese in einem oder mehreren Verzeichnissen gespeichert werden - was kannst Du dazu sagen?
Sollen die neuen Dateien nur gespeichert oder auch geöffnet werden (aber Vorsicht bei 20 Mietern gehen dann u.U. im Prinzip 20 Fenster auf)? Wenn geöffnet: welches Fenster soll den Fokus haben?
Müssen Druckbereiche per Code gesetzt werden? Was ist mit der Gestaltung von Kopf- und Fußzeilen bei PDF-Export? Wo sollen die PDF-Dateien gespeichert werden?
Für zukünftige Arbeiten wäre es aber auch sehr nett, wenn ich wüßte wie ich diese .pdf-Exporte in andere ggf. anzulegende Verzeichnisse schreiben kann. Beipsiel: Ausgangsdatei in .../2003/Gesamtuebersicht und die .pdf-Exporte in .../2003/2951 und .../2003/2952 u.s.w.
Daran die exprotierten neuen .pdf-Dateien direkt zu öffnen habe ich noch gar nicht gedacht und das ist für das konkrete Projekt auch nicht gewünscht.
Ich hab´s noch gar nicht ausprobiert, frage aber trotzdem schon mal nach: Werden die neuen Tabellenblätter jetzt an zweiter oder letzter Stelle eingefügt?Stephan hat geschrieben:Ändere diese Zeile:Ich die neuen Tabellen statt an erster Stelle (0) nach hinten an der gerade letzte Stelle erstellen kann.in:Code: Alles auswählen
myDoc.Sheets.CopyByName("BK_EinzelAbrechnung",ohne,0)
myDoc.Sheets.count entspricht der Anzahl der Tabellenblätter, da der Code jedoch die Position nach Index bestimmt, und dieser bei 0 beginnt, brauchst Du im Code myDoc.Sheets.count-1Code: Alles auswählen
myDoc.Sheets.CopyByName("BK_EinzelAbrechnung",ohne,myDoc.Sheets.count-1)
Gruß - Mr.Ioes
Hallo Stephan,
nach dem ersten lesen muss ich erstmal gestehen, dass mir an einem PC auf den ich meistens Zugriff habe Adobe Arcrobat 5 installiert ist (also auch den Distiller).
Also mit dem oben Beschriebenen Code konnte ich alle Tabellenblätter für das Haus M*-109 erstellen. Für M*-111 muss ich noch eine leicht abgewandelte Vorlage erstellen und den Code anpassen, was aber kein Problem sein dürfte. Tja und dann kommen die anderen Häuser für die ich die jeweiligen Tabellen(-vorlagen) erst noch zusammenstellen muss (z.Teil fehlen mir da auch noch Daten).
Gruß und Dank - Mr.Ioes
nach dem ersten lesen muss ich erstmal gestehen, dass mir an einem PC auf den ich meistens Zugriff habe Adobe Arcrobat 5 installiert ist (also auch den Distiller).

Also mit dem oben Beschriebenen Code konnte ich alle Tabellenblätter für das Haus M*-109 erstellen. Für M*-111 muss ich noch eine leicht abgewandelte Vorlage erstellen und den Code anpassen, was aber kein Problem sein dürfte. Tja und dann kommen die anderen Häuser für die ich die jeweiligen Tabellen(-vorlagen) erst noch zusammenstellen muss (z.Teil fehlen mir da auch noch Daten).
Gruß und Dank - Mr.Ioes
Hallo Stephan,
also erstmal möchte ich melden, dass Deine Anweisungen zum Löschen, bzw. überschreiben der Einzelabrechnungsblätter und die Erstellung an letzter Stelle prima klappen.
An den .pdf-Export traue ich mich irgendwie noch nicht ran, weil ich zu wenig von dem verstehe was zu tun ist.
Gruß - Mr.Ioes
also erstmal möchte ich melden, dass Deine Anweisungen zum Löschen, bzw. überschreiben der Einzelabrechnungsblätter und die Erstellung an letzter Stelle prima klappen.
An den .pdf-Export traue ich mich irgendwie noch nicht ran, weil ich zu wenig von dem verstehe was zu tun ist.
Gruß - Mr.Ioes