BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

[Gelöst] Makro, Werte in nächste Zelle einbauen.

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
Benutzeravatar
Roland1
Beiträge: 50
Registriert: Sa 15. Jan 2022, 11:01

[Gelöst] Makro, Werte in nächste Zelle einbauen.

Beitrag von Roland1 » Sa 15. Jan 2022, 11:20

Hallo, meine Suche ergab leider nicht das was ich suche. Oder ich verstehe es nicht.

Ich habe eine Tabelle mit Namen, Datum, Betrag.
Das sind alles "Feld" und "wenn dann" Befehle.
funktioniert soweit.

Nun möchte ich in einer anderen Tabelle (Liste) Name, Datum, und Betrag mit einem Klick mit einem Makro listen.

Ich ab es nun aufgenommen (erst mal nur "Betrag") den formatiere ich wenn das Makro den Betrag eingefügt hat als Zahl
(selectformat, 1) so das keine Formel auf die Liste kommt, sondern der Betrag.

Nun möchte ich, das bei jedem klicken auf das Makro die nächste freie Zelle (c3.....c4,c5) beschrieben wird.

Ich hab das mit "Row+1" gelesen, bekomme es aber nicht hin.

Ich Liste mal was ich habe, eventuell kann mir auch jemand sagen wie ich dann noch Name und Datum dazu bekomme.
Das Datenblatt (Aktive Sheet) ist 2, die Liste ist 5, Der Rechnungswert ist K48,
Der Name wäre Tabellle2, A11
Das Datum wäre Tabelle2, K13.

nun noch was ich als Makro habe.

sub Rechnungliste
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Nr"
args1(0).Value = 2

dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args1())

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "$K$48"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())

rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "Nr"
args4(0).Value = 5

dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args4())


rem ----------------------------------------------------------------------
dim args5(0) as new com.sun.star.beans.PropertyValue
args5(0).Name = "ToPoint"
args5(0).Value ="$C$3"


dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args5())


rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())

rem ----------------------------------------------------------------------
dim args7(0) as new com.sun.star.beans.PropertyValue
args7(0).Name = "SelectedFormat"
args7(0).Value = 1
dispatcher.executeDispatch(document, ".uno:ClipboardFormatItems", "", 0, args7())


end sub
Zuletzt geändert von Roland1 am So 16. Jan 2022, 14:04, insgesamt 2-mal geändert.
Gruß Roland
Windows 11, Libre 7.5.9

mikele
Beiträge: 1659
Registriert: Mo 1. Aug 2011, 20:51

Re: Makro, Werte in nächste Zelle einbauen.

Beitrag von mikele » Sa 15. Jan 2022, 12:01

Hallo,
einfacher wäre: Markieren->Kopieren-> Einfügen als...
Wenn es per Makro sein muss:
Nun möchte ich, das bei jedem klicken auf das Makro die nächste freie Zelle beschrieben wird.
Es darf schon ein bisschen konkreter sein: Was (Zellen?) soll wohin geschrieben (Zellen?) werden?
Gruß,
mikele

Benutzeravatar
Roland1
Beiträge: 50
Registriert: Sa 15. Jan 2022, 11:01

Re: Makro, Werte in nächste Zelle einbauen.

Beitrag von Roland1 » Sa 15. Jan 2022, 16:55

Hallo Mikele,

Ich baue ein Button ein.
mit dem Löse ich das Makro aus.
Dann sollte auf "Liste" der Name, das Datum und der Betrag stehen.

So als Steuerbuch.

Da du mit Markieren und kopieren antwortest, wäre es nett das du den Thread nicht einfach nur länger machst.
Gruß Roland
Windows 11, Libre 7.5.9

craig
Beiträge: 1137
Registriert: Do 21. Apr 2016, 11:42

Re: Makro, Werte in nächste Zelle einbauen.

Beitrag von craig » Sa 15. Jan 2022, 18:56

Hallo Roland,
Da du mit Markieren und kopieren antwortest, wäre es nett das du den Thread nicht einfach nur länger machst.
Da hast Du doch glatt den besseren Programmierer aus dem Rennen geschickt... ;)

Naja, hier mal ein Muster auf Basis der Starbasic-API programmiert:
Makro Zeilen in neues Blatt kopieren.ods
(14.39 KiB) 81-mal heruntergeladen
Hinweis:
Der Makrorekorder zeichnet nur Dispatch-Kommandos auf und versagt
des Öfteren, weil das dumme Ding keine Gedanken lesen kann. :roll:
Gruß

Craig

Nie die Sicherungskopie vergessen!

════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8

mikele
Beiträge: 1659
Registriert: Mo 1. Aug 2011, 20:51

Re: Makro, Werte in nächste Zelle einbauen.

Beitrag von mikele » Sa 15. Jan 2022, 19:37

Hallo,
es fehlen immer noch die wesentlichen Informationen, um eine konkrete Anteort zu geben. Dadurch wird der Thread länger ...
Gruß,
mikele

Benutzeravatar
Roland1
Beiträge: 50
Registriert: Sa 15. Jan 2022, 11:01

Re: Makro, Werte in nächste Zelle einbauen.

Beitrag von Roland1 » So 16. Jan 2022, 09:33

Guten Morgen,

Bin gerade daran "@craig" elemente zu verstehen. Da ist schon viel richtiges dabei. Muß es nur umsetzen.

@Mikele, ich wei0 nicht genau was fehlt.
Ich habe eine Adresstabelle, die füge ich mit Feldbefehl in die Rechnung.
so mach ich es auch mit den Artikeln.
Das Datum funktioniert automatisch.
Und das Ergebnis resultiert dann aus den Artikeln.

Diese frisch eingegebenen Daten möchte ich abgreifen und als Liste speichern,
Im Moment funktioniert es nur mit dem Ergebnis und schreibt sich auch immer in die selbe Zeile.

Ich hänge die Adtei mal an was ich machen möchte. Also Rechnungs tabelle ist der start, dann sollte nach einem Klick auf ein Button es in die Liste übertragen werden.
Dateianhänge
Rechnung_test.ods
(31.32 KiB) 73-mal heruntergeladen
Gruß Roland
Windows 11, Libre 7.5.9

mikele
Beiträge: 1659
Registriert: Mo 1. Aug 2011, 20:51

Re: Makro, Werte in nächste Zelle einbauen.

Beitrag von mikele » So 16. Jan 2022, 11:08

Hallo,
und schon wird es einfach ...

Code: Alles auswählen

Sub Main

	'Zugriff auf Dokument und Tabellen
	oDoc=ThisComponent
	oRg=oDoc.Sheets.getByName("Rechnung")
	oListe=oDoc.Sheets.getByName("Liste")
	'erste freie Zeile in Liste finden
	n=oListe.Columns(0).queryEmptyCells.RangeAddresses(0).StartRow
	'Daten auslesen und in Array sammeln
	aDaten=Array(Array(oRg.getCellRangeByName("A11").String,oRg.getCellRangeByName("K13").Value,oRg.getCellRangeByName("K48").Value))
	'Daten schreiben
	oListe.getCellRangebyPosition(0,n,2,n).setDataArray(aDaten)
	
End Sub
Gruß,
mikele

Benutzeravatar
Roland1
Beiträge: 50
Registriert: Sa 15. Jan 2022, 11:01

Re: Makro, Werte in nächste Zelle einbauen.

Beitrag von Roland1 » So 16. Jan 2022, 14:04

Asche auf mein Haupt,

Gaaanz große Entschuldigung an Mikele, ;-)
(das resultierte aus einem EOS Forum, wo viele meine etwas zu wissen, und den Threed unnötig verlängern.)

Das war genau das was ich wollte, super. Sorry.... passt sehr gut.
Super schnelle Hilfe.

Vielen danke auch an craig.
Gruß Roland
Windows 11, Libre 7.5.9

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten