🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ 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. 🤗

RgNr mit externer Datei generieren

Alles zur Programmierung im LibreOffice.
Antworten
cynep8
Beiträge: 26
Registriert: Mi 15. Mär 2017, 21:06

RgNr mit externer Datei generieren

Beitrag von cynep8 » Sa 10. Okt 2020, 20:06

Hallo liebes Forum,
ich habe eine Rechnungsvorlage in Calc in der die Rechnungsnummer von Hand eingetragen wird.
Vor 2 Jahren wollte ich das auch schon automatisieren. Ich hatte mir damals aus verschiedenen Makros was selbst zusammengebastelt was dann doch nicht funktionierte und wie das so ist, dann keine Zeit mehr gehabt und es funktionierte auch so irgendwie. In letzter Zeit gab es aber viele Doppelungen bei den erstellten Rechnungen, weshalb ich es doch ganz gerne automatisieren möchte.

Wie ich bei meiner Recherche festgestellt habe, gibt es 2 Varianten das um zu setzen, mit einer Datenbank oder einer .txt bzw. .csv Datei. Es gibt ein perfektes Makro für mich, dieses wurde aber für Writer erstellt und ich weiß nicht wie das mit Calc funktionieren könnte http://www.ooowiki.de/FortlaufendeRechnungsnummer.html.
Meine sonstigen Versuche die verschiedenen Makros die ich gefunden habe abzuwandeln scheiterten bisher. Meist handelte es sich um ganze Tabellen die importiert oder exportiert wurden. Die Makroaufzeichnungsfunktion war leider auch nicht zielführend, weil das Dokument auf ein anderes Tabellenblatt springen musste und mir ein Popupfenster zeigte.

Vom Aufbau dachte ich mir ist es am einfachsten
Eine txt oder csv Datei auszulesen und in eine Zelle zu schreiben. Ein neuer Wert aus einer anderen Zelle (alter wert +1) wird dann in die Datei zurück geschrieben, gerne diesen Schritt auch als einzelnen Sub.


Der Code von vor 2 Jahren der nicht funktioniert:

Code: Alles auswählen

Sub text_imp_Test
Dim myValue as integer
Dim Daten as Variant
		datei = Freefile
		open "C:\RG_Nummer.txt" for InPut as datei
		
		For i = 0 to 0
		
		Input #datei, Currentele
		If Currentele <> "" then
			daten() = split(Currentele,chr(9),7)
			For j= 0 to 0
	 		myValue = daten(j)
			
			ThisComponent.Sheets.getbyname("Tabelle1").getCellByPosition(9,24).Value = myValue
			next j
			
		End If
		next i
		close #datei
		
		Pluseins
		
		end sub


Sub Pluseins
oSheet = ThisComponent.sheets.getbyname("Tabelle1")'Zugriff auf Tabelle1
ocell = osheet.getcellrangebyname("J25") 'oder .getcellbyposition(2,4) -> Zugriff auc C5
ocell.value = ocell.value +1 'hochzählen

txt_expo

End Sub


Sub txt_expo
	objDatei = ThisComponent
	objBlatt = objDatei.Sheets().getbyname("Tabelle1")
	objZelle = objBlatt.getCellRangebyName("J25")
	objCursor = objBlatt.createCursorByRange(objZelle)	
	objCursor.gotoEnd()
	
	maxline = objCursor.getrangeaddress().endrow
	maxspa = objCursor.getrangeaddress().endrow
		 
   	datei = Freefile
   	open ConvertToURL("C:\RG_Nummer.txt") for OutPut as datei
   	For i = 24 to 24
   		inhalt = ""
   		For j = 9 to 9
  	If objBlatt.getcellbyposition(j,i).String <> "" then
   		arg = objBlatt.getcellbyposition(j,i).String
   			inhalt = inhalt + arg & chr(9)
   			End If
   		next j
    	Print #datei, inhalt
   	Next i
   
   	close #datei
end sub
Nach oben

Meine Basic Kenntnisse sind leider sehr bescheiden und das bisschen was ich mir mal vor 2 Jahren angeeignet habe ist auch schon wieder fast komplett weg aus dem Kopf, weshalb ich hoffe das ihr mir weiter helfen könnt!


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