Seite 1 von 1

makro von excel nach open

Verfasst: Mo, 10.07.2006 18:57
von icecube1307
hallo!

es wäre nett, wenn mir bei diesem 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! ;)

Verfasst: Mo, 24.07.2006 22:29
von komma4
Wenn Du das für Excel konntest - kannst Du es auch für Calc.
Im Netz findest Du für diese (recht einfache) Aufgabe genügend Beispiele.

Code: Alles auswählen

Sub CalcTest
oDok = ThisComponent
oBlatt = oDok.Sheets.getByIndex( 0 )
oZelle = oBlatt.getCellByPosition( 1, 2 )
oZelle.Text.setString( "mein Wert" )
' oZelle.Value = 0.123 
oDok.store()
End Sub
Zum Herausfinden der nächsten freien Zeile:
hast Du Formeln im Blatt? (die verändern ein programmatisch ermittelbares Ergebnis).
Oder einfach schleifen (wenn Du Deine Rechnungen in einer Tabellenkalkulation speicherst, dann sind es ja nicht so viele Zeilen ;-))

Hilft das für den Anfang?