Formeln sollen nur unter Bedingungen in einem Feld sein.

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

vierviervier
*****
Beiträge: 278
Registriert: Mo, 10.05.2010 11:17

Formeln sollen nur unter Bedingungen in einem Feld sein.

Beitrag von vierviervier »

Guten Tag,

Habe eine größe Adressdatei, von der jeweils ein kleinerer Teil zum Export in eine CSVDatei in einem eigenen Tabellenblatt unter Bedingungen angezeigt wird. Dies wird dann als CSV-Datei exportiert und diese dann bei StarMoney importiert.
Clag hat mir da eine super Lösung gegeben. Beitrag unter OOCalc: "Felder sollen verknüpft werden nur wenn Feld der BasisTabelle leer [gelöst]".

Jetzt ist dieses Tabellenblatt auf den ersten 100 zeilen mit SVERWEIS-Formeln belegt, die die passenden Datensätze "rüberholen". Vor dem Export als CSV müssen dann die nicht verwendeten Formeln gelöscht werden, da StarMoney sonst die CSV-datei mit dem Hinweis "ungültiges Dateiformat" nicht importiert. Dass die Formel bei nichtverwendung nicht angezeigt wird (WENN(FeldXY="";"";SVERWEIS...) genügt nicht. In der CSV-Datei wird trotzdem ein Meer von Semikolons angezeigt, das erst verschwindet, wenn die Formeln in der ods-Tabelle vorher gelöscht werden.

Meine Frage, fällt jemand eine Möglichkeit ein, dass man die nicht gebrauchten Formeln nicht extra löschen braucht.
Gibt es z.B. eine Formel (auf einem anderen Tabellenblatt), die bewirkt, dass eine Formel nur angezeigt wird, wenn Sie greift?

Ist zwar nur ne Kleinigkeit, aber vieleicht gibt es ja eine schöne saubere Lösung, vierviervier.
Windows 10
AOO 4.1.1 LO 6.0.7.3
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Formeln sollen nur unter Bedingungen in einem Feld sein.

Beitrag von clag »

Hallo vierviervier,
vierviervier hat geschrieben:Ist zwar nur ne Kleinigkeit, aber vieleicht gibt es ja eine schöne saubere Lösung,
Diese hatte ich dir in meinem letzten Beispiel schon aufgezeigt!
kopiere den desamten Datenbereich und füge unter verwendung von "Inhalte einfügen"
Zahlen, Werte, Datum in eine Exporttabelle eine diese kopierst du anschließend in ein neues Dokument.
(zeichne diese Aktion mit dem Makrorecorder auf und verknüpfe das Makro mit einen Button oder hotkey)

Dieses neue Dokument speicherst du als CSV.
Diesen Speichervorgang zeichnst du als Makro auf und ersetzt im Makro den DateiNamen durch eine Variable
(diese Variable generierst du dir irgendwie zB aus der Systemzeit oder liest sie aus einer Zelle oder .... )
und verknüpfe das Makro zB als Menüeintrag im Menü unter Datei als "speichern als CSV"

Damit kannst du mit einem Mausklick die Exporttabelle erstellen und mit einem weiteren als CSV
im gewünschten (aufgezeichneten) Format speichern.
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Formeln sollen nur unter Bedingungen in einem Feld sein.

Beitrag von Stephan »

Ist zwar nur ne Kleinigkeit, aber vieleicht gibt es ja eine schöne saubere Lösung, vierviervier.
eine 'schöne saubere Lösung' ginge wohl am Einfachsten z.B. mit einem Standardfilter, z.B. (bezogen auf die Datei im anderen Thread):
standardfilter.gif
standardfilter.gif (42.56 KiB) 5556 mal betrachtet



Warum Du erst eine Formellösung wählst um dann in einem zweiten Schritt die Nachteile dieser Lösung (überflüssige Formeln) gesondert rückgängig zu machen erschließt sich mir jedenfalls nicht.


Gruß
Stephan
hylli
*******
Beiträge: 1672
Registriert: Mi, 22.02.2006 19:37

Re: Formeln sollen nur unter Bedingungen in einem Feld sein.

Beitrag von hylli »

Ich kann das nachvollziehen, weil ich sowas in der Form auch schon benötigt habe.

Beispiel: "Einfache Vereinsverwaltung" auf Basis Calc
Und zwar ging es darum, für den Import in das Onlinebanking meiner Bank eine CSV-Datei zu erstellen. Meine Bank hat dabei feste Vorgaben und Feldreihenfolgen..., die es zu erfüllen galt/gilt.

Jetzt habe ich zum Beispiel meine Daten für den Beitragseinzug auf einer eigenen/einfachen Tabelle erfasst, die nur die notwendigsten Felder enthält. Für Vorname und Nachname habe ich separate Spalten erstellt, die Bank verlangt jedoch beim Import nur ein Namensfeld.

Für die "Vereinsdaten" wie Bankverbindung, IBAN / BIC / Gläubiger-ID etc, habe ich ebenfalls eine separate Tabelle verwendet, um eine gewisse Übersichtlichkeit zu bewahren.

Per Formellösung habe ich daher auch eine weitere Tabelle erstellt, die mir alle relevanten Daten zu einer Tabelle zusammenfasst, und zwar in der richtigen Reihenfolge und mit den richtigen Überschriften.

Diese galt es dann auch als CSV zu exportieren, ich meine das mit Hilfe des Forums (Suchen&Finden!) hier per Makro gelöst zu haben.

Da ich es mittlerweile/vorübergehend anders gelöst habe (JVerein + Hibiscus), ist die Datei etwas in Vergessenheit geraten.

Muss mal schauen, dass ich die wieder finde! ;)

--------------------

Und ja, eine Datenbanklösung wäre wohl hier der einfachere und bessere Weg, aber soweit war ich damals noch nicht!

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
vierviervier
*****
Beiträge: 278
Registriert: Mo, 10.05.2010 11:17

Re: Formeln sollen nur unter Bedingungen in einem Feld sein.

Beitrag von vierviervier »

@hylli: ganz schönes Zinnober, bis Die Bank die Daten nimmt, oder? Wars bei mir jedenfalls.

@Stephan: Über einen einfachen Filter funktioniert meines Erachtens nicht, da der Import in StarMoney eine ziemlich pingeligge Angelegenheit ist: meine Hauptliste ist nach ganz eigenen Bedürfnissen aufgebaut, dem einzelnen Kunden sind ca. 20 Spalten zugerordnet, mit verschiedensten Preisberechnungen, Verknüfungen mit sich aktualisierenden Preistabellen..., die Reihenfolge der Spalten folgt auch ganz eigenen Kriterien.

Für den Export sind wiederum sehr strenge Regeln einzuhalten, sonst nimmt StarMoney die Daten nicht ("Dateiformat ungültig", den Satz habe ich die letzten Wochen xmal gelesen), die Reihenfolge der zu importierenden Daten für eine Sammelüberweisung muss genau mit dem Filter in SM übereinstimmen, es dürfen keine Lücken mit zu ignorierenden Spalten dazwischen sein; Währungsformat ist nicht erlaubt, es dürfen keine Formeln importiert werden in den nicht genutzten Zeilen ... Es ist unmöglich meine Hauptliste in eine Form zu bringen, die importierbar wäre (darüberhinaus halte ich es für unwahrscheinlich, dass man das Speichern unter CSV so gestalten kann, dass nur die gefilterten Daten ins CSV-Format übertragen werden, aber das hab ich nicht ausprobiert). Deswegen war es dann der Clou von Clag nur die relevanten Daten mit eines Formel-Dreischritts in einem eigenen Tabellenblatt anzuzeigen, das in Reihenfolge der Spalten, Format ... ganz auf den Import ausgelegt ist. Und dabei ist eben das (überschaubare) Restproblem entstanden, dass die nicht benötigten Formeln vor Export gelöscht werden müssen.

@Clac: sorry, stimmt. Waren nur so viele Punkte in deinem ersten Hinweis, wo ich dachte, dass ich da Unterstützung brauche, dass ich das wohl verdrängt hab. Hab aber mittlerweile Vorarbeit gemacht, damit die Fragen bißchen konkreter werden.
Die Formular-Steuerelemente waren mir neu, fand diese Buttons in irgendwelchen BeispielDateien schon immer cool, wußte bisher nur nicht, wie machen. Also so weit bin ich jetzt. Nächster Schritt ist dann Makro aufnehmen und zuweisen.

Da wirds jetzt schwieriger: wie für ein Macro (also ohne Maus) die richtigen Zeilen markieren? Mit STRG HOME und STRG A kann man alle markieren und ist in der ersten Zeile, die nicht benutzten Formeln spielen keine Rolle, weil ja über "Inhalte einfügen" die reinen Formel-Zeilen wegfallen, aber wie kriege ich die erste Zeile mit den Zeilenbeschriftungen unmarkiert? Nach STRG C, wie wechsle ich per Tastatur zum gewünschten 2. Exporttabellenblatt? Wie habe ich die Sicherheit, dass beim Inhalte einfügen per makro die richtigen Sparten (zahlen, werte, Datum) angewählt sind, das ändert sich doch abhängig davon, was man beim letzten Inhalte einfügen ausgewählt hat?
Soweit erst mal, Schritt 2 mit generieren von Variablen aus der Systemzeit... ist nahe an japanisch, da würd ich dann gern noch mal nachfragen, wenn die saubere zweite Exporttabelle steht. Habe den Eindruck, dass ich wohl per Makro meine andere noch offene Frage (wie man Semikolon als Grundeinstellung für Export einstellt), überhaupt den ganzen "speichern unter" vorgang noch mal vereinfachen kann.

Schöne Grüße, vierviervier.
Windows 10
AOO 4.1.1 LO 6.0.7.3
Benutzeravatar
balu
********
Beiträge: 3810
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Formeln sollen nur unter Bedingungen in einem Feld sein.

Beitrag von balu »

Hallo vier³ :wink:,

auch wenn das mehr zu dem anderen Thread gehört, so will ich dennoch kurz meine Überlegung kund tun.
wie man Semikolon als Grundeinstellung für Export einstellt
Makro mit diesen Einstellungen aufzeichnen, dieses Makro zu einer bestehenden Symbolleiste hinzufügen, anderes Symbol für dies Makro zuweisen, Fäddisch! Du kannst dir entweder ein schon bestehendes Symbol aussuchen welches schon "On-Board" ist, oder aber mit einem Zeichenprogramm ein eigenes erstellen.

Da dies nur eine Überlegung ist, fällt die genauere Vorgehensweise jetzt ausnahmsweise mal aus.
Klar ist das Dumm das man dann beim Export immer das richtige Symbol drücken muss, aber ich weiß auch nicht ob und wenn ja wo man das in den Grundeinstellungen ändern kann, und von daher ist das ein möglicher Kompromiss.


Was dein eigentliches Problem anbelangt;
darüberhinaus halte ich es für unwahrscheinlich, dass man das Speichern unter CSV so gestalten kann, dass nur die gefilterten Daten ins CSV-Format übertragen werden, aber das hab ich nicht ausprobiert
Das geht schon. Ich hatte mir vor ein paar Jahren etwas zusammengestrickt, was wie folgt abläuft, und zwar alles per Makro.
  • die Daten von 2 festgelegten Datenreihen (Spalten) in ein seperates Blatt kopieren, ohne Formeln sondern nur der angezeigte Inhalt wird kopiert
  • nun die Daten filtern, ohne Leerzellen, und die Ausgabe erfolgt in ein weiteres seperates Tabellenblatt
  • eine neue Leere Datei versteckt im Hintergrund laden
  • die gefilterten Daten aus dem zweiten seperaten Blatt in die neue Datei kopieren
  • die versteckt geladene neue Datei unter einem Namen als .csv speichern
  • die eben gespeicherte .csv schließen.
Ist mir schon klar, das dies sich noch etwas verfeinern lässt, aber damals war es für mich die simpelste und schnellste Lösung, da ich aus meiner damaligen Makro-Grabbelkiste (bis auf das speichern als .csv) mir das alles so zusammen geklickt hatte. Zum Beispiel könnte man auf ein zweites seperates Tabellenblatt verzichten, ist aber auch ein Stück Geschmackssache.

Ich hänge die Datei einfach mal hier an, damit Du etwas zum Studieren hast. Sie ist eine leicht abgespeckte Version, aber mit Daten befüllt.

Im Blatt "Zusammenstellung" ist ganz oben ein grüner Button "Warenkorb erstellen". Wenn Du diesen Button drückst, dann werden von den 4 sichtbaren und befüllten Spalten nur 2 (Spalte A & D) kopiert, gefiltert, und in die versteckte Datei kopiert.

Ferner sind in dem genannten Tabellenblatt folgende zwei Punkte wiederzufinden.

1.)
Es sind 9 Zellen farblich hervorgehoben (Roter Hintergrund), da stehen Formeln drin. Die Formeln sind belanglos; mal geben sie einen Text aus, mal wird was berechnet, und ein andermal wird auch nichts "" ausgegeben. Und nur die Zellen mit Inhalt, egal ob Text oder Wert (Zahlen) finden sich hinterher in der CSV-Datei.

2.)
Von den insgesamt 176 Zeilen sind hinterher nur 104 Zeilen in der CSV. Denn es werden nur die Zellen gefiltert wo in A und B im Blatt "Temporaer" etwas drin steht. Und Zeilen wo gar nichts drin steht, werden nicht berücksichtigt.


Du kannst den Warenkorb (CSV-Datei) so oft erstellen wie Du willst, da passiert nix schlimmes, er wird nicht überschrieben. Der Grund ist ganz einfach: Es wird immer ein *Zeitstempel* an den Dateinamen rangehängt, natürlich per Makro.


Um aber das gersamte Makro zu verstehen, musst Du dich wohl oder übel mit dieser Materie auseinander setzen. Denn das geht schon ein ganzes Stück über aufgezeichneten Code hinaus. Für Fortgeschrittene und Profis ist der Code nicht schwer zu lesen und zu verstehen. Jedoch Du hast da noch das ein oder andere zu lernen, was aber mit der Zeit noch kommen wird :wink:.


So, das soll für heute reichen.


Gruß
balu
Dateianhänge
WARENKORB_als_CSV_ausgeben_0.0.ods
(22.23 KiB) 180-mal heruntergeladen
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Formeln sollen nur unter Bedingungen in einem Feld sein.

Beitrag von clag »

Hallo vierviervier,

also Schalflächen kanst du jetzt einfügen prima!

Dann zeichne jetzt mal ein Makro auf welches du dann später mit der Schältfläche verknüpfst.
Ich setzte jetzt voraus, das die Tabelle mit den Formeln zum extrahieren nur die Formeln und Spaltenköpfen enthält und "Bank" benannt ist,
zweitens Eine Tabelle existiert die "Export" benannt ist und ist leer, Spaltenbreite ist aber passend eingestelt.

Start Makroaufzeichnung
  • Alt > B > T > A --> Bank
    Ctrl + Pos1
    Ctrl + Shift + Ende
    Ctrl + Einfügen
    Ctrl + Pos1
    Alt > B > T > A
    --> Export
    Ctrl + Pos1
    Ctrl + Shift + Ende
    Backspace
    Ctrl + Pos1
    Ctrl + Shift + V
    --> Zahlen, Text, Formate
    Ctrl + Pos1
    Alt > B > T > V --> in [neues Dokument]; [X] kopieren
    Alt > B > T > A --> Export
Ende Makroaufzeichnung
speichern unter Standard/Modul... "ErzeugeExportDatei
mehr ist nicht nötig um den Inhalt aus Bank in die Export Tabelle zu kopieren und eine neue Datei erstellen.

diese neue Datei aktivierst du und zeichnest ein zweites Makro auf
Start Makroaufzeichnung
  • Alt > D > U --> beliebiger Name + Dateitype [TEXT.CSV] + [X] Filtereinstellungen bearbeiten
    Alt + S --> Speichern
    ALT +A --> aktuelle Format beibehalten
    Alt+ F --> ;
    Enter -- > ok
    Alt > D > C --> Dateischließen
Ende Makroaufzeichnung
speichern unter Standard/Modul... als "SpeichernAlsCSV"

und weise das erste Makro in der Tabelle Bank einem Button zu
und das zweite Makro einem Button in der Tabelle Export zuweisen.

setze das jetzt mal um
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
vierviervier
*****
Beiträge: 278
Registriert: Mo, 10.05.2010 11:17

Re: Formeln sollen nur unter Bedingungen in einem Feld sein.

Beitrag von vierviervier »

@ Balu:
danke erst mal für deinen Lösungsansatz. hatte Probleme dein makro laufen zu lassen (hat mich unter Fehlermeldung gleich ins skript verwiesen). Da hab ich erst mal stopp gemacht, weil ich mit Clag schon ziemlich nah dran bin und da noch einigermaßen durchsteige was passiert (und macht halt immer am meisten spaß, wenn man noch weiß was man tut). Aber trotzdem danke.

@ Clag:

Bin die Schritte jetzt paar mal durchgegangen, hab erst mal wieder kleinere Fragen, bevor ich den ersten Makroblock aufnehme:

vorweg(habe englische Tastatur): Pos1 = HOME; Ende=END; Einfügen=INS (damits nicht an sowas stockt)

Alt > B > T > A: schon mal gut zu wissen so Kontrolle über die Tabellenblätter bei Makros zu bekommen.
Ctrl + Shift + End: markiert wohl den gesammten Bereich mit Inhalt, auch gut zu wissen.
Ctrl + INS: kopiert wohl?
Die erste 3 Schritte auf dem Export-Tabellenblatt (bis Backspace= sind wohl für alle Fälle zum säubern?
Ctrl + Shift + V: ok, Haken setze ich mit Pfeiltasten und Backspace; habe auch ein Datumsfeld: also Text, Zahlen, Datum, Formate?
Die Haken scheinen entsprechend dem letzten "Inhalte einfügen" gesetzt. Wird zwar nicht häufig vorkommen, kann aber sein, das "Inhalte einfügen" schon in anderem Zusammenhang von mir in der Hauptliste verwendet wurde, dann würde das Makro nicht mehr passen, kann man das makro irgendwie "absolut" setzen?
Zuletzt wird dann noch mal der kopierte Text in eine eigene Datei kopiert. Ist das wegen der Möglichkeit neuen Namensgebung für das nächste makro notwendig, oder warum kann der Export in CSV nicht von dem ja schon sauberen (also ohne Formeln) Tabellenblatt Export erfolgen?
Was man alles an Fragen aus ziemlich klaren Anweisungen pressen kann. Aber ich denk mir halt, bevor irgendein kleiner Fehler drinsteckt, den man dann im Nachhinein mühsam suchen muss, lieber gleich alles abchecken. Hoffe du hälst noch durch mit mir.
vierviervier.
Windows 10
AOO 4.1.1 LO 6.0.7.3
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Formeln sollen nur unter Bedingungen in einem Feld sein.

Beitrag von clag »

Hallo
vierviervier hat geschrieben:Ctrl + Shift + V: ok, Haken setze ich mit Pfeiltasten und Backspace; habe auch ein Datumsfeld: also Text, Zahlen, Datum, Formate?
ja natürlich mit Datum macht sich die Tabelle besser
vierviervier hat geschrieben:dann würde das Makro nicht mehr passen, kann man das makro irgendwie "absolut" setzen?
das wird absolut weil das Makro ja den Zustand aufzeichnet den du jetzt einstellst und auch immer wieder so einsetzt bei Aufruf.
vierviervier hat geschrieben:Zuletzt wird dann noch mal der kopierte Text in eine eigene Datei kopiert.
nein da wird nichts kopiert es wird nur die Tabelle aktiviert, damit man am Ende wieder da ist wo man angefangen hat.
vierviervier hat geschrieben:warum kann der Export in CSV nicht von dem ja schon sauberen (also ohne Formeln) Tabellenblatt Export erfolgen?
Weil eine Datei im CSV Format nur eine Tabelle Speichern kann. Speicherst du aus einem Calc Dokument mit mehreren verwendeten Tabellenblättern, eins davon als CSV sind die andern TAbellen schlicht weg wenn du die Datei schließt und nicht erneut als X.ods speicherst.

fang einfach mal mit einer Makroaufzeichnung an, kann ja nichts passieren,
schlimmstenfalls must du es erneut aufzeichen, und Übung macht den Meister ;)

und logischerweise wird man solche ersten Makros/Versuche nicht an/mit den original Dateien testen !
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Benutzeravatar
balu
********
Beiträge: 3810
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Formeln sollen nur unter Bedingungen in einem Feld sein.

Beitrag von balu »

Hallo vier³,
hatte Probleme dein makro laufen zu lassen (hat mich unter Fehlermeldung gleich ins skript verwiesen). Da hab ich erst mal stopp gemacht, ...
Es wäre für mich natürlich gut zu wissen was für eine Fehlermeldung genau, und unter welchem Office.
Unter AOO 4.1.1 und LO 4.2.1.1 gibt es hier bei mir keine Fehlermeldung. Bei LO muss ich lediglich das Ausführen von Makros per Klick auf dem dementsprechenden Button zulassen (ist dort die Grundeinstellung bei mir).

Das einzige was mir in den beiden Officen aufgefallen ist, das die CSV-Datei etwas anders aussieht als unter OOo 3.2.1 (unter der habe ich das erstellt). Aber das ist ein ganz anderes Thema was nix mit ner Fehlermeldung zu tun hat, und ich demnächst mal überarbeiten werde.

... weil ich mit Clag schon ziemlich nah dran bin und da noch einigermaßen durchsteige was passiert (und macht halt immer am meisten spaß, wenn man noch weiß was man tut).
Du steigst wohl noch höchstwahrscheinlich durch den Aufzeichnungsmodus durch, aber den Makrocode zu lesen und zu verstehen das glaube ich dir nicht so wirklich.
Klar ist es schön wenn man weiss was man tut, aber mit dem Makrorecorder zu arbeiten birgt so einige Stolperfallen. Zumal der Recorder nicht alles aufzeichnet, und folglich wird es auf grund dessen irgendwann einmal zu Problemen kommen.


Ich habe es mir mal erlaubt die Anweisungen von clag für die Aktion "ErzeugeExportDatei" nachzuvollziehen, um mal zu sehen was da für ein Makrocode dabei rauskommt. Ergebnis: ca. 108 Zeilen Code! Und dabei kann man noch nicht mal im nachhinein rauslesen welche Tabelle vom Code angesprochen wird.

Das gleiche Verfahren, also einen Bereich von ein Tabellenblatt auf das andere zu kopieren um es anschließend in eine andere Datei zu kopieren, bekomm ich kürzer hin. Mit der Einschränkung das es sich um einen festen Datenbereich handelt. Denn dann brauche ich für das ganze Procedere nur noch ca. 38 Zeilen Code. Und das sieht dan so aus.

Code: Alles auswählen

	Dim oDok as Object, oExterneCSV as Object
	Dim oDatenSheet as Object, oTempSheet as Object, WarenkorbCSV as Object
	Dim aExtDatArray(), aDatArray1(), aDatArray1()
	Dim myFPq(0) as New com.sun.star.beans.PropertyValue
'
'##############################################################################################################
'
Sub UebertragenUndFiltern
	oDok = ThisComponent
	oDatenSheet = oDok.getSheets().getByName("Zusammenstellung")	
	oTempSheet = oDok.getSheets().getByName("Temporaer")
'--------------------------------------------------------------------------------	
	oTempSheet.getCellRangeByName("A1:B182").clearContents(255) REM Datenbereich löschen.
'--------------------------------------------------------------------------------
	aDatArray1 = oDatenSheet.getCellRangeByName("A4:D182").getDataArray REM Datenbereich einlesen (kopieren)
	oTempSheet.getCellRangeByName("A4:D182").setDataArray(aDatArray1) REM Datenbereich einfügen
'--------------------------------------------------------------------------------
' Neue und leere Datei versteckt erstellen, die dann als CSV gespeichert wird.
'
	myFPq(0).name = "Hidden"
	myFPq(0).Value =  False 
	oExterneCSV = starDesktop.loadComponentfromURL("private:factory/scalc", "_blank", 0, myFPq())
	WarenkorbCSV = oExterneCSV.sheets(0)	
'--------------------------------------------------------------------------------
' Die Daten vom Blatt *Temporaer* in die neue, leere Datei kopieren.
'	
	aExtDatArray = oTempSheet.getCellRangeByName("A1:D182").getDataArray
	WarenkorbCSV.getCellRangeByName("A1:D182").setDataArray(aExtDatArray)
'--------------------------------------------------------------------------------
			    PRINT "F Ä D D I S C H ! ! ! "
End Sub

Okay, ich könnte jetzt auch noch daher gehen und nur den benutzten Datenbereich kopieren, anstatt einen festen Datenbereich zu kopieren. Aber bis auf ein paar sehr kleine Adressänderungen (und Blatt Umbennung), ist dieser Code aus meiner Beispieldatei.

Natürlich ist ein Aufgezeichneter Code manchmal nicht so verkehrt, aber besser ist es wenn man sich mit der Programmierung etwas intensiver auseinander setzt. Man hat dadurch den Vorteil den Code nicht nur kürzer zu fassen, sondern man kann ihn auch übersichtlicher gestallten. Und ferner hat er nicht die Einschränkungen wie der Recorder der eben nicht alles aufzeichnen kann.


Bitte vergess nicht mir deine beobachtete Fehlermeldung von meiner Datei genau mitzuteilen. Okay :wink:?



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
vierviervier
*****
Beiträge: 278
Registriert: Mo, 10.05.2010 11:17

Re: Formeln sollen nur unter Bedingungen in einem Feld sein.

Beitrag von vierviervier »

@Balu:
Die Fehlermeldung nach drücken des Warenkorb-Buttons lautet:

BASIC-Laufzeitfehler.
Es ist eine Ausnahme aufgetreten
Type: com.sun.star.uno.RuntimeException
Message: .

Natürlich ist der Code eine insgesamt sauberere und stabilere Angelegenheit, aber damit in der Lage zu sein zu arbeiten (ihn genau auf meine Umgebung anzupassen, eventuell später notwendige Änderungen vorzunehmen...) übersteigt so dermaßen meine momentanen Fähigkeiten, dass sich das anzueignen momentan meine zeitlichen Möglichkeiten überreizt (viele Kinderlein).
Mit der Makroaufzeichnung habe ich bei allen Nachteilen die Möglichkeit, das ganze für mich einigermaßen nachvollziehbar und stabil in meine Liste zu integrieren.

Was das kopieren der Zeilen angeht ist es tatsächlich notwendig flexibel zu sein, weil die Anzahl der zu übertragenden Datensätze zwischen ca. 20 und 100 schwankt (und eben die nicht benötigten Formeln, die bis 100 angelegt sind, verschwinden müssen um den Import bei StarMoney zu ermöglichen.

Und in paar Jahren lern ich dann makro-code schreiben...

@Clag:

arbeite mit nummerierten Versionen statt Orginal.

Hab jetzt mal aufgezeichnet und mit meinem schicken Export-Button veknüpft.
Beim drücken öffnet sich dann eine Unbekannt1Datei mit den korrekten Datensätzen.

Aber bevors weitergeht: Soweit ich den ganzen Vorgang überblicke könnte es doch mit nur einem Button gehen: Die Hauptliste abzuspeichern (und von da an für die nächsten Kundeneinträge zu öffnen) macht nämlich am meisten Sinn, wenn die neuen Kunden angelegt sind (mit Feld Datum Ausgang leer), bevor IBAN / KTO eingetregen werden; per SVERWEIS landen die aktuellen Datensätze auf dem Tabellenblatt "Bank"; jetzt werden hier IBANs / KTO mit IBANRechner eingetragen. Diese Angaben sollen ja nicht dauerhaft in den Feldern bleiben (zumal sich die dazugehörigen Angaben ja ensprechend SVERWEIS ändern) sondern sind nur für den einmaligen Export bestimmt. Man kann also den CSV-Export vom TAbellenblatt "Export" aus machen. Die gültige Version der Hauptliste ohne IBAN / KTO ist ja schon gesichert.
Dann gienge es doch mit einem Makro, das die Datensätze ohne Formeln ins Tabellenblatt "Export" einfügt und von dort gleich weiter als CSV-Datei exportiert.
Falls das so ist: kannst du mir dazu noch mal Anleitung geben? Danke schon mal.
vierviervier
Windows 10
AOO 4.1.1 LO 6.0.7.3
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Formeln sollen nur unter Bedingungen in einem Feld sein.

Beitrag von clag »

Hallo
vierviervier hat geschrieben:Beim drücken öffnet sich dann eine Unbekannt1Datei mit den korrekten Datensätzen.
sehr schön !
vierviervier hat geschrieben:Man kann also den CSV-Export vom TAbellenblatt "Export" aus machen.
nein, du wolltest doch die vielen leeren Zeilen mit den Semikolons loswerden, richtig?

Jetzt zeichne noch das zweite Makro auf, und dann werden die zusammengestrickt.
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
vierviervier
*****
Beiträge: 278
Registriert: Mo, 10.05.2010 11:17

Re: Formeln sollen nur unter Bedingungen in einem Feld sein.

Beitrag von vierviervier »

Hallo clag, sorry, dass ich nachhake, aber das haben wir doch schon geschafft, weil durch Inhalte einfügen ohne Formeln das Tabellenblatt "Export" doch sauber ist (die nicht mit Daten gefüllten Felder enthalten auch keine Formeln), das ist doch der Grund für die Semikolons.

vierviervier
Windows 10
AOO 4.1.1 LO 6.0.7.3
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Formeln sollen nur unter Bedingungen in einem Feld sein.

Beitrag von clag »

und diese saubere Blatt wird in die neue Eportdatei kopiert, welche als CSV gespeichert wird,
danach wird die geschlossen und ist als *.ods weg und liegt als xxxxx.csv in dem von dir angegebenen Verzeichnis.
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Benutzeravatar
balu
********
Beiträge: 3810
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Formeln sollen nur unter Bedingungen in einem Feld sein.

Beitrag von balu »

Hallo vier³,

Okay, die Fehlermeldung allein sagt nicht viel, besser wäre noch ein Screenshot gewesen wo man die markierte Codezeile sehen könnte. Könntest Du Bitte noch einen Screenshot machen?
Und ferner, wo hast Du die Datei gespeichert; Unter 'Eigene Dateien'? Wie wärs wenn Du die Datei mal zu testzwecken in ein seperates Verzeichnis speicherst, welches weder Leerzeichen noch Umlaute besitzt?

Letzte Frage dazu.
Tritt der Fehler in AOO 4.1.1 und LO 4.2.6.3 bei dir auf?



Weißt Du was?
Wie wäre es denn, wenn Du mal deine Datei mit ein paar Anonymisierten Daten hier zur Verfügung stellst, und auch wie die CSV auszusehen haben soll.



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Antworten