hallo, ich habe ein makro aus excel..es ist sehr kurz..wäre nett, wenn einer von euch mir helfen könnte es unter open office zum laufen zu bringen!
Sub ReNr_eintragen()
Dim Lst As Object, Rech As Object
Dim Nr As Long, z As Long
Set Lst=Sheets("Rechnungsdatenbank")
Set Rech=ActiveSheet
z=Lst.Range("A1").CurrentRegion.Rows.Count
Nr=Lst.Cells(z,1).Value
Rech.Range("F11").Value=Nr+1
End Sub
Kann mir einer bei diesem Makro helfen?
Moderator: Moderatoren
-
- Beiträge: 6
- Registriert: Do, 29.06.2006 16:40
Hey Icecube,
Hmm, ich glaube, du machst es dir ein bischen einfach. "Mal so eben" hilft dir wenig, wenn du nicht verstehst, wie das System arbeitet und wie die Objekte "funktionieren".
Auch fehlt für eine sinnvolle Umstellung ein wenig Information: Was macht das Makro, wie rufst du es auf, was willst du erreichen etc.
Der unten stehende Code "macht" in etwa das, was ich aus dem Excel Makro herauslese - ich denke aber, das kann nicht alles sein. Wie führst du die Liste der Rechnungsnummern fort? Wie wird die letzte Nummer eingetragen? Wie rufst du das Makro auf? Na ja, und vieles mehr. Ich denke, der Code alleine nützt dir wenig...
Gruss
Thomas
Hmm, ich glaube, du machst es dir ein bischen einfach. "Mal so eben" hilft dir wenig, wenn du nicht verstehst, wie das System arbeitet und wie die Objekte "funktionieren".
Auch fehlt für eine sinnvolle Umstellung ein wenig Information: Was macht das Makro, wie rufst du es auf, was willst du erreichen etc.
Der unten stehende Code "macht" in etwa das, was ich aus dem Excel Makro herauslese - ich denke aber, das kann nicht alles sein. Wie führst du die Liste der Rechnungsnummern fort? Wie wird die letzte Nummer eingetragen? Wie rufst du das Makro auf? Na ja, und vieles mehr. Ich denke, der Code alleine nützt dir wenig...
Code: Alles auswählen
sub ReNr_eintragen
Dim oLst as object, oRech as object, oRange as object
Dim oCur as object, nZe as long, nr as ling
oLst = thisComponent.sheets.getSheetByName("Rechnungsdatenbank")
oRech = thisComponent.getCurrentController().getActiveSheet()
oCur = oLst.createCursorByRange(oLst.getCellRangeByName("A1"))
oCur. gotoEnd()
nZe = oCur.getRangeAddress.endRow
nr = oLst.getCellRangeByName("A" & nZe).Value
oRech.getCellRangeByName("F11").value = nr + 1
end sub
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
-
- Beiträge: 6
- Registriert: Do, 29.06.2006 16:40
so, danke erst ein mal für die überstzung..ich möchte das makro gerne über einen commandbutton starten, oder alternativ, was eigentlich noch besser wäre, wenn ich das dokument aufrufe..
insgesamt möchte ich eine rechnungsvorlage erstellen, in der das erste tabellenblatt die rechnung ist, das zweite ist eine datenbank in der rechnungsnummer, datum der rechnung, betrag und anschrift des kunden gespeichert werden sollen. wenn also die letzte vergebene rechnung in dem zweiten tabellenblatt die nummer 405 hatte, soll automatisch im feld rechnungsnummer die 406 eingetragen werden.
zudem brauche ich noch ein makro, das ich über einen commandbutton starte, das dafür sorgt, dass die rechnung zwei mal ausgedruckt wird und die daten adresse, rechnungsnummer usw. in die datenbank überschrieben werden..
ist alles ein bisschen kompliziert, ich weiß..gibt es denn im internet irgendwo eine gute anleitung für dieses basic?
insgesamt möchte ich eine rechnungsvorlage erstellen, in der das erste tabellenblatt die rechnung ist, das zweite ist eine datenbank in der rechnungsnummer, datum der rechnung, betrag und anschrift des kunden gespeichert werden sollen. wenn also die letzte vergebene rechnung in dem zweiten tabellenblatt die nummer 405 hatte, soll automatisch im feld rechnungsnummer die 406 eingetragen werden.
zudem brauche ich noch ein makro, das ich über einen commandbutton starte, das dafür sorgt, dass die rechnung zwei mal ausgedruckt wird und die daten adresse, rechnungsnummer usw. in die datenbank überschrieben werden..
ist alles ein bisschen kompliziert, ich weiß..gibt es denn im internet irgendwo eine gute anleitung für dieses basic?
Hey Icecube,
Aber wenn du dich wirklich damit vertiefen willst, wrst du um ein "gutess" Buch wohl kaum herumkommen.
Gruss
Thomas
Schau dir einfach mal den ersten Thread im Forum "Basic" an, da werden alle Quellen gelistet! (viewtopic.php?t=1553)gibt es denn im internet irgendwo eine gute anleitung für dieses basic?
Aber wenn du dich wirklich damit vertiefen willst, wrst du um ein "gutess" Buch wohl kaum herumkommen.
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
-
- Beiträge: 6
- Registriert: Do, 29.06.2006 16:40
dankeschön für die quellenangaben! das makro ist auch super. es läuft so, wie ich es brauchte! ich hab auch versucht mich einzulesen, aber es wäre zu zeitaufwendig für mich, mich in das programm einzuarbeiten, weil ich nur diese eine rechnungsvorlage erstellen will. deshalb wäre es nett, wenn mit bei diesem einen makro noch geholfen werden könnte:
ich möchte aus dem tabellenblatt mit der rechnungsvorlage bestimmte daten in das zweite tabellenblatt mit einer rechnungsausgangsdatenbank überschreibe. Dazu muss in der Rechnungsausgangsdatenbank also die nächste freie Zeile ermittelt werden und die daten sollen dann darein übertragen werden. ich habe die spalten Rechnungsnummer, Datum, Betrag, Name, Adresse und Ort übertragen.
Das Excel-Makro dafür sieht so aus:
Sub Rechnung_eintragen()
Dim Lst As Object, Frm As Object
Dim z As Long
Set Lst=Sheets("Rechnungsdatenbank")
Set Frm=ActiveSheet
z=Lst.Range("A1").CurrentRegion.Rows.Count
z=z+1
Lst.Cells(z, 1).Value=Frm.Range("H10").Value
Lst.Cells(z, 2).Value=Frm.Range("H12").Value
Lst.Cells(z, 3).Value=Frm.Range("H44").Value
Lst.Cells(z, 4).Value=Frm.Range("A3").Value
Lst.Cells(z, 5).Value=Frm.Range("A4").Value
Lst.Cells(z, 6).Value=Frm.Range("A6").Value
End Sub
Dazu wäre es schön wenn das Makro das Dokument nach dieser Ausführung speichern könnte. Also, es wäre nett, wenn mir einer das makro übersetzen könnte! ich verstehe es aber auch wenn keiner lust dazu hat! ;)
ich möchte aus dem tabellenblatt mit der rechnungsvorlage bestimmte daten in das zweite tabellenblatt mit einer rechnungsausgangsdatenbank überschreibe. Dazu muss in der Rechnungsausgangsdatenbank also die nächste freie Zeile ermittelt werden und die daten sollen dann darein übertragen werden. ich habe die spalten Rechnungsnummer, Datum, Betrag, Name, Adresse und Ort übertragen.
Das Excel-Makro dafür sieht so aus:
Sub Rechnung_eintragen()
Dim Lst As Object, Frm As Object
Dim z As Long
Set Lst=Sheets("Rechnungsdatenbank")
Set Frm=ActiveSheet
z=Lst.Range("A1").CurrentRegion.Rows.Count
z=z+1
Lst.Cells(z, 1).Value=Frm.Range("H10").Value
Lst.Cells(z, 2).Value=Frm.Range("H12").Value
Lst.Cells(z, 3).Value=Frm.Range("H44").Value
Lst.Cells(z, 4).Value=Frm.Range("A3").Value
Lst.Cells(z, 5).Value=Frm.Range("A4").Value
Lst.Cells(z, 6).Value=Frm.Range("A6").Value
End Sub
Dazu wäre es schön wenn das Makro das Dokument nach dieser Ausführung speichern könnte. Also, es wäre nett, wenn mir einer das makro übersetzen könnte! ich verstehe es aber auch wenn keiner lust dazu hat! ;)