BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

gelöst; variable Zellenzahl ermitteln

Alles zur Programmierung im LibreOffice.
nitja
Beiträge: 123
Registriert: Di 20. Okt 2020, 15:55

Re: variable Zellenzahl ermitteln

Beitrag von nitja » Sa 2. Jan 2021, 21:22

natal hat geschrieben:
Sa 2. Jan 2021, 18:21
Jetzt bin oder werde ich langsam verwirrt.
Das ist keine Vorlage.
Was ist es dann?
Ich glaube ich beschränke meine Antwort dieses Mal auf diesen kurzen Text und warte auf Deine Antwort, damit ich Dir endlich die korrekte Doku-Vorlage liefern kann.
Lass gut sein. Ich mache eine "Dokument"-Vorlage (.ots-Datei), aus der durch Anklicken ein neues "Dokument" (.ods-Datei) erzeugt wird, das dann per Makro mit den Daten aus der auszuwählenden / ausgewählten .csv-Datei gefüllt wird. Dann sixt scho, was es damit auf sich hat.
Eine Antwort fehlt freilich noch: Wofür brauchst Du / was machst Du mit der laufenden Nummer der Datensätze / Datenzeilen?
LO 24.2.0.3 (X86_64) auf Linux 6.6.19-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO

natal
Beiträge: 119
Registriert: So 8. Mär 2020, 20:03

Re: variable Zellenzahl ermitteln

Beitrag von natal » Sa 2. Jan 2021, 21:26

Gerade sehe ich, dass Du WIN10 und LO 7.0.4.2 benützt.
Ich arbeite mit Linux-Cinnamon 20 und LO 6.4.6.2.
Ich hoffe, dass das nicht auch zu meiner Verwirrung beiträgt.

Noch einmal zum Verständnis:
Wenn ich meine Doku-Vorlage aufrufe (d. h. öffne), dann wird sie mir als .ots-Datei gezeigt.
Ich habe sie dir als .ods-Datei gesendet, weil ich sie im Forum nur in diesem Dateiformat (.ods) als Dateianhang weitergeben kann.
Kann ich davon ausgehen, dass Dir diese Erklärung reicht oder übersehe ich noch etwas?
Der Filepicker soll das Datum als Unterscheidungsmerkmal nehmen.

Servas
natal

craig
Beiträge: 1137
Registriert: Do 21. Apr 2016, 11:42

Re: variable Zellenzahl ermitteln

Beitrag von craig » Sa 2. Jan 2021, 21:41

@nitja
nitja hat geschrieben:Lass gut sein. Ich mache eine "Dokument"-Vorlage (.ots-Datei),
Warum?
Wie Natal erwähnte kann man hier kein .ots-File hochnladen, deshalb hat er seine
Dokumentvorlage in .ods umbenannt.

Also:
Datei herunterladen und umbennnen in .ots
Ich habe dies so gemacht und bei Doppelklick auf die ots.Datei öffnet sich Office
mit einem neues Dokument (unbenannt 1.ods) auf Basis der Vorlage.

@Natal
Natal hat geschrieben:Der Filepicker soll das Datum als Unterscheidungsmerkmal nehmen.
  • Welches Datum von gestern, heute oder morgen?
  • Wenn zwei oder mehr Dateien an einem Tag generiert wurden, dann soll welche Uhrzeit genommen werden?
Gruß

Craig

Nie die Sicherungskopie vergessen!

════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8

natal
Beiträge: 119
Registriert: So 8. Mär 2020, 20:03

Re: variable Zellenzahl ermitteln

Beitrag von natal » So 3. Jan 2021, 15:34

Hallo craig
In meinem Fall gibt es immer nur eine CSV-Datei pro Tag, als Adresse reicht daher das Datum.

Ich werde jetzt die Ausgangssituation, wie ich sie sehe, noch einmal zusammenfassen.

Ich habe :
* eine CSV-Datei, die ich mir über das Internet beschaffen muß.
Das bedeutet, ich muß sie vor dem Start der Auswertung irgendwo am PC adressierbar ablegen.
* meine Dokumentenvorlage im Dateiformat .ots
* und ein (Euer) Macro als .odt-Datei, dass den Inhalt der gefundenen Zellen und Spalten der CSV-Datei in
die Zellen und Spalten der Dokuvorlage zur Weiterverarbeitung einfügen kann.
* ein Filepicker-Macro

Um Euch das Suchen in dem langen Text zu ersparen
* füge ich noch einmal eine CSV-Datei und meine Dokuvorlage zwangsweise als .ods-Dateien bei
* und wiederhole hier die Aufgaben, die zu erledigen wären:
- den Inhalt der Zellen C2, D2 und E2 der CSV-Datei in die Zellen A2, B2 und C2 der
Dokuvorlage einfügen
- den Inhalt der Spalte B ab Zelle B4 bis B(n) und C ab C4 bis C(n) der CSV-Datei in die
Spalten C ab C4 und D ab D4 der Dokuvorlage einfügen

Gruß
natal
Dateianhänge
Macro.odt
(17.25 KiB) 95-mal heruntergeladen
Hans_Meerkatz_2020-11-20_08-53-19-7.ods
(373.61 KiB) 117-mal heruntergeladen
Dokuvorlage.ods
(15.48 KiB) 110-mal heruntergeladen

nitja
Beiträge: 123
Registriert: Di 20. Okt 2020, 15:55

Re: variable Zellenzahl ermitteln

Beitrag von nitja » Mo 4. Jan 2021, 06:04

War über das WE doch anderweitig beschäftigter als erwartet…
Aber hier ist jetzt die .ots-Datei (Dokumentvorlage) und das Makro um die daraus neu zu erstellende .ods-Datei (Dokument) aus der .csv-Datei zu befüllen.

Übrigens, wie oben schon mal beschrieben: um eine .csv-Datei (reine Textdatei) anzuschauen, musst Du sie in einem Reintext-Editor öffnen, nicht in LO.
1. Öffnen der .csv-Datei.png
1. Öffnen der .csv-Datei.png (26.78 KiB) 1384 mal betrachtet
Das sieht dann so aus:
2. Ansicht der .csv-Datei.png
2. Ansicht der .csv-Datei.png (56.92 KiB) 1384 mal betrachtet
Für Dein Projekt brauchst Du das aber nicht.

Du öffnest lediglich die beigefügte Dokumentvorlage (bei Dir wahrscheinlich per Doppelklick - bei mir ist es ein einfacher) und wirst automatisch nach der .csv-Datei gefragt:
3. Auswahl der .csv-Datei.png
3. Auswahl der .csv-Datei.png (68.39 KiB) 1384 mal betrachtet
2 Sekunden nach der Auswahl (wieder z.B. per Doppelklick) ist das neue CALC-Dokument fertig abgespeichert:
4. ~2 sek. nach .csv-Auswahl.png
4. ~2 sek. nach .csv-Auswahl.png (59.38 KiB) 1384 mal betrachtet
Damit das funktioniert, musst Du natürlich erst mal das Makro installieren. Das kann jetzt nicht mehr in der .ots-Datei gespeichert werden (wodurch es auch in den erzeugten ods.-Dateien unnötigen Platz verschwendete), sondern wohnt in "Meine Makros & Dialoge.Standard", wo Du erst mal ein neues Modul dafür anlegst (ich hab's "Hans_Meerkatz" genannt) und dort hinein die beigefügte .bas-Datei importierst.

öha! Man kann hier an eine Antwort wohl nur 4 Dateien anhängen! Weiter geht's also hier drunter…
Zuletzt geändert von nitja am Mo 4. Jan 2021, 06:26, insgesamt 1-mal geändert.
LO 24.2.0.3 (X86_64) auf Linux 6.6.19-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO

nitja
Beiträge: 123
Registriert: Di 20. Okt 2020, 15:55

Re: variable Zellenzahl ermitteln

Beitrag von nitja » Mo 4. Jan 2021, 06:23


Damit das funktioniert, musst Du natürlich erst mal das Makro installieren. Das kann jetzt nicht mehr in der .ots-Datei gespeichert werden (wodurch es auch in den erzeugten ods.-Dateien unnötigen Platz verschwendete), sondern wohnt in "Meine Makros & Dialoge.Standard", wo Du erst mal ein neues Modul dafür anlegst (ich hab's "Hans_Meerkatz" genannt) und dort hinein die beigefügte .bas-Datei importierst.
5. Basic importieren (wo das Makro wohnt).png
5. Basic importieren (wo das Makro wohnt).png (41.87 KiB) 1384 mal betrachtet
Damit das Makro automatisch gestartet wird, musst Du es noch mit einem passenden "Ereignis" verknüpfen:
6. Makroverwaltung.png
6. Makroverwaltung.png (46.73 KiB) 1384 mal betrachtet
7. Makro mit ''Ereignis'' starten.png
7. Makro mit ''Ereignis'' starten.png (53.67 KiB) 1384 mal betrachtet
Im folgenden Zustand ist es dann einsatzbereit:
8. Makrostart zugewiesen.png
8. Makrostart zugewiesen.png (71.64 KiB) 1384 mal betrachtet
Achte darauf, dass Du es in LibreOffice speicherst! (Unten im Bild)

In der angehängten zip-Datei (Hans Meerkatz.7z) findest du die verwendete .csv-Datei, die Vorlage und das Makro als basic-Datei. Ich empfehle, die in einem Unterverzeichnis von ~/Dokumente zu entpacken, die Dokumentvorlage in LOs Vorlagenverzeichnis zu verschieben (findest Du unter "Extras"→"Optionen…"→"LibreOffice/Pfade") und ein Link darauf in das gewählte Unterverzeichnis von ~/Dokumente einzufügen.

Wieder zu viele Anhänge - zip-Datei kommt mit dem nächsten Beitrag.
LO 24.2.0.3 (X86_64) auf Linux 6.6.19-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO

nitja
Beiträge: 123
Registriert: Di 20. Okt 2020, 15:55

Re: variable Zellenzahl ermitteln

Beitrag von nitja » Mo 4. Jan 2021, 06:24


In der angehängten zip-Datei (Hans Meerkatz.7z) findest du die verwendete .csv-Datei, die Vorlage und das Makro als basic-Datei. Ich empfehle, die in einem Unterverzeichnis von ~/Dokumente zu entpacken, die Dokumentvorlage in LOs Vorlagenverzeichnis zu verschieben (findest Du unter "Extras"→"Optionen…"→"LibreOffice/Pfade") und ein Link darauf in das gewählte Unterverzeichnis von ~/Dokumente einzufügen.
Dateianhänge
Hans Meerkatz.7z
(53.17 KiB) 158-mal heruntergeladen
LO 24.2.0.3 (X86_64) auf Linux 6.6.19-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO

craig
Beiträge: 1137
Registriert: Do 21. Apr 2016, 11:42

Re: variable Zellenzahl ermitteln

Beitrag von craig » Mo 4. Jan 2021, 22:55

Hallo Natal,

jetzt hast Du die Qual der Wahl ;)

An mein Programm sind ein paar Bedingungen geknüpft.

Ich gehe davon aus, dass Due mit einem Windows-Rechner arbeitest.
  1. Erstelle hier auf Laufwerk „C:\“ einen Ordner namens „temp“
    C:\temp
  2. Kopiere in diesen Ordner Deine CSV-Datei.
Das Makro setzt voraus, dass Du täglich eine neue CSV-Datei zur Verfügung hast.
Heute lautet der Dateiname so:
Hans_Meerkatz_2021-01-04_08-53-19-7.csv
und morgen so:
Hans_Meerkatz_2021-01-05_10-00-00-12.csv
Wichtig bei der Namensvergabeist, dass sich die Unterstriche und die Bindestriche an exakt derselben Position befinden.
Sonst funktiontiert die Makro-Logik der Splitfunktion, usw. nicht.

Daraus folgt, es wird immer nur die tagesaktuelle Datei geladen. Ist keine vorhanden, dann wird eine Fehlermeldung ausgelöst. Ansonsten läuft das Makro per Ereignissteuerung vollautomatisch ab. Habe trotzdem einen Button im Sheet abgelegt, über den Du das Makro aucch triggern kannst.
Ereignissteuerung:
Menü Extras → Anpassen
Register "Ereignisse"
Ereignis = "Neues Dokument"


Du brauchst also nur die Dokuvorlage öffnen, dann wird
  • ein neues File wird erzeugt
  • die CSV-Datei wird geöffnet
  • die Daten aus der CSV-Datei werden in ein Array kopiert
  • dann werden die Arrayinhalte in das neue Dokument kopiert.
  • B2,C2 und der Zellbereich C4:C86410 wird mit dem Zellformat HH:MM:SS formatiert.
Dies ist eine Dokumentvorlage. Wie immer nur in .ots umbenennen:
Dokuvorlage_20210104.ots.zip
(21.04 KiB) 106-mal heruntergeladen
Gruß

Craig

Nie die Sicherungskopie vergessen!

════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8

natal
Beiträge: 119
Registriert: So 8. Mär 2020, 20:03

Re: variable Zellenzahl ermitteln

Beitrag von natal » Di 5. Jan 2021, 16:52

Hi craig
- mein OS ist Linux Mint20
- ich erstelle nicht jeden Tag eine neue CSV-Datei, dass geschieht ganz unregelmäßig
- was bedeutet das für Deine Anleitungen und Macros?

Hallo nitja
Zuerst einmal DANKE für Deine aufwendige Beschreibung, denn ohne sie wäre ich wahrscheinlich versumpft.

Das ist mein augenblicklicher Kenntnisstand:
- mit dem Macro in Hans Meerkatz.7z und Deinen Angaben habe ich den Zustand Anhang 1 erreicht, das entspricht aber nicht Deinem Bild4

Um Anhang1 zu erreichen habe ich zuerst:
- über ein Fenster von LibreCalc <Extras<Makros<Makros ausführen<Meine
Makros<Standard<Modul1<Hans Meerkatz
ausgeführt
- und im anschließenden Fenster Datei<Öffnen<CSV-Datei<Öffnen;
- im nächsten Fenster Textimport-[Hans_Meerkatz_2020-11-20_08-53-19.csv] OK geglickt

Meine weiteren Baustellen:
- es ist mir auch nach vielen Versuchen nicht gelungen, dass im Macro der Name Hans_Meerkatz gleich nach dem Eintrag Standard erscheint (wie in Deinem Bild5)
- bei mir erscheint er immer nach Modul1 als Teil des Macros Anhang 2
- es gelingt mir auch nicht, den Zustand Deiner Bilder 7 und 8 zu erreichen.
Bei mir sieht es wie Anhang 3 und 4 aus

Ich glaube das sind wieder genug Problemchen
Es scheint, als ob Dich Corona noch länger in Minga festhält.

Servus
Dateianhänge
Anhang1.png
Anhang1.png (71.73 KiB) 1334 mal betrachtet
Anhang2.png
Anhang2.png (118.74 KiB) 1334 mal betrachtet
Anhang 3.png
Anhang 3.png (37.81 KiB) 1334 mal betrachtet
Anhang 4.png
Anhang 4.png (69.35 KiB) 1334 mal betrachtet

craig
Beiträge: 1137
Registriert: Do 21. Apr 2016, 11:42

Re: variable Zellenzahl ermitteln

Beitrag von craig » Di 5. Jan 2021, 21:20

Hallo Natal,

damit keine Langeweile aufkommt ;)
hat geschrieben:- mein OS ist Linux Mint20
- ich erstelle nicht jeden Tag eine neue CSV-Datei, dass geschieht ganz unregelmäßig
Ich habe eine Extension gespeichert, welche eine Makrobibliothek installiert.
In dieser Bibliothek befindet sich dann ein Modul und mein überarbeitetes Makro.
Installiere die Extension über den Extension Manager:
  • Menü Extras → Extension Manager
  • Button „Hinzufügen“
  • Office Neustart
Nach dem Neustart öffne die Basic-IDE, dann findest Du im Objektkatalog die neue Bibliothek unter:

Meine Makros & Dialoge
Bibliotheksname = libPolar
Modulname = modCSVImport


In der Dokuvorlage befinde sich jetzt nur ein minimaler Code, welcher die neue Bibliothek lädt und das Import-Makro startet.

Bevor Du loslegst, musst Du in Zeile 67 (modCSVImport) die URL so anpassen,
dass die URL auf Dein Linux-CSV-Verzeichnis (in URL-Notation) verweist:
"file:///..."
Ich bin hierbei davon ausgegangen, dass sich nur eine CSV-Datei in dem Verzeichnis befindet.

Jetzt einfach die Dokuvorlage öffnen. Der Rest läuft automatisch ab.

Wie gehabt .zip entfernen und loslegen:
Dokuvorlage_20210105_v02 Ext.ots.zip
(19.24 KiB) 124-mal heruntergeladen
CSV_Import.oxt.zip
(3.41 KiB) 125-mal heruntergeladen
Gruß

Craig

Nie die Sicherungskopie vergessen!

════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten