🙏 Bitte helfen Sie uns das LibreOffice Forum zu erhalten. 🙏
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.

🍀 Wir hoffen auf Ihre Unterstützung - vielen Dank!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Datum kleiner als 01.01.2017 und weiteres

Alles zur Programmierung im LibreOffice.
oiram
Beiträge: 7
Registriert: Di 27. Jun 2017, 15:46

Re: Datum kleiner als 01.01.2017 und weiteres

Beitrag von oiram » Mo 3. Jul 2017, 10:25

Vielen Dank an alle.
Es hat mich sehr viel weitergebracht.
Hier für alle die es interessiert mein gesamtes Makro vom Öffnen bis zu Schliessen:

Code: Alles auswählen

sub blafasel
rem Sub lade_csv_mit_Datumsformat
	Dim Args(1) as New com.sun.star.beans.PropertyValue
	sURL = converttourl("/bla/fasel.csv") '    <------ Dateipfad der zu ladenden Datei
	Args(0).Name = "FilterName"
	Args(0).Value ="Text - txt - csv (StarCalc)"
	Args(1).Name = "FilterOptions"
	Args(1).Value = "59,34,76,1,,0,false,true" '    <------ weitere Infos dazu hier: https://wiki.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Filter_Options
	odoc = StarDesktop.loadComponentFromURL(sURL,"_blank", 0, Args)
rem End sub


rem Sub loesche_Spalten
	oSheet = ThisComponent.CurrentController.getActiveSheet()
	oCellCursor = oSheet.CreateCursor()
	oCellCursor.GotoEndOfUsedArea(True)
	iLastCol = oCellCursor.getRangeAddress.EndColumn
	oColumns=oSheet.getColumns
	arToDel = Array("name2", "name3", "name4", "name5") '    <------ alle zu loeschenden Spalten
	for i = iLastCol to 0 Step -1
		strVal = oSheet.getCellByPosition(i,0).String
	for each varItem in arToDel
		if strVal = varItem Then
			oColumns.removeByIndex(i,1)   
		exit for
		endif
		next
	next 
rem End Sub


rem sub loesche_wenn_Datum_kleiner_als
	oSheet = ThisComponent.CurrentController.getActiveSheet()
	oCursor = oSheet.CreateCursor
	oCursor.GotoEndOfUsedArea(false)
	nEndrow = oCursor.Rangeaddress.EndRow
	for i = nEndrow to 1 step - 1
		oCell = oSheet.GetCellByPosition(4,i)'    <------ 4 entspricht Spalte E
		if cdate(oCell.value) < cdate("01.01.2017") then '    <------ hier das Datum eingeben
			oSheet.Rows.RemoveByIndex(i,1)
		endif
	next i
rem end sub


rem sub loesche_Zeilen_die_in_Spalte_enthalten
	oSheet = ThisComponent.CurrentController.getActiveSheet()
	oCursor = oSheet.CreateCursor
	oCursor.GotoEndOfUsedArea(false)
	nEndrow = oCursor.Rangeaddress.EndRow
	for i = nEndrow to 0 step - 1
		oCell = oSheet.GetCellByPosition(1,i)'    <------ 1 entspricht Spalte B
		if (oCell.string = "error") then '    <------ das Wort nachdem zu loeschen ist
			oSheet.Rows.RemoveByIndex(i,1)
		endif
	next i
	for i = nEndrow to 0 step - 1
		oCell = oSheet.GetCellByPosition(5,i)'    <------ 5 entspricht Spalte F
		if (oCell.string = "storno" ) then '    <------ das Wort nachdem zu loeschen ist
			oSheet.Rows.RemoveByIndex(i,1)
		endif
	next i
rem end sub


rem sub fuege_Spalte_hinzu
	oSheet = ThisComponent.CurrentController.getActiveSheet()
	columns=oSheet.getcolumns()
	columns.insertByIndex(0,1) '    <------ an welcher Position und wieviele; hier Spalte A (0) und eine (1)
rem end sub


rem sub fuelle_Spalte_A
	oSheet = ThisComponent.CurrentController.getActiveSheet() '    <------ aktives Tabellenblatt
 	oCursor = oSheet.CreateCursor
	oCursor.GotoEndOfUsedArea(True)
	nEndrow = oCursor.Rangeaddress.EndRow
	for i = nEndrow to 0 step - 1
        oCell = oSheet.GetCellByPosition(0,i) '    <------ 0 entspricht Spalte A
	Select Case oCell.String
	Case ""
	oCell.String = "bla" '    <------ "Hier den Text eingeben"
	End Select
	next i
rem End sub	


rem sub fuelle_A1
	oSheet = ThisComponent.CurrentController.getActiveSheet()
	mycell = oSheet.getCellByPosition(0,0) '    <------ 0 entspricht Spalte A
	mycell.string="fasel" '    <------ "Hier den Text eingeben"
rem end sub


rem sub Datei_speichern
	dim document   as object '    <------ definieren einer Variablen
	dim dispatcher as object '    <------ definieren einer Variablen
	rem ----------------------------------------------------------------------
	rem get access to the document
	document   = ThisComponent.CurrentController.Frame
	dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
	rem ----------------------------------------------------------------------
	dim args1(2) as new com.sun.star.beans.PropertyValue
	args1(0).Name = "URL"
	args1(0).Value = "file:///bla/fasel_bearbeitet.csv" '    <------ Dateipfad und -name der zu speichernden Datei
	args1(1).Name = "FilterName"
	args1(1).Value = "Text - txt - csv (StarCalc)"
	args1(2).Name = "FilterOptions"
	args1(2).Value = "59,34,76,1,,0,false,true,true" '    <------ weitere Infos dazu hier: https://wiki.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Filter_Options
	dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, args1())
rem end sub


rem sub schliesse_Datei
    odoc=thisComponent
    checkclose=odoc.ismodified()
    if checkclose=false then
               odoc.close(false)
         else
               msgbox "Dokument wurde geändert"
       end if
end sub


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten