Makro über Schaltfläche ausführen > Ergebnis in Zelle

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Charly
*****
Beiträge: 450
Registriert: Di, 20.01.2004 13:14
Wohnort: München

Re: Makro über Schaltfläche ausführen > Ergebnis in Zelle

Beitrag von Charly »

Hallo Dampfnudel!

Du hast den gewünschten Wert in der Variable renummer. Diesen Wert kannst du auf zwei Arten einer Zelle zuweisen:

1. Wenn du in die aktive Zelle die Nummer schreiben willst

Code: Alles auswählen

Doc = ThisComponent
Zelle = Doc.CurrentSelection
Zelle.string = renummer
2. Wenn du die Nummer in eine feststehende Zelle des aktiven Tabellenblattes schreiben willst z.B. A1

Code: Alles auswählen

Doc = ThisComponent
Controller = Doc.currentController
Blatt = Controller.activesheet
Zelle = Blatt.getCellrangeByName("A1")
Zelle.string = renummer
Wenn du dein Makro über eine Schaltfläche starten willst, dann brauchst du sie nicht als Funktion einrichten, sondern als Sub. Ein Rückgabewert ist hier nicht nötig, da direkt in die Zelle geschrieben wird.

gruß
Charly
dampfnudel
Beiträge: 2
Registriert: Mo, 12.01.2009 12:33

Re: Makro über Schaltfläche ausführen > Ergebnis in Zelle

Beitrag von dampfnudel »

Hallo Charly,

besten Dank, funktioniert prächtig! Hier noch einmal zusammengefasst wie das Makro jetzt bei mir aussieht:

Code: Alles auswählen

Sub GetAndSetNumber
   dim f as Integer
   dim rechnungsdatei as string   
   dim renummer as string
   rechnungsdatei="c:/re.txt"
   if FileExists("file:///"&rechnungsdatei) then
      f = FreeFile()
      Open "file:///"&rechnungsdatei for Input as #f
      Line Input #f, renummer
      Doc = ThisComponent
      Controller = Doc.currentController
      Blatt = Controller.activesheet
      Zelle = Blatt.getCellrangeByName("E4")
      Zelle.string = renummer
      close #f
      f = FreeFile()
      Open "file:///"&rechnungsdatei for output as #f
      Print #f, val(renummer)+1
      close #f
   else
      renummer=0
   endif
   GetAndSetNumber=renummer  
end Sub
Besten Dank nochmal.
Gruß
dampfnudel
Charly
*****
Beiträge: 450
Registriert: Di, 20.01.2004 13:14
Wohnort: München

Re: Makro über Schaltfläche ausführen > Ergebnis in Zelle

Beitrag von Charly »

Hallo Dampfnudel!

Schön, dass es passt. Nur noch ein Typ für dein Programm.

Die Codezeile:

Code: Alles auswählen

GetAndSetNumber=renummer  
brauchst du in einer SUB nicht. In einer Funktion steht hier der Rückgabewert.

Die Codzeile

Code: Alles auswählen

else
      renummer=0
hat nur einen Sinn, wenn du mit dem erhaltenen Wert noch was anfangen . Z.B. könnstest du hier hier eine Fehlermeldung reinhängen wie z.B.

Code: Alles auswählen

else
      MSGBOX("Rechnungsdatei fehlt")
Gruß
Charly
dampfnudel
Beiträge: 2
Registriert: Mo, 12.01.2009 12:33

Re: Makro über Schaltfläche ausführen > Ergebnis in Zelle

Beitrag von dampfnudel »

Jepp, danke. Hab ich jetzt auch so übernommen.

Gruß
dampfnudel
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: Makro über Schaltfläche ausführen > Ergebnis in Zelle

Beitrag von Karolus »

Hallo
unix73 hat geschrieben:... ist es irgendwie moeglich
die Ausgabe so zugestalten zb.: 2008-002
ändere die Zeile: "Zelle.string = renummer"
um in
Zelle.string = year( now ) & "-" & format(renummer,"000")
(falls du noch 2008 möchtest, müsstest du: ... year( now ) -1.... nehmen.

Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
cruzylin
**
Beiträge: 21
Registriert: So, 30.01.2011 19:04

Re: Makro über Schaltfläche ausführen > Ergebnis in Zelle

Beitrag von cruzylin »

Ich bedanke mich mal gleich mit, auch wenn es eine Weile her ist ;-)
Antworten