Problem beim Erstellen eines Makros

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Problem beim Erstellen eines Makros

von Paule » Do, 10.11.2005 14:51

hi busyfolks

wenn du das mit einer Wenn funktion hast ändern sich ja alle Daten auf das Aktuelle Datum da die funktion das Datum ja automatisch kriegen soll also aus =heute(). diese funktion zeigt jeden Tag das Aktuelle Datum an, und die Datumseingaben sollten ja erhalten bleiben.

gruß

Paule

von busyfolks » Do, 10.11.2005 13:27

ich würde das mit einer verschachtelten Funktion machen.
also mit einer wenn-Funktion zum Beispiel. So wäre mein Gedankenansatz. Ob es geht weiß ich nicht

von Paule » Mo, 31.10.2005 11:42

mh also der müsste funktionieren musst natürlich nur noch anpassen

Code: Alles auswählen

sub datum
osheet =thiscomponent.sheets.getbyname("Tabelle1") 
ozelle =osheet.getcellrangebyname("c1")  
stext = ozelle.string
for i = 1 to 5 'Zeilen angeben (0 = 1, 1 = 2...) hier also zeile 2 bis 6
ozelle = osheet.getcellbyposition(1,i) 'zu prufende position angeben (variable i miteinbaun)
if ozelle.string = "" then  
nothing else
osheet.getcellbyposition(0,i).string = (stext) 
end if
next	'next gehört zur for funktion die schleife wird also 4 mal wiederholt 
end sub 
grüße

Paule

von cyberwolf » Sa, 29.10.2005 07:54

So, erstmal danke für die wirklich schnelle Hilfe. :)

Dein Skript hat so bei mir leider nicht funktioniert, aber ich habe wenigstens die Syntax kapiert. :)

Das Skript sieht nun so aus:

[code]
sub datum
osheet = thiscomponent.sheets.getbyname("2006") 'Welches Tabellenblatt?
ozelle = osheet.getcellrangebyname("a2") 'Zelle die geprüft werden soll.

if ozelle.string = "Bestellt" then 'Wenn A2 den String "Bestellt" enthält, dann
osheet.getcellrangebyname("f2").string = Date 'Schreibe das aktuelle Datum in C2
else 'Ansonsten
osheet.getcellrangebyname("f2").string = "Irgendwas" 'Hier passiert noch irgendwas
end if

end sub
[/code]

So weit, so gut.

Jetzt muss ich aber auch gleich nochmal um Hilfe bitten. :?

a) Wie kriege ich die Schleife hin?
b) Wie muss ich das Skript anpassen damit er nicht bloß a2 und f2, sondern jede Zelle in diesen Spalten beim durchlaufen der Schleife prüft?

Wie immer bin ich für sachdienliche Hinweise sehr dankbar.

von Paule » Do, 27.10.2005 15:35

ah scheiße

vergiß das oben , das schrott... :oops: :oops:

von Paule » Do, 27.10.2005 15:31

ah mir ist da noch was eingefallen, das obrige makro nimmt keine rücksicht auf schon vorhandene Daten... es müsste also ungefähr so aussehen

Code: Alles auswählen

sub datum
osheet =thiscomponent.sheets.getbyname("Tabelle1") 'welches tabellenblatt?
ozelle =osheet.getcellrangebyname("c1")  'zelle mit =heute()
stext = ozelle.string
if osheet.getcellrangebyname("a1").string = false then
osheet.getcellrangebyname("a1").string = false else
call calldat
end if
end sub


sub calldat
osheet =thiscomponent.sheets.getbyname("Tabelle1") 'welches tabellenblatt?
ozelle =osheet.getcellrangebyname("c1")  'zelle mit =heute()
stext = ozelle.string
if osheet.getcellrangebyname("b1").string = true then
osheet.getcellrangebyname("a1").string = (stext)
end if 
end sub
hm naja is wahrscheinlich komplizierter als es sein müsste

:roll: aber das klappt so

von Paule » Do, 27.10.2005 13:32

moin

Hab dir da ein kleines makro gebastelt, musst du nur anpassen.
in eine freie Zelle (egal wo, kannst auch ausblenden lassen) schreibst du die funktion =Heute().

Code: Alles auswählen

sub datum
osheet =thiscomponent.sheets.getbyname("Tabelle1") 'welches tabellenblatt?
ozelle =osheet.getcellrangebyname("c1")  'zelle mit =heute()
stext = ozelle.string
ozelle = osheet.getcellrangebyname("b1") 'zu prüfende zelle
if ozelle.string = "" then  'bedingung
osheet.getcellrangebyname("").string = (stext) else
osheet.getcellrangebyname("a1").string = (stext) 'wenn bedingung erfüllt wird c1 ausgegeben (also datum)
end if 

end sub
wahrscheinlich musst du ne schleife einbauen da du es ja nicht nur für 1 zelle brauchst.

Das makro muss jedesmal aktiviert werden sonst funtz es nicht.In deinem fall würde ich es so machen:

Extras ->anpassen->ereignisse
und bei der option dokument speiher das marko zuweisen.

hoffe ich konnte helfen

grüße paule

Problem beim Erstellen eines Makros

von cyberwolf » Do, 27.10.2005 12:25

Hallo zusammen,

ich versuche derzeit ein Makro in eine Tabelle einzufügen. Ich weiß zwar wie der Weg auszusehen hat, aber leider bin ich mit der Syntax von OO.o nicht sehr vertraut.

Ich schreibe derzeit eine Bestelliste für meinen Arbeitgeber. Sie soll den Status der Bestellung und ein Bestelldatum enthalten.

Bisher tragen wir das alles von Hand ein und die Faulheit bringt uns dazu das Bestelldatum wegzulassen. Sehr ärgerlich wenn man wissen will wann eine Ware bestellt wurde.

Nun möchte ich, dass das aktuelle Datum sofort in eine Zelle eingetragen wird, sobald in einer anderen Zelle der Eintrag "Bestellt" auftaucht.

Wie bringe ich der Tabelle das bei? Ich konnte nicht herausfinden wie man a) eine Zelle prüft und b) aus dem Makro heraus in eine Zelle schreibt.

Für sachdienliche Hinweise wäre ich sehr dankbar.

Gruß,
cyberwolf

Nach oben