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!