Formeln sollen nur unter Bedingungen in einem Feld sein.

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

TrueColor
******
Beiträge: 542
Registriert: Do, 11.03.2010 11:23

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

Beitrag von TrueColor »

vierviervier hat geschrieben:Wußte nicht wie sonst hier reinstellen und hab jetzt einfach aus dem Makroeditor raus kopiert:
Mach mal bitte

Code: Alles auswählen

-Tags drumrum, dann lässt sich das besser lesen und bläht das Posting nicht so kolossal auf!
System:
Arbeit: Windows 7 (64 bit) + Apache OpenOffice 4.1.2 (AOO412m3), LibreOffice 4.1.4.2
Home: Windows 10 (64 bit) + Apache OpenOffice 4.1.2 (AOO412m3)
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³,

also die dementsprechende Sub zu finden, die dem Button in deiner Beispieldatei zugeordnet ist, war ja schon mal ne lustige sucherei bei der Länge. Und einen Funktionsfehler konnte ich auch nicht mehr finden, bis jetzt. Habe die dementsprechende Sub im Einzel-, und Prozedurschritt abgearbeitet, und auch im automatischen Ablauf. Kein Fehler.

Kann das eigentlich bei dir mal vorkommen, dass in dem Tabellenblatt "Export_1" auch zwischen den Datenzeilen leere Datenzeilen vorhanden sind? Wenn nicht, also die Datenzeilen sind durchgehend, dann kann mein Makro kürzer ausfallen da ein zwischenfiltern schlicht entfällt.

Mein Makro macht nämlich jetzt folgendes.
Den benutzten Datenbereich im Tabellenblatt "Export_1" von A1 bis Q??? auf das Tabellenblatt "Export_2" kopieren. Wobei der benutzte Datenbereich im Tabellenblatt "Export_1" durch eine kleine Sub ausgelesen wird. Dadurch spielt es absolut keine Rolle ob der Datenbereich bis Q3 oder bis Q9999 geht ist.

Nach dem die Daten rüber kopiert wurden, wird wieder der benutzte Datenbereich im Tabellenblatt "Export_2" von der kleinen Sub ausgelesen. Da durch das kopieren die leeren Formeln nicht mit kopiert wurden, wird jetzt ein kleinerer benutzter Datenbereich ermittelt. In deiner Beispieldatei geht dieser Bereich ja nur von A1 bis Q3.

Nun wird eine neue und leere Datei versteckt im Hintergrund erstellt. Und anschließend die Daten vom Blatt "Export_1" in das erste Blatt der im Hintergrund lauernden Datei (externe Datei) rüberkopiert.
Jetzt wird die externe Datei als .csv gespeichert und geschlossen.

Den Speicherpfad habe ich vom Dateinamen getrennt, so das Du Den Pfad und den Namen nachträglich ändern kannst. Und außerdem bekommt der Dateiname noch einen Zusatz angehängt der aus Datum und Uhrzeit besteht.

Hier mal mein Code.

Code: Alles auswählen

REM Variablen deklaration.
	Dim oDok as Object
	Dim oExport1 as Object, oExport2 as Object, oExternExportCSV as Object, oExterneCSV as Object
	Dim aExtDatArray(), aDatArray1()
	Dim sErmittlungsBlatt as String, sDatenBereich as String
	Dim myFPq(0) as New com.sun.star.beans.PropertyValue
	Dim myProps(1) as New com.sun.star.beans.PropertyValue
'
'##############################################################################################################
'
Sub ErzeugeExportDaten
REM Tabellenblatt Variablennamen definition.
	oDok = ThisComponent
	oExport1 = oDok.getSheets().getByName("Export_1")	
	oExport2 = oDok.getSheets().getByName("Export_2")
'--------------------------------------------------------------------------------	
	oExport2.clearContents(255) REM Alles in diesem Blatt löschen.
'--------------------------------------------------------------------------------
		sErmittlungsBlatt = oExport1.name
		Benutzter_Datenbereich REM Aufruf der Sub.
		
			aDatArray1 = oExport1.getCellRangeByName( sDatenBereich ).getDataArray REM Datenbereich einlesen (kopieren).
			oExport2.getCellRangeByName( sDatenBereich ).setDataArray(aDatArray1) REM Datenbereich einfügen.
'--------------------------------------------------------------------------------
	For osb = 0 to 16
		oExport2.Columns(osb).OptimalWidth = True REM Optimale Spaltenbreite. Ist nicht wichtig, aber schön zu sehen. ;-)
	next osb
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	
REM Neue und leere Datei versteckt erstellen, die dann als CSV gespeichert wird.
'
	myFPq(0).name = "Hidden"
	myFPq(0).Value =  True ' REM wenn man diese versteckte Datei sehen will, einfach True durch False ersetzen.
	oExterneCSV = starDesktop.loadComponentfromURL("private:factory/scalc", "_blank", 0, myFPq())
	oExternExportCSV = oExterneCSV.sheets(0)
	
'--------------------------------------------------------------------------------
' Die Daten vom Blatt *Export_CSV* in die neue, leere und versteckte Datei kopieren.
'	
		sErmittlungsBlatt = oExport2.name
		Benutzter_Datenbereich REM Aufruf der Sub.

			aExtDatArray = oExport2.getCellRangeByName( sDatenBereich ).getDataArray REM Datenbereich einlesen (kopieren).
			oExternExportCSV.getCellRangeByName( sDatenBereich ).setDataArray(aExtDatArray) REM Datenbereich einfügen.
'--------------------------------------------------------------------------------
		Externe_CSV_speichern REM Aufruf der Sub.
'--------------------------------------------------------------------------------
			    PRINT "F Ä D D I S C H ! ! ! "
End Sub
'
'##############################################################################################################
'
Sub Externe_CSV_speichern    
	sPfad = "file:///T:/DOW_Arbeit/Aktuelles/Matthias/Export_Makro/" REM Den Speicherpfad vorgeben
	sCSVname =  "EXPORTAKTUELL_" REM Das ist der Vorname der CSV-Datei. Der Nachname wird bei sCSVzusatz erstellt.
'--------------------------------------------------------------------------------
		myProps(0).Name = "FilterName"
		myProps(0).Value ="Text - txt - csv (StarCalc)"
		myProps(1).Name="FilterOptions"
		myProps(1).Value = "59,34,ANSI,1,,0,false,true,true,false"
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	
REM Wenn die Minuten kleiner 10 sind, wird noch eine 0 (Null) vorangestellt.

		if Minute(Now) <10 then
			sMinu = 0 & Minute(Now)
		else 
			sMinu = Minute(Now)
		end if
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	
REM Der sCSVzusatz besteht aus dem Datum, der Zeit und des Dateityps.
REM Datum: Tag, Monat und Jahr
Rem Zeit: Stunden, Minuten und Sekunden
Rem Dateityp: .csv

		sCSVzusatz = Day( Now ) & "_" & Month(Now) & "_" & Year( Now ) & " " & Hour( Now ) & "-" & sMinu & "-" & Second( Now ) & ".csv"

			sSpeicherString = sPfad & sCSVname & sCSVzusatz REM Nun wird der Vor- und Nachname der CSV zusammen geschrieben.
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~		
' CSV-Datei speichern und schließen.
'
			oExterneCSV.storeAsURL(sSpeicherString, myProps()) REM Die CSV wird gespeichert
			oExterneCSV.close(True) REM Die CSV wird geschlossen.
End Sub
'
'##############################################################################################################
'
Sub Benutzter_Datenbereich
Rem Hier wird der benutzte Datenbereich eines Blattes ermittelt, und in der Stringvariable sDatenBereich zurückgegeben.
	oSheet = ThisComponent.getSheets().getByName( sErmittlungsBlatt )
	oCellCursor = oSheet.createCursor()
	oCellCursor.GotoEndOfUsedArea(True)   
	sDatenBereich = REPLACE(oCellCursor.AbsoluteName, "$" & oSheet.Name & ".", "")
End Sub
Kopiere den Code und führe ihn in deiner hier angehängten Beispieldatei durch aufruf der Sub ErzeugeExportDaten auf.

Das ist alles an Code was Du brauchst um die Daten von einem Blatt auf das andere zu Kopieren und anschlißend eine CSV-Datei zu erstellen.
Mit diesem Code spielt es auch absolut keine Rolle an welcher Stelle die Tabellenblätter Export_1 und Export_2 stehen. Du kannst x-beliebig viele Blätter davor und dahinter einfügen, so lange Du diese beiden Blätter nicht umbenennst, kann nix schief gehen.

Ach ja, immer wieder empfehlenswert zum studieren, sind die Seiten vom Dannenhöfer.


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 »

Hallo Stephan, vielen Dank für die Links, das ist genau das was ich gesucht habe. Jetzt bräuchte ich nur noch die Zeit das einzusteigen. Mal sehen, ab und zu als Pause von der normalen Arbeit...
Was den Filter betrifft: ich weiß nicht ob und inwiefern wir aneinander vorbeireden. Falls du meinst den Filter direkt auf meine Hauptliste anzuwenden, dann funktioniert das eben nicht, weil die allein schon von der Anordnung der Spalten nicht geeignet ist um die Daten in StarMoney zu importieren (und zudem eine Vielzahl von Formatierungen enthält, bei denen StarMoney streikt. In der von mir eingestellten Beispiel-Tabelle kannst du die immensen Unterschiede von Tabellenblatt Export1 (entpricht den Anforderungen von SM, eben bis auf die Formeln) und dem Tabellenblatt Adressen sehen, wobei das Blatt schon für das Beispiel stark vereinfacht ist.
Falls das jetzt trotzdem mit Filter am allereinfachsten ist: gerne, wäre ja schön.

Schöne Grüße, vierviervier.
Windows 10
AOO 4.1.1 LO 6.0.7.3
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 an alle,

war im Urlaub und dachte hier ist nix weiter passier, weil ich wohl die Benachrichtigung übersehen hatte. Dachte schon Du läßt mich Ziel vor Augen verhungern Balu. Aber mitnichten. Sieht ganz nach endgültiger Lösung aus! Vielen Dank schon mal! Umsetzung wird noch paar wie-noch-mals brauchen, fürchte ich.

Kurz zu truecolor (da gehts schon los):

Code-Tags drumrummachen: hatte noch keine Zeit mich einzulesen; wenn Du mir ne Kurzanleitung geben kannst, mach ich das ab jetzt.

zu balu:
- sub ist Unterprogramm?
- zur Frage, ob leere Datenzeilen vorhanden sein können: nein, Clag hat das sehr sauber gelöst, so dass die Datensätze schön zusammenschnurren (ist mal einen Blick wert, hat schon was ästhetisches).
- bis zum kopieren in Export2 konnte ich es zumindest überblicksmäßig nachvollziehen, aber warum wird dann noch eine leere Datei erstellt und die Daten von Export1 rüberkopiert; warum wird nicht Export2 als csv gespeichert?
- wie Pfad und Name geändert wird, da brächte ich Hilfe, wenn wir an dem Punkt sind. Zusatz von Datum und Uhrzeit ist super und auch eine echte Verbesserung was das archivieren betrifft.
- "Kopiere den Code und führe ihn in deiner hier angehängten Beispieldatei durch aufruf der Sub ErzeugeExportDaten auf": das ist ja wohl als erstes zu tun: bitte um Hilfe in kleinen Schritten, klingt zwar nicht wie japanisch, aber doch noch wie spanisch.
- Dannenhöfer: ich mach mir jetzt nen Kaffee und dann klick ich da mal drauf

Schon mal vielen Dank, vierviervier.
Windows 10
AOO 4.1.1 LO 6.0.7.3
vierviervier
*****
Beiträge: 278
Registriert: Mo, 10.05.2010 11:17

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

Beitrag von vierviervier »

Ach ja und noch eine Befürchtung von meiner Kollegin:

Falls der Button mal nicht funktionieren sollte, aus welchen Gründen auch immer, kann man das dann nach wie vor per Hand machen?

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³,
- sub ist Unterprogramm?
Hier in StarBasic ist es eigentlich kein Unterprogramm, sondern einfach ein Programm, welches ein "Haupt-" oder ein "Unterprogram" sein kann.

- zur Frage, ob leere Datenzeilen vorhanden sein können: nein
Gut.

- bis zum kopieren in Export2 konnte ich es zumindest überblicksmäßig nachvollziehen, aber warum wird dann noch eine leere Datei erstellt und die Daten von Export1 rüberkopiert; warum wird nicht Export2 als csv gespeichert?
Gegenfrage: Was fällt dir denn auf, wenn Du eine Tabelle aus einer ods-Datei als csv speicherst?
Wenn Du das beantwortet hast, reden wir noch mal über deine Frage.

- wie Pfad und Name geändert wird, da brächte ich Hilfe, wenn wir an dem Punkt sind.
Das hatten wir doch hier in diesem Thread schon besprochen. Oder wie soll ich das verstehen?

Zusatz von Datum und Uhrzeit ist super und auch eine echte Verbesserung was das archivieren betrifft.
Danke schön. :)

- "Kopiere den Code und führe ihn in deiner hier angehängten Beispieldatei durch aufruf der Sub ErzeugeExportDaten auf": das ist ja wohl als erstes zu tun: bitte um Hilfe in kleinen Schritten, klingt zwar nicht wie japanisch, aber doch noch wie spanisch.
Was ist denn da japanisch/spanisch?
Kopiere den Code, nimm deine Beispieldatei und füge den Code dort ein. Anschließend den Code ausführen.

Falls der Button mal nicht funktionieren sollte, aus welchen Gründen auch immer, kann man das dann nach wie vor per Hand machen?
Wenn Du den Export der Daten meinst, dann Ja! Vorausgesetzt deine Kollegin weiß wie man die Daten kopiert, filtert und exportiert.



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 »

Beispieldatei_Export_Makro_Version07.ods
(57.83 KiB) 100-mal heruntergeladen
Hallo Balu,
zur Beantwortung der Gegenfrage: die ods verschwindet (und wird in dem Zustand gespeichert, schätze ich?) und die CSV Datei erscheint.
Leider reicht mir das nicht zur Beantwortung meiner eigenen Frage.

Dateinamen...: Stimmt, das ist ne längere Beschreibung von Dir, hatte ich vergessen, kann ich dann als Grundlage nehmen, wenn ich soweit bin.

Einfügen des Codes in die Beispieldatei: sorry, das ist hier alles komplett Neuland, versuche mir grade Grundkenntnisse im Schnelldurchlauf reinzupfeifen über den sehr empfehlenswerten Link von Stefan (Autor: Pitonyak), (bin grad auf S. 35 von 650), ich versuche es selbst, aber komme einfach schnell an Punkte, wo ich so unsicher bin wie es weitergeht (+ Bedenken "was zu verstellen") dass es mich nach einigem frust wieder ins forum treibt.

zum Thema einfügen: habe der Beispieldatei die Bibliothek "Export" zugefügt und in IDE unter Module1 deinen code kopiert. (hat mich ca. 2 Stunden gekostet, aber man lernt) Ist das soweit korrekt?
Habe schon mal versucht das jetzt mit meinem Export-Button zu verknüpfen. Dein Programm ist in 3 Teile untergliedert, da wußte ich dann nicht wie ich die alle dem Button zuordne, aber das steht jetzt noch nicht an.

Thema per Hand: der Kollegin hab ich den Ablauf gezeigt, so arbeiten wir zZ.

Oh man freu ich mich auf den Moment, wenn ich das erste mal meinen schönen blauben Button drücke und mir meine gespeicherte CSV Datei angezeigt wird.

Schöne Grüße
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³,
zur Beantwortung der Gegenfrage: die ods verschwindet (und wird in dem Zustand gespeichert, schätze ich?) und die CSV Datei erscheint.
Leider reicht mir das nicht zur Beantwortung meiner eigenen Frage.
Zeit nehmen und in Ruhe lesen.
Denn:
balu hat geschrieben: Was fällt dir denn auf, wenn Du eine Tabelle aus einer ods-Datei als csv speicherst?
Okay, ich hätte wohl noch dazuschreiben sollen, von Hand machen, also eine Tabelle auswählen und dann den Speicherdialog für csv aufrufen, über ->Datei ->Speichern unter. Aber egal.
Mit schätzen, verschwinden und erscheinen hat das nämlich gar nix zu tun. Denn wenn Du eine Tabelle aus einer Datei als csv speicherst, wird nur diese eine Tabelle gespeichert UND die Datei heißt dann nicht mehr (als Beispiel) *Muster.ods* sondern *Muster.csv*. Und wenn Du jetzt diese Datei schließt, dann ist sie keine Calc-Datei mehr sondern eine csv-Datei. Und was glaubst Du wohl was Du dumm aus der Wäsche schaust, wenn Du diese Datei das nächste mal öffnest?

Also ist es bedeutend sicherer die Daten in eine externe Datei zu kopieren, und diese externe Datei als csv zu speichern.

... über den sehr empfehlenswerten Link von Stefan (Autor: Pitonyak), (bin grad auf S. 35 von 650) ...
Schön zu hören, das Du dich mit der Materie beschäftigst. Aber alles musst Du nicht der Reihe nach durcharbeiten, sondern nimm dir immer nur ein par bestimmte Themen vor die zu deinem Problem passen.

habe der Beispieldatei die Bibliothek "Export" zugefügt und in IDE unter Module1 deinen code kopiert. (hat mich ca. 2 Stunden gekostet, aber man lernt) Ist das soweit korrekt?
Gar nicht so dumm, der neuen Bibliothek den Namen "Export" zu vergeben.
Aber es würde auch vollkommen ausreichen in der Standard Bibliothek ein neues Modul mit dem Namen "Export" anzulegen. Das ist aber Geschmacksache, und dein Weg kann später mal auch von Vorteil sein.

Was glaubst Du wohl was ich noch vor 3 Jahren an Zeit investiert habe um bestimmte "kleingkeiten" zu Verstehen? Da sind schon mal einige Tage ins Land vergangen, und nicht nur ein paar wenige Stunden. Also alles kein Grund zur Panik.

Habe schon mal versucht das jetzt mit meinem Export-Button zu verknüpfen. Dein Programm ist in 3 Teile untergliedert, da wußte ich dann nicht wie ich die alle dem Button zuordne, aber das steht jetzt noch nicht an.
Was hälst Du denn davon, wenn Du den Button mit der *Sub ErzeugeExportDaten* (Haupt-Sub) verknüpfst? Die anderen Subs werden innerhalb der Haupt-Sub aus aufgerufen. Achte mal in der Haupt-Sub auf diese Kommentare: REM Aufruf der Sub.



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
TrueColor
******
Beiträge: 542
Registriert: Do, 11.03.2010 11:23

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

Beitrag von TrueColor »

vierviervier hat geschrieben:Code-Tags drumrummachen: hatte noch keine Zeit mich einzulesen; wenn Du mir ne Kurzanleitung geben kannst, mach ich das ab jetzt.
Naja, wenn du dein Posting hier im Editor schreibst, verwendest du entweder den Button, der mit "Code" beschriftet ist, oder du schreibst die Tags per Hand (ohne die Leerzeichen in den eckigen Klammern!):

[ code ]dein Macro-Code
auf mehreren Zeilen
mit Einrückung[ /code ]

Was dann so aussieht:

Code: Alles auswählen

dein Macro-Code
auf mehreren Zeilen
    mit Einrückung
Hat den Vorteil, dass der Code in ein Fenster mit fixer Größe und Scrollbalken eingesetzt und in Festbreitenschrift dargestellt wird.

Edit: Hab's grad gesehen, hat ja inzwischen jemand gemacht :-)
System:
Arbeit: Windows 7 (64 bit) + Apache OpenOffice 4.1.2 (AOO412m3), LibreOffice 4.1.4.2
Home: Windows 10 (64 bit) + Apache OpenOffice 4.1.2 (AOO412m3)
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 True Color,

Code: Alles auswählen

Danke für die Info!
Hallo Balu,

Hab mir jetzt erst mal deinen Code ausgedruckt, allein dadurch kommt man schon besser in die Materie. Jetzt check ich zumindest langsam die Struktur, die einzelnen Befehle mehr oder minder im Prinzip.

Ich habe Deinen Code jetzt in meine Original-Tabelle eingefügt. Läuft gut. Am Schluß kommt fäddisch! und die CSVDatei erscheint an der richtigen Stelle.
Bevor ich jetzt ernst mache und die Datensätze mit IBANs/KTOs fülle und in StarMoney importiere, würde ich Dir gern noch mal kurz zusammenfassen, was ich gemacht habe bzw. wo noch Unsicherheiten sind. Ich weiß nur noch was für ein elendes Furzfehlergesuche das war, bis allein die per Hand erstellte CSV-Datei von StarMoney angenommen wurde, deswegen würde ich gern noch mal das ganze mit dir durchklopfen:

Zunächst was den groben Ablauf betrifft: Fülle zunächst die Datensätze mit Adressen im Tabellenblatt "Adressen", diese werden dann automatisch in Export_1 angezeigt (und verwschwinden wieder, wenn ganz zum Schluss die Spalte "Datum Ausgang" im Tabellenblatt "Adressen" gefüllt wird. An dieser Stelle speichere ich die ods-Datei, damit die anschließend eingetragenen IBANs und KTOs, die ja die Formeln überschreiben, beim nächsten öffnen der ods-Tabelle nicht wieder auftauchen, sondern das Tabellenblatt Export_1 wieder leer (sobald Datum Ausgang gefüllt) und nur mit Formeln gefüllt ist. Die Datensätze mit IBAN/KTO gibt es dann nur als CSV-Datei. Soweit korrekt?

Habe den Button auf Tabellenblatt Export_1 verlinkt mit Originalliste - Export - Module1 - (dann gabs 3 zur Auswahl: davon ErzeugeExportDaten).

Das erzeugen einer Tabelle im Hintergrund, die dann als CSV gespeichert wird, das habe ich verstanden. Der Zwischenschritt in Export_2 zu kopieren ist trotzdem notwendig um die nicht genutzten Formeln loszuwerden, oder?

Wenn ich das Programm richtig verstanden habe, wird Export_2 zunächst eimal komplett gelöscht und dann werden die Daten samt Überschriftzeile von Export_1 kopiert und eingefügt (muss also nicht schauen, dass Export_2, wenn ich die ods-Tabelle abspeichere, mit Überschriftzeile versehen ist?

Als ich versucht habe das Makro aufzunehmen, war bei dem Schritt "Inhalte einfügen" das Problem, das abhängig von den vorher gemachten Aktionen die Häkchen z.B. bei "Formeln" gesetzt oder nicht gesetzt waren, es also nicht klar war, ob wärend des Makros das Häkchen gesetzt oder rausgenommen wird. Das Problem besteht bei der Programmierung gar nicht, oder?

Wärend des händischen abspeicherns als CSV-Datei mußte bei Zeichensatz stehen: "Westeuropa (Windows-1252/WinLatin)" (mit anderen Zeichensätzen, z. B. Unicode, wie ich ursprünglich dachte, streikt wieder der Import bei StarMoney, als Feldtrenner muss "Semikolon" gewählt werden (das muss gewählt werden, zu Beginn ist "Komma" angegeben); Textrenner: "; nur Häkchen bei "Zellinhalt wie angezeigt".
Stimmt das mit der programmierten Version überein?

Und jetzt noch mein Gesellenstück: würde gern die Datensätze mit IBAN und die mit KTO getrennt als CSV speichern und die CSV dementsprechend benennen. Würde dazu einen Button "IBAN" und einen "KTO" in Export_1 erstellen und ihnenb jeweils eigene Makros zuordnen, bei denen die Vornamen als jeweils Export_IBAN und Export_KTO festgelegt sind. Erfolgversprechend?

Noch mal zwischendurch (bzw fast am Ende): Vielen Dank.
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³,
Zunächst was den groben Ablauf betrifft:
Dieser Abschnitt ist mir heute etwas zu unverständlich.

Habe den Button auf Tabellenblatt Export_1 verlinkt mit Originalliste - Export - Module1 - (dann gabs 3 zur Auswahl: davon ErzeugeExportDaten).
Korrekt.

Das erzeugen einer Tabelle im Hintergrund, die dann als CSV gespeichert wird, das habe ich verstanden.
Gut.

Der Zwischenschritt in Export_2 zu kopieren ist trotzdem notwendig um die nicht genutzten Formeln loszuwerden, oder?
Nein, nicht unbedingt.
Denn das war um leere Datensätze zwischen den einzelnen Datensätzen rauszufiltern. Also nach dem Muster.

[Export1]
Müller ....
______(leere Zeile, kein Datensatz)
Meier ....
Schulze ....
______(leere Zeile, kein Datensatz)
Schmitt ....


[Export2]
Müller ....
Meier ....
Schulze ....
Schmitt ....

Da Du aber ja sagtest, das dies nicht vorkommt, kann das Makro gekürzt werden, was ich dir aber schon am Fr, 31.07.2015 13:14 mitteilte.

Und in folge dessen kann das Makro gekürzt werden, was dann so aussieht.

Code: Alles auswählen

REM Variablen deklaration.
   Dim oDok as Object
   Dim oExport1 as Object, oExternExportCSV as Object, oExterneCSV as Object
   Dim aExtDatArray()
   Dim sErmittlungsBlatt as String, sDatenBereich as String
   Dim myFPq(0) as New com.sun.star.beans.PropertyValue
   Dim myProps(1) as New com.sun.star.beans.PropertyValue
'
'##############################################################################################################
'
Sub ErzeugeExportDaten
REM Tabellenblatt Variablennamen definition.
   oDok = ThisComponent
   oExport1 = oDok.getSheets().getByName("Export_1")   

'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
REM Neue und leere Datei versteckt erstellen, die dann als CSV gespeichert wird.
'
   myFPq(0).name = "Hidden"
   myFPq(0).Value =  True ' REM wenn man diese versteckte Datei sehen will, einfach True durch False ersetzen.
   oExterneCSV = starDesktop.loadComponentfromURL("private:factory/scalc", "_blank", 0, myFPq())
   oExternExportCSV = oExterneCSV.sheets(0)
   
'--------------------------------------------------------------------------------
' Die Daten vom Blatt *Export_1* in die neue, leere und versteckte Datei kopieren.
'   
      sErmittlungsBlatt = oExport1.name
      Benutzter_Datenbereich REM Aufruf der Sub.

         aExtDatArray = oExport1.getCellRangeByName( sDatenBereich ).getDataArray REM Datenbereich einlesen (kopieren).
         oExternExportCSV.getCellRangeByName( sDatenBereich ).setDataArray(aExtDatArray) REM Datenbereich einfügen.
'--------------------------------------------------------------------------------
      Externe_CSV_speichern REM Aufruf der Sub.
'--------------------------------------------------------------------------------
             PRINT "F Ä D D I S C H ! ! ! "
End Sub
'
'##############################################################################################################
'
Sub Externe_CSV_speichern   
   sPfad = "file:///T:/DOW_Arbeit/Aktuelles/Matthias/Export_Makro/" REM Den Speicherpfad vorgeben
   sCSVname =  "EXPORTAKTUELL_" REM Das ist der Vorname der CSV-Datei. Der Nachname wird bei sCSVzusatz erstellt.
'--------------------------------------------------------------------------------
      myProps(0).Name = "FilterName"
      myProps(0).Value ="Text - txt - csv (StarCalc)"
      myProps(1).Name="FilterOptions"
      myProps(1).Value = "59,34,ANSI,1,,0,false,true,true,false"
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
REM Wenn die Minuten kleiner 10 sind, wird noch eine 0 (Null) vorangestellt.

      if Minute(Now) <10 then
         sMinu = 0 & Minute(Now)
      else
         sMinu = Minute(Now)
      end if
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
REM Der sCSVzusatz besteht aus dem Datum, der Zeit und des Dateityps.
REM Datum: Tag, Monat und Jahr
Rem Zeit: Stunden, Minuten und Sekunden
Rem Dateityp: .csv

      sCSVzusatz = Day( Now ) & "_" & Month(Now) & "_" & Year( Now ) & " " & Hour( Now ) & "-" & sMinu & "-" & Second( Now ) & ".csv"

         sSpeicherString = sPfad & sCSVname & sCSVzusatz REM Nun wird der Vor- und Nachname der CSV zusammen geschrieben.
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
' CSV-Datei speichern und schließen.
'
         oExterneCSV.storeAsURL(sSpeicherString, myProps()) REM Die CSV wird gespeichert
         oExterneCSV.close(True) REM Die CSV wird geschlossen.
End Sub
'
'##############################################################################################################
'
Sub Benutzter_Datenbereich
Rem Hier wird der benutzte Datenbereich eines Blattes ermittelt, und in der Stringvariable sDatenBereich zurückgegeben.
   oSheet = ThisComponent.getSheets().getByName( sErmittlungsBlatt )
   oCellCursor = oSheet.createCursor()
   oCellCursor.GotoEndOfUsedArea(True)   
   sDatenBereich = REPLACE(oCellCursor.AbsoluteName, "$" & oSheet.Name & ".", "")
End Sub
Wenn ich das Programm richtig verstanden habe, wird Export_2 zunächst eimal komplett gelöscht und dann werden die Daten samt Überschriftzeile von Export_1 kopiert und eingefügt (muss also nicht schauen, dass Export_2, wenn ich die ods-Tabelle abspeichere, mit Überschriftzeile versehen ist?
Korrekt.
Und da das neue Makro (wie gezeigt) nicht mehr auf das Blatt *Export_2* zugreift, werden die Daten statt dorthin nun direkt in die externe CSV-Datei rüberkopiert.

Als ich versucht habe das Makro aufzunehmen, war bei dem Schritt "Inhalte einfügen" das Problem, das abhängig von den vorher gemachten Aktionen die Häkchen z.B. bei "Formeln" gesetzt oder nicht gesetzt waren, es also nicht klar war, ob wärend des Makros das Häkchen gesetzt oder rausgenommen wird. Das Problem besteht bei der Programmierung gar nicht, oder?
Teilweise Korrekt.
Bei dieser Art von kopieren mittels getDataArray und setDataArray trifft das zu. Und nur mit dieser Methode kann man zwischen zwei Dateien kopieren, aber auch innerhalb einer Datei.
Jedoch gibt es auch in der Programmierung auch verschiedene Methoden zum kopieren, wo auch Formeln oder Formate mit kopiert werden. Damit kann man aber nur innerhalb einer Datei kopieren.
Das nur als Kurzinfo, da dies auch ein extrem umfangreiches Thema ist.

Wärend des händischen abspeicherns als CSV-Datei mußte bei Zeichensatz stehen: "Westeuropa (Windows-1252/WinLatin)" (mit anderen Zeichensätzen, z. B. Unicode, wie ich ursprünglich dachte, streikt wieder der Import bei StarMoney, als Feldtrenner muss "Semikolon" gewählt werden (das muss gewählt werden, zu Beginn ist "Komma" angegeben); Textrenner: "; nur Häkchen bei "Zellinhalt wie angezeigt".
Stimmt das mit der programmierten Version überein?
Das kannst nur Du überprüfen ob StarMoney mit den vorgenommenen Einstellungen im Makro zurecht kommt. Aber so wie ich das hier sehe, müsste das schon passen.

Und jetzt noch mein Gesellenstück: würde gern die Datensätze mit IBAN und die mit KTO getrennt als CSV speichern und die CSV dementsprechend benennen. Würde dazu einen Button "IBAN" und einen "KTO" in Export_1 erstellen und ihnenb jeweils eigene Makros zuordnen, bei denen die Vornamen als jeweils Export_IBAN und Export_KTO festgelegt sind. Erfolgversprechend?
Erfolgversprechend? Warum nicht? Geht schon ;-)



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 »

Hallo Balu.

Habe dein Programm in meine Original-Datei integriert. Die Aufteilung in 2 Buttons mit KTO und IBAN funktioniert.
Habe schon vorsichtig Mini-Veränderungen im Programm vorgenommen: Speicherort, Umstellung Reihenfolge Jahr, Monat, Tag für die Archivierung ...
Und: es läuft!!!!!!!!!!!!!!!!!!

Schon Probe-Import bei StarMoney gemacht: wird ohne Probleme beim 1. (!!!) Versuch angenommen!

Jetzt fängts langsam an zu jucken sich tiefer ins Programm hineinzubegeben, aber meine Syntaxkenntnisse sind noch so rudimentär, dass ich mir noch bei kleinsten Eingriffen die Finger verbrenne.
Werde das nach weiterer Lektüre selber gebacken bekommen, aber vieleicht kannst du mir bei 2 Kleinigkeiten noch helfen, dann schaff ichs meine Kollegin am Montag den Button drücken zu lassen.

Würde gern bei PRINT zweiteiligen Text angeben. Einfach den Text um 2. Zeile verlängern geht aber so nicht.
Würde gern die Monate mit der vorgeschalteten Null bei einzahligen Monaten versehen, so wie bei den Minuten. Habe versucht mich an deine Zeilen zu halten, beim Ausführen kommt "Objektvariable nicht belegt". Habe aber nichts gefunden wo die Minuten definiert sind.

Habe hier noch mal den noch leicht gepfuschten Code reingestellt.
Vieleicht magst du ja noch einen kurzen Blick drauf werfen, ansonsten beiß ich mich auch selber durch.

Code: Alles auswählen

REM Variablen deklaration.
   Dim oDok as Object
   Dim oExport as Object, oExternExportCSV as Object, oExterneCSV as Object
   Dim aExtDatArray()
   Dim sErmittlungsBlatt as String, sDatenBereich as String
   Dim myFPq(0) as New com.sun.star.beans.PropertyValue
   Dim myProps(1) as New com.sun.star.beans.PropertyValue
'
'##############################################################################################################
'
Sub ErzeugeExportDaten
REM Tabellenblatt Variablennamen definition.
   oDok = ThisComponent
   oExport = oDok.getSheets().getByName("Export")   

'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
REM Neue und leere Datei versteckt erstellen, die dann als CSV gespeichert wird.
'
   myFPq(0).name = "Hidden"
   myFPq(0).Value =  True ' REM wenn man diese versteckte Datei sehen will, einfach True durch False ersetzen.
   oExterneCSV = starDesktop.loadComponentfromURL("private:factory/scalc", "_blank", 0, myFPq())
   oExternExportCSV = oExterneCSV.sheets(0)
   
'--------------------------------------------------------------------------------
' Die Daten vom Blatt *Export* in die neue, leere und versteckte Datei kopieren.
'   
      sErmittlungsBlatt = oExport.name
      Benutzter_Datenbereich REM Aufruf der Sub.

         aExtDatArray = oExport.getCellRangeByName( sDatenBereich ).getDataArray REM Datenbereich einlesen (kopieren).
         oExternExportCSV.getCellRangeByName( sDatenBereich ).setDataArray(aExtDatArray) REM Datenbereich einfügen.
'--------------------------------------------------------------------------------
      Externe_CSV_speichern REM Aufruf der Sub.
'--------------------------------------------------------------------------------
             PRINT "Ihre Datensätze wurden als CSV-Datei gepeichert.
             Ihr Computer wünscht Ihnen noch einen schönen Tag."
End Sub
'
'##############################################################################################################
'
Sub Externe_CSV_speichern   
   sPfad = "file:///T:/DOW_Arbeit/Listen_sonstige/Listen_CSV/" REM Den Speicherpfad vorgeben
   sCSVname =  "EXPORT_IBAN_" REM Das ist der Vorname der CSV-Datei. Der Nachname wird bei sCSVzusatz erstellt.
'--------------------------------------------------------------------------------
      myProps(0).Name = "FilterName"
      myProps(0).Value ="Text - txt - csv (StarCalc)"
      myProps(1).Name="FilterOptions"
      myProps(1).Value = "59,34,ANSI,1,,0,false,true,true,false"
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
REM Wenn die Minuten kleiner 10 sind, wird noch eine 0 (Null) vorangestellt.

      if Minute(Now) <10 then
         sMinu = 0 & Minute(Now)
      else
         sMinu = Minute(Now)
      end if
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
REM Wenn die Monate kleiner 10 sind, wird noch eine 0 (Null) vorangestellt.

      if Month(Now) <10 then
         sMonth = 0 & Month(Now)
      else
         sMonth = Month(Now)
      end if
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
REM Der sCSVzusatz besteht aus dem Datum, der Zeit und des Dateityps.
REM Datum: Jahr, Monat und Tag
Rem Zeit: Stunden, Minuten und Sekunden
Rem Dateityp: .csv

      sCSVzusatz = Year( Now ) & "_" & Month(Now) & "_" & Day( Now ) & " " & Hour( Now ) & "-" & sMinu & "-" & Second( Now ) & ".csv"

         sSpeicherString = sPfad & sCSVname & sCSVzusatz REM Nun wird der Vor- und Nachname der CSV zusammen geschrieben.
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
' CSV-Datei speichern und schließen.
'
         oExterneCSV.storeAsURL(sSpeicherString, myProps()) REM Die CSV wird gespeichert
         oExterneCSV.close(True) REM Die CSV wird geschlossen.
End Sub
'
'##############################################################################################################
'
Sub Benutzter_Datenbereich
Rem Hier wird der benutzte Datenbereich eines Blattes ermittelt, und in der Stringvariable sDatenBereich zurückgegeben.
   oSheet = ThisComponent.getSheets().getByName( sErmittlungsBlatt )
   oCellCursor = oSheet.createCursor()
   oCellCursor.GotoEndOfUsedArea(True)   
   sDatenBereich = REPLACE(oCellCursor.AbsoluteName, "$" & oSheet.Name & ".", "")
End Sub
Wenn meine Kollegin die erste Sammelüberweisung rausgehauen hat, gibts dann noch mal Abschlußrückmeldung.

Schöne Grüße, vierviervier.
Windows 10
AOO 4.1.1 LO 6.0.7.3
TrueColor
******
Beiträge: 542
Registriert: Do, 11.03.2010 11:23

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

Beitrag von TrueColor »

vierviervier hat geschrieben:Würde gern bei PRINT zweiteiligen Text angeben. Einfach den Text um 2. Zeile verlängern geht aber so nicht.
Aus der Basic-Hilfe:
MsgBox-Anweisung [Laufzeit]
Stellt einen Dialog auf dem Bildschirm dar, der einen Hinweistext enthält.
[...]
Parameter:
Text: Zeichenkettenausdruck, der im Dialog als Meldung angezeigt wird. Zeilenumbrüche können Sie mit Chr$(13) einfügen.
[...]
System:
Arbeit: Windows 7 (64 bit) + Apache OpenOffice 4.1.2 (AOO412m3), LibreOffice 4.1.4.2
Home: Windows 10 (64 bit) + Apache OpenOffice 4.1.2 (AOO412m3)
TrueColor
******
Beiträge: 542
Registriert: Do, 11.03.2010 11:23

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

Beitrag von TrueColor »

vierviervier hat geschrieben: Würde gern die Monate mit der vorgeschalteten Null bei einzahligen Monaten versehen, so wie bei den Minuten. Habe versucht mich an deine Zeilen zu halten, beim Ausführen kommt "Objektvariable nicht belegt". Habe aber nichts gefunden wo die Minuten definiert sind.
Ohne da was genaues sagen zu können, weil mein Wissen hier auch unzureichend ist, kann das nicht nach dem Beispiel ganz unten aus
https://wiki.openoffice.org/wiki/Docume ... e_Library)
The format instructions used in VBA for formatting date and time details can also be used:

Code: Alles auswählen

sub main
    dim myDate as date
    myDate = "01/06/98"
    TestStr = Format(myDate, "mm-dd-yyyy") ' 01-06-1998
    MsgBox TestStr
end sub
formatiert werden? Siehe dazu auch https://wiki.openoffice.org/wiki/Docume ... e_Library)

Edit: habs mal ausprobiert, würde das so machen:

Code: Alles auswählen

Sub Main

	Dim DatumZeit as Date
	Dim Stempel as String
	
	DatumZeit = Now()
	'Stempel = Format(DatumZeit, "yyyy-mm-dd" & "_" & "hh-mm-ss") 'Unterstrich fkt. nicht, entfernt dann die führende Null der Stunde
	Stempel = Format(DatumZeit, "yyyymmdd" & "-" & "hhmmss")
	
	MsgBox(Stempel)

End Sub
System:
Arbeit: Windows 7 (64 bit) + Apache OpenOffice 4.1.2 (AOO412m3), LibreOffice 4.1.4.2
Home: Windows 10 (64 bit) + Apache OpenOffice 4.1.2 (AOO412m3)
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 zusammen,

@balu: meine Kollegin hat auf Ihrem Rechner (wir sind über eine Cloud verbunden) den Makro gestartet (man kann da eine Explorer-Version der Coud-Ordner erstellen und muss dann einfach an allen Rechnern den gleichen Laufwerksbuchstabben wählen) und: alles palletti, von SM eingelesen und Sammelüberweisung durchgelaufen!
Das nur als kurze Rückmeldung. Die große Lobhudelei sammt Dankesreden kommt dann ganz am Schluß, wenn ich alles in die endgültige Form gebracht habe.

@true color: Du hast es ja schon mitbekommen, ich bin blutiger Anfänger in BASIC (und hätte gern viel mehr Zeit). Veränderungen, die über die bloße Ersetzung eines Namens durch einen anderen hinausgehen, geben mir ein ähnliches Gefühl, wie einem Laien, dem eine alte Taschenuhr aufgemacht wird und er soll das kleine Rädchen unten links auswechseln. Deswegen noch Nachfragen zu Deinen Vorschlägen:

zum Zeilenumbruch: auf Chr$(13) bin ich auch schon in meinem Tutorial gestoßem, da bin ich mir nicht sicher, wie ich das zwischen die beiden zu printenden Absätze setze. (zwischen zwei Zeilen mit PRINT, einfach in den Text rein an die Stelle wo umgebrochen werden soll, in den Text, aber vorher Anführungszeichen zu und dann wieder auf...

Dann gabs noch diese Anmerkung mit "Option Compatible", muss die auch noch integriert werden? (s. Pitoyak S. 41)
https://www.uni-due.de/~abi070/files/OO ... utsch.pdf (Hoffe das erscheint jetzt als Link).

zur Zusatznull bei Monat (und auch Tag): setz ich deinen Code so am Stück ein, an welcher Stelle, oder müssen die DIM an den Anfang zu den anderen und der Rest an die Stelle, wo der Name gebildet wird?
Windows 10
AOO 4.1.1 LO 6.0.7.3
Antworten