Gelöst ! Eingabemaske für CSV Tabelle erstellen

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Tom77
Beiträge: 5
Registriert: Sa, 14.11.2015 19:16

Gelöst ! Eingabemaske für CSV Tabelle erstellen

Beitrag von Tom77 »

Hallo zusammen,
ich würde gerne eine Eingabemaske erstellen um verschiedene Artikelkomponenten in eine recht unübersichtliche CSV Tabelle zu verschieben. Ich habe es schon mit Daten / Form versucht, aber das ist nicht wirklich zufriedenstellend. Am liebsten wären mir 2 Tabellenblätter, aber wie stell ich das blos an ?
:?:
schöne Grüße Tom
Zuletzt geändert von Tom77 am So, 15.11.2015 12:26, insgesamt 1-mal geändert.
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Eingabemaske für CSV Tabelle erstellen

Beitrag von F3K Total »

Hi Tom,
das kann ja alles und nichts sein.
Stelle am besten ein Beispieldokument zur Verfügung, an dem man sehen kann, warum deine Tabellen wie aussehen sollen.
Also was soll wo in welche Tabelle/Tabellenspalte?
Dann findest Du vielleicht Hilfe. Mit der Frage, so wie sie jetzt ist, kann wenigstens ich, nix anfangen.
Gruß R
Tom77
Beiträge: 5
Registriert: Sa, 14.11.2015 19:16

Re: Eingabemaske für CSV Tabelle erstellen

Beitrag von Tom77 »

Hab versucht mal ein Beispiel zu erstellen, so in etwa sollte das ganze aufgebaut sein, beim Original sind es nur um einiges mehr an Spalten.
schöne Grüße Tom
Dateianhänge
Beispiel Eingabemaske.ods
(9.87 KiB) 237-mal heruntergeladen
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Eingabemaske für CSV Tabelle erstellen

Beitrag von F3K Total »

Hallo Tom,
kannst Du programmieren?
  • Wenn nicht, bleibt dir entweder die serienmäßige Lösung "Form" (gibt es übrigens in AOO nicht, nur in LO) oder du erstellst eine Datenbank, da kannst Du Formulare zur Datenbearbeitung erzeugen. Das ist allerdings mit reichlich Lernaufwand verbunden.
  • Wenn ja, schreib ein Makro.
    • Möglichkeit 1: Das Makro ließt z.B. in Zellen auf der ersten Tabelle eingegebene Daten aus und schreibt sie in die zweite Tabelle
    • Möglichkeit 2: Du erzeugst einen Dialog, der alle Angaben aufnehmen kann, dazu schreibst Du ein Makro, dass die in den Dialog eingegebenen Daten ausliest und in die entsprechenden Spalten deiner zweiten Tabelle schreibt.
R
Tom77
Beiträge: 5
Registriert: Sa, 14.11.2015 19:16

Re: Eingabemaske für CSV Tabelle erstellen

Beitrag von Tom77 »

F3K Total hat geschrieben:Hallo Tom,
kannst Du programmieren?
  • Wenn nicht, bleibt dir entweder die serienmäßige Lösung "Form" (gibt es übrigens in AOO nicht, nur in LO) oder du erstellst eine Datenbank, da kannst Du Formulare zur Datenbearbeitung erzeugen. Das ist allerdings mit reichlich Lernaufwand verbunden.
  • Wenn ja, schreib ein Makro.
    • Möglichkeit 1: Das Makro ließt z.B. in Zellen auf der ersten Tabelle eingegebene Daten aus und schreibt sie in die zweite Tabelle
    • Möglichkeit 2: Du erzeugst einen Dialog, der alle Angaben aufnehmen kann, dazu schreibst Du ein Makro, dass die in den Dialog eingegebenen Daten ausliest und in die entsprechenden Spalten deiner zweiten Tabelle schreibt.
R
Hi R,
ich kann leider nicht programieren :( , aber ich würde versuchen mich in die Materie einzuarbeiten.
Gibt es vieleicht irgendwo ein ähnliches Beispiel Makro das man abwandeln könnte ?
Grüße Tom
Tom77
Beiträge: 5
Registriert: Sa, 14.11.2015 19:16

Re: Eingabemaske für CSV Tabelle erstellen

Beitrag von Tom77 »

Oder gäbe es vielleicht jemanden der mir ein Makro programieren kann ? Ich würde mich selbstverständlich auch erkenntlich zeigen !

Grüße Tom
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Eingabemaske für CSV Tabelle erstellen

Beitrag von Stephan »

es gibt eine fertige Extension dafür:
http://extensions.services.openoffice.o ... t/dataform

einfach installieren, Datei öffnen, den Datenbereich in der Tabelle markieren und über Daten-Form... (im Menü) starten
dataform.gif
dataform.gif (39.16 KiB) 3132 mal betrachtet

Gruß
Stephan
Tom77
Beiträge: 5
Registriert: Sa, 14.11.2015 19:16

Re: Gelöst ! Eingabemaske für CSV Tabelle erstellen

Beitrag von Tom77 »

Gelöst !
Ich danke euch allen recht herzlich für eure Hilfe, besonderen Dank an F3K Total !

schöne Grüße Thomas
hylli
*******
Beiträge: 1672
Registriert: Mi, 22.02.2006 19:37

Re: Gelöst ! Eingabemaske für CSV Tabelle erstellen

Beitrag von hylli »

Aus Neugier:
Wie sieht Deine Lösung nun aus?

Hylli
Ein Dankeschön für eine Lösung tut nicht weh!
Wer eine Lösung selbst findet, sollte die für die Nachwelt auch posten!

Geschäftlich: LibreOffice 6.0.x ("Still") unter Windows 10 64bit
Privat: LibreOffice 6.0.x ("Still") unter Linux Mint 19.x Cinnamon 64bit
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Gelöst ! Eingabemaske für CSV Tabelle erstellen

Beitrag von F3K Total »

Hi hylli,
es ist ein Makro, das einen vertikalen Zellbereich auf Blatt1 ausliest, transponiert und ans Ende der zweiten Tabelle hängt.
Dabei sind im vertikalen Eingabebereich zwar zeilenweise alle Spalten des Zielbereiches vorhanden und ggf. gefüllt, jedoch nur die zu ändernden, benötigten Zeilen eingeblendet.
So sind von 92 Werten, die übertragen werden müssen, nur 24 sichtbar. Am Ende springt das Makro noch auf die zweite Tabelle ans Ende, damit eine optische Kontrolle möglich ist.

Code: Alles auswählen

Sub S_Save_Row
    oSourceSheet = ThisComponent.Sheets.Eingabe
    oSourceRange = oSourceSheet.getcellrangebyname("QUELLDATENSATZ")
    aSourceData = oSourceRange.getdataarray
    oTargetSheet = ThisComponent.Sheets.Tabelle1
    oCursor = oTargetSheet.createCursor
    ocursor.gotoendofusedarea(false)
    nRow = ocursor.rangeaddress.endrow + 1
    oTargetRange = oTargetSheet.getcellrangebyposition(0,nRow,91,nRow)
    aTargetData = oTargetRange.getdataarray
    for i = 0 to 91
        aTargetData(0)(i) = aSourceData(i)(0)
    next i
    oTargetRange.setdataarray(aTargetData)
    oController = Thiscomponent.currentController
    oController.activeSheet = oTargetSheet
    onewController = oController.getbyindex(1)
    onewController.firstvisiblerow = nRow-10
End Sub
Gruß R
Antworten