❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️
Unterstützen Sie das LibreOffice-Forum und helfen Sie uns, unser Ziel für 2025 zu erreichen!

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱


❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Wert aus Zelle automatisch in eine andere Zelle eintragen

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
cdaenzer
Beiträge: 4
Registriert: Di 17. Mär 2015, 17:35

Wert aus Zelle automatisch in eine andere Zelle eintragen

Beitrag von cdaenzer » Di 17. Mär 2015, 17:44

Hallo,

ich suche nach eine Lösung für folgende Problemstellung:

Für einen Kassenabschluss habe ich ein Kassenzählprotokoll. Das Ergebnis einer etwaigen Differenz zwischen "Kasse ist" und "Kasse soll" wird in Zelle C22 ausgegeben. Nun soll der Benutzer den Wert von Zelle C22 jeden Tag in eine Zelle eines weiteren Blattes eintragen. Am Tag darauf in die Zelle darunter, usw. Gibt es die Möglichkeit dies zu automatisieren?

Ich stelle mir das so vor: Man drückt auf einen Button und das Programm erstellt dann in einem weiteren Arbeitsblatt das heutige Datum und in der Zelle daneben den Wert von C22. Natürlich müsste das fortlaufend sein, sodass die Werte am Ende des Monats schön untereinander stehen.

Vielen Dank für eure Hilfe!

Grüße,

Christian

mikele
* LO-Experte *
Beiträge: 1947
Registriert: Mo 1. Aug 2011, 20:51

Re: Wert aus Zelle automatisch in eine andere Zelle eintrage

Beitrag von mikele » Di 17. Mär 2015, 21:22

Hallo,

dazu brauchst du eine Schaltfläche und ein Makro.

Code: Alles auswählen

Sub kassenstand
	odoc=thiscomponent
	differenz=odoc.sheets(0).getcellrangebyname("c22").value
	datum=now()
	oZiel=odoc.sheets(1)
	oCellCursor = oZiel.createCursor
	oCellCursor.GotoEndOfUsedArea(False)
	nRow = oCellCursor.getRangeAddress().endRow
	oZiel.getcellbyposition(0,nrow+1).value=datum
	oZiel.getcellbyposition(1,nrow+1).value=differenz
End Sub
Dateianhänge
makro wert_uebertragen.ods
(9.99 KiB) 75-mal heruntergeladen
Gruß,
mikele

cdaenzer
Beiträge: 4
Registriert: Di 17. Mär 2015, 17:35

Re: Wert aus Zelle automatisch in eine andere Zelle eintrage

Beitrag von cdaenzer » Mi 18. Mär 2015, 11:16

Hallo,

vielen Dank für die Hilfe!

Ich habe nun versucht, mehrere Zellen (C20-C22) abzufragen und die Werte davon in die nächste Zelle einzusetzen.

Code: Alles auswählen

REM  *****  BASIC  *****

Sub kassenstand
	odoc=thiscomponent
	differenz=odoc.sheets(0).getcellrangebyname("c20:c22").value
	datum=now()
	oZiel=odoc.sheets(1)
	oCellCursor = oZiel.createCursor
    oCellCursor.GotoEndOfUsedArea(False)
    nRow = oCellCursor.getRangeAddress().endRow
	oZiel.getcellbyposition(0,nrow+1).value=datum
	oZiel.getcellbyposition(1,nrow+1).value="Kassenstand gezaehlt"
	oZiel.getcellbyposition(2,nrow+1).value="Kassenstand rechnerisch" 
	oZiel.getcellbyposition(3,nrow+1).value="Differenz"

End Sub
Wo liegt da der Fehler?

mikele
* LO-Experte *
Beiträge: 1947
Registriert: Mo 1. Aug 2011, 20:51

Re: Wert aus Zelle automatisch in eine andere Zelle eintrage

Beitrag von mikele » Mi 18. Mär 2015, 11:59

Hallo,

Code: Alles auswählen

differenz=odoc.sheets(0).getcellrangebyname("c20:c22").value
Diese zeile sollte eine Fehlermeldung produzieren, denn was soll der Wert eines Zellbereiches sein?

Code: Alles auswählen

   oZiel.getcellbyposition(1,nrow+1).value="Kassenstand gezaehlt"
   oZiel.getcellbyposition(2,nrow+1).value="Kassenstand rechnerisch" 
Sollen wirklich in den Spalten 2 und 3 einer jeden Zeile diese Texte erscheinen?

Ich glaube, du hast etwas anderes vor.
die Werte davon in die nächste Zelle einzusetzen

Code: Alles auswählen

REM  *****  BASIC  *****

Sub kassenstand
   odoc=thiscomponent
   differenz=odoc.sheets(0).getcellrangebyname("c22").value
   stand_r=odoc.sheets(0).getcellrangebyname("c20").value
   stand_g=odoc.sheets(0).getcellrangebyname("c21").value
   datum=now()
   oZiel=odoc.sheets(1)
   oCellCursor = oZiel.createCursor
    oCellCursor.GotoEndOfUsedArea(False)
    nRow = oCellCursor.getRangeAddress().endRow
   oZiel.getcellbyposition(0,nrow+1).value=datum
   oZiel.getcellbyposition(1,nrow+1).value=stand_g
   oZiel.getcellbyposition(2,nrow+1).value=stand_r 
   oZiel.getcellbyposition(3,nrow+1).value=differenz

End Sub
Gruß,
mikele

cdaenzer
Beiträge: 4
Registriert: Di 17. Mär 2015, 17:35

Re: Wert aus Zelle automatisch in eine andere Zelle eintrage

Beitrag von cdaenzer » Do 19. Mär 2015, 17:02

Hallo mikele, vielen, vielen Dank für Deine Hilfe.

Mein Code sieht nun (etwas angepasst) so aus. Eingebaut habe ich noch die Druckfunktion.

Code: Alles auswählen

REM  *****  BASIC  *****

Sub kassenstand
   odoc=thiscomponent
   stand_g=odoc.sheets(0).getcellrangebyname("c20").value
   stand_r=odoc.sheets(0).getcellrangebyname("c21").value
   differenz=odoc.sheets(0).getcellrangebyname("c22").value
   entnahme=odoc.sheets(0).getcellrangebyname("c23").value
   abschluss=odoc.sheets(0).getcellrangebyname("c24").value
   datum=now()
   oZiel=odoc.sheets(1)
   oCellCursor = oZiel.createCursor
    oCellCursor.GotoEndOfUsedArea(False)
    nRow = oCellCursor.getRangeAddress().endRow
   oZiel.getcellbyposition(0,nrow+1).value=datum
   oZiel.getcellbyposition(1,nrow+1).value=stand_g
   oZiel.getcellbyposition(2,nrow+1).value=stand_r 
   oZiel.getcellbyposition(3,nrow+1).value=differenz
   oZiel.getcellbyposition(4,nrow+1).value=entnahme
   oZiel.getcellbyposition(5,nrow+1).value=abschluss

End Sub

sub druck
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 ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Print", "", 0, Array())


end sub
Als nächstes werde ich versuchen, das Dokument monatsweise abzuspeichern (z.B. Dokumentname_Monat) und als Folge dessen die Tabelleninhalte zu leeren. Falls es nicht klappt, schreibe ich hier hinein.

Grüße,

Christian
Dateianhänge
Kassenabschluss.ods
(24.19 KiB) 75-mal heruntergeladen

cdaenzer
Beiträge: 4
Registriert: Di 17. Mär 2015, 17:35

Re: Wert aus Zelle automatisch in eine andere Zelle eintrage

Beitrag von cdaenzer » Di 24. Mär 2015, 13:42

Hallo, leider klappt es mit dem Speichern der Datei als PDF nicht so ganz.
Mein Ziel ist es, die Datei täglich als PDF in einem bestimmten Ordner zu speichern und im Dateinamen das aktuelle Datum einzufügen.
So wie ich es verstehe müsste die Funktion CURDATE als Zeile in den Argumenten des zu speichernden Dateinamens eingefügt werden, aber das bringt kein Ergebnis:

Code: Alles auswählen

args1(1).Value = "CURdate"
Wo liegt er Fehler?



Der "Rohcode" sieht so aus:

Code: Alles auswählen

REM  *****  BASIC  *****

sub Speichern
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(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = "file:///D:/Kassenberichte/Kassenabschluss222.pdf"
args1(1).Name = "FilterName"
args1(1).Value = "calc_pdf_Export"
args1(2).Name = "FilterData"
args1(2).Value = Array(Array("UseLosslessCompression",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Quality",0,90,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ReduceImageResolution",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("MaxImageResolution",0,300,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("UseTaggedPDF",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SelectPdfVersion",0,1,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportNotes",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ViewPDFAfterExport",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportBookmarks",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("OpenBookmarkLevels",0,-1,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("UseTransitionEffects",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("IsSkipEmptyPages",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("IsAddStream",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EmbedStandardFonts",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("FormsType",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportFormFields",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("AllowDuplicateFieldNames",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerToolbar",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerMenubar",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerWindowControls",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ResizeWindowToInitialPage",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("CenterWindow",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("OpenInFullScreenMode",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("DisplayPDFDocumentTitle",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("InitialView",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Magnification",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Zoom",0,100,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PageLayout",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("FirstPageOnLeft",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("InitialPage",0,1,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Printing",0,2,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Changes",0,4,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EnableCopyingOfContent",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EnableTextAccessForAccessibilityTools",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportLinksRelativeFsys",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PDFViewSelection",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ConvertOOoTargetToPDFTarget",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportBookmarksToPDFDestination",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignPDF",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("_OkButtonString",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Watermark",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EncryptFile",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PreparedPasswords",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("RestrictPermissions",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PreparedPermissionPassword",0,Array(),com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignatureLocation",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignatureReason",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignatureContactInfo",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignaturePassword",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignatureCertificate",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE))

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

end sub
Grüße,

Christian


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten