Kann mir einer bei diesem Makro helfen?

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

icecube1307
Beiträge: 6
Registriert: Do, 29.06.2006 16:40

Kann mir einer bei diesem Makro helfen?

Beitrag von icecube1307 »

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
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

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...

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
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
icecube1307
Beiträge: 6
Registriert: Do, 29.06.2006 16:40

Beitrag von icecube1307 »

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?
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Icecube,
gibt es denn im internet irgendwo eine gute anleitung für dieses basic?
Schau dir einfach mal den ersten Thread im Forum "Basic" an, da werden alle Quellen gelistet! (viewtopic.php?t=1553)

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
icecube1307
Beiträge: 6
Registriert: Do, 29.06.2006 16:40

Beitrag von icecube1307 »

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! ;)
Antworten