Neu:

  Keine Werbeeinblendungen für registrierte User

  ❤ Jede SPENDE hilft unserer Community ❤



  🌹 Danke für Eure Unterstützung 🙏


Calc: Spalte in mehrere Zeilen transponieren

Alles zur Programmierung im LibreOffice.
Statistiker
Beiträge: 9
Registriert: Mi 7. Okt 2020, 16:47
Wohnort: Westsachsen

Re: Calc: Spalte in mehrere Zeilen transponieren

Beitrag von Statistiker » Sa 10. Okt 2020, 19:39

craig hat geschrieben:
Sa 10. Okt 2020, 17:39
jetzt bin ich gespannt, ob mein Geschreibsel Deine Wünsche erfüllt.
Hallo Craig,

Chapeau, Dein 'Geschreibsel' funktioniert wunschgemäß. Habe es mehrmals auch auf andere Bereiche angewandt. Einige Anmerkungen teile ich später mit. Jetzt möchte ich ersteinmal danken und dir ein "frostfreies" Wochenende wünschen. Ich melde mich wieder...

Beste Grüße, Micha:el

Statistiker
Beiträge: 9
Registriert: Mi 7. Okt 2020, 16:47
Wohnort: Westsachsen

Re: Calc: Spalte in mehrere Zeilen transponieren

Beitrag von Statistiker » Mo 12. Okt 2020, 08:58

Hallo Craig,

nachdem ich am Wochenende "Dein Geschreibsel" ausführlich getestet und für hervorragend befunden habe, möchte ich Dir meinen herzlichsten Dank ausdrücken. Einige Punkte habe ich noch erklärt, die findest Du in der upgeloadenen ODS-Datei.

Freundliche Grüße aus dem Westen Sachsens - Bleib' gesund !

Micha:el :geek:
Dateianhänge
Spalte_Array_transponieren 5_20201012_085500.ods
(42.64 KiB) 10-mal heruntergeladen

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

Re: Calc: Spalte in mehrere Zeilen transponieren

Beitrag von craig » Di 13. Okt 2020, 21:51

Hallo Micha:el,
Micha:el hat geschrieben:Vielen Dank für Deine Mühe
Gern geschehen :D
Micha:el hat geschrieben:könnte man ja auch eine Dialogbox konstruieren, welche die Bereiche einer Quelltabelle block- und spaltenweise in Zeilen transponiert, nach entsprechender Eingabe oder Auswahl der Parameter. Ich habe da mal im Internet geguckelt aber nix entsprechendes gefunden....
Dazu habe Dir mal einen Link herausgesucht.
Es wird dort das Thema "Calc-Tabelle in ein Gridcontrol" laden beschrieben.
Weiter unten gibt es dort eine Beispieldatei:
http://de.openoffice.info/viewtopic.php?t=73707

Noch ein kleiner Wegweiser.
Das Dialogfenster wurde vom Programmierer im Designer der Basic-IDE gezeichnet.
1 Dialogfenster
2 Label
1 Textbox
3 CommandButton

Das Tabellen-Steuerelement (Gridcontrol) erzeugt er "on the fly" mittels Code.
Im Modul "Dialog_starten" befindet sich der nachfolgende Codeabschnitt.
Hiermit wird das Grid geladen, formatiert, usw.

Code: Alles auswählen

  REM ein Tabellen-Grid-Controllelement erzeugen und dem Dialog zuweisen
  REM Basis-TabellenGrid Model erzeugen
  oGridModel = oDlg.Model.createInstance("com.sun.star.awt.grid.UnoControlGridModel")
  oGridModel.Name = "myGrid"
  REM globale Eigenschaften zuweisen
  With oGridModel
    .ShowColumnHeader = True
    .ShowRowHeader = True
    .HScroll = false
    .VScroll = True
    .Sizeable = True
    .Step = 0
    .GridDataModel = GetTabellenDaten_Bsp1()    'Das Daten-Model wird zugewiesen 
    .ColumnModel = GetColumnModel_Bsp1()        'Das Spalten-Modekl wird zugewiesen
  End with
  REM das eigentliche Grid-Controlelement erzeugen
  oGridControl = createUnoService("com.sun.star.awt.grid.UnoControlGrid")
  oGridControl.setModel(oGridModel)   'das Model zuweisen

  REM jetzt das Control dem Dialog zufügen
  oDlg.addControl("tab_g1", oGridControl)
  REM Größe und Position des Controls setzen (Das muss vorher ausprobiert werden!)
  oGridControl.setPosSize(39,143,591,122, com.sun.star.awt.PosSize.POSSIZE)
Ich denke, nun wird es für Dich kein Problem mehr sein, transponieren und ein
Dialogfenster mit Gridcontrol unter einen Hut zu bekommen.

Bleibt auch Du gesund und immer an eine Sicherungskopie denken!
Gruß

Craig

Nie die Sicherungskopie vergessen!

════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.0.1.2 (x64) • AOO 4.1.6

Wanderer
Beiträge: 513
Registriert: Di 11. Feb 2014, 20:03
Wohnort: Berlin

Re: Calc: Spalte in mehrere Zeilen transponieren

Beitrag von Wanderer » Mi 14. Okt 2020, 20:29

Statistiker hat geschrieben:
Do 8. Okt 2020, 14:32
@Wanderer
Hallo,
danke für deine Antwort. Mir kommt es so vor, daß man bei LibreOffice/OpenOffice lieber mit Formeln und Funktionen als mit Makros arbeitet - im Gegensatz zu Microsoft (Excel).
Ich bevorzuge Makros, die man immer wieder einsetzen kann nach einer Anpassung auf die entsprechenden Tabellen. Man kann diese Makros auskommentieren und weiß dann somit, zu was sie dienen.
....
Bei mir gibt es zwei bis drei Gründe für Formellösungen.
  • Auf vielen Installationen sind Macros abgeschaltet, weil sie gerade bei Excel/Word ein Sicherheitsproblem sein können.
  • eine Formellösung ist meist portabel, funktioniert also unter LO und Excel.
  • Es gibt immer mal wieder Anwender, die mit Macros nicht umgehen können, Sie also nur "schlüsselfertig" von einer Schaltfläche anwenden. Denen hilft ein Macro im Forum wenig, ist aber natürlich nicht wirklich ein Argument gegen Macros, man kann ja dazulernen.
Meiner Ansicht nach interessiert das Thema Portabilität MS-Anwender erst wenn Sie merken, dass etwas auf anderen Systemen nicht funktioniert, weshalb sie natürlich gerne VBA-Macros, ActiveX und ähnliches nutzen.

Was die Dokumentation durch Kommentare im Code angeht gebe ich Dir recht, nutze aber selbst einfach zusätzliche Tabellen für Anleitung und Dokumentation, wenn die Konstruktion nicht offensichtlich ist.
Entsprechen könnte man auch eine ausgeblendete Kommentarspalte verwenden.

Mfg, Jörn

PS Dein Problem ist ja schon via Macro gelöst, daher müssen wir keine zweite Lösung bauen.
LO 6.0.7 (32Bit) Win8.1 Pro 32 Bit/ LO 6.3.2 Win10 64Bit / LO 6.0.7 Win7 Pro 64 Bit

Statistiker
Beiträge: 9
Registriert: Mi 7. Okt 2020, 16:47
Wohnort: Westsachsen

Re: Calc: Spalte in mehrere Zeilen transponieren

Beitrag von Statistiker » Sa 17. Okt 2020, 19:18

Hallo Jörn und Craig,
danke für Eure Meinung, TIpps und Vorschläge. Zeitgründe lassen nur diese kurze Nachricht zu.

@Wanderer;
ich brauche das Makro nicht nur für eine Statistik-Tabelle sondern für einige (Dutzende). Deshalb ist mir die Dialogbox-Option lieber, da man so die Parameter einfacher ändern kann, als immer direkt im Makro. Deshalb habe ich ...

@Craig;
... vorerst einmal das Makro auf drei Inputboxen umgestellt, so daß ich jetzt bequemer, die Abfragen nach Datenquelle, Wertspalte und Blockgröße beantworten kann. Wie erwähnt, aus Zeitgründen kann ich mich jetzt nur bedingt in die Problematik der Dialog-Programmierung einarbeiten.

Danke nochmals und ein angenehmes Rest-Wochenende.

Micha:el :!:

Antworten