Seite 1 von 2

Über ein Makro Datum fix einsetzen wenn Eintrag in Zelle

Verfasst: Fr 7. Okt 2011, 00:28
von shorty_0808
Hallo,

ich bin neu hier und arbeite erst seit kurzem mit LibreOffice und deren Makro-Funktion.
Ich hab auch schon, was mein Problem betrifft, hier gesucht, aber leider nichts passendes gefunden.

Ich habe eine Tabelle und möchte darin das Budget übersichtlicher machen. Dafür hab ich mehrere Spalten. Auf dieses bei meinem Problem ankommenden Spalte sind "Beschreibung" und "Datum".
Wenn ich jetzt in die Spalte "Beschreibung" etwas eingebe, soll in der selben Zeile das aktuelle Datum fix gesetzt werden.
Dazu habe ich über Extras, Makros, Makros Verwalten, LibreOffice Basic unter BudgetTracking (Name des Sheets) ein neues Modul 1 angelegt und folgenden Code eingegeben:

REM ***** BASIC *****
Sub Main
If Intersect (Range("D2:D10001"),Target) Is Nothing Then Exit Sub
If Target.Value="No" Then Exit Sub
If Target.Value="Yes" Then Cells(Target.Row,2).Value=Date
End If
End Sub

Leider bekomme ich immer wieder die Fehlermeldung: BASIC-Syntaxfehler. Else/Endif ohne If.
Ich hab schon gegooglet und nichts gefunden, am Ende dreimal End If eingtragen oder das zweite, dritte If oder beide mit Else ausgetauscht. Es bleibt bei dem selben Fehler.

Ich hoffe und bitte das Ihr mir helfen könnt!!!
Vielen Dank im Voraus!!! :)

Gruß
Shorty

Re: Über ein Makro Datum fix einsetzen wenn Eintrag in Zelle

Verfasst: Fr 7. Okt 2011, 06:04
von paljass
Hallo Shorty,
ich hab jetzt nicht so viel Ahnung vom Programmieren, daher sei dir das Forum LibreOffice Programmierung anempfohlen.

Aus meiner Zeit, zu der ich mal selbst ein bisschen programmiert habe, meine ich aber zu wissen, dass ein Endif ausschließlich in Verbindung mit If - Then - Else erscheinen darf.
Da du aber in sich abgeschlossene If-Anweisungen benutzt, kannst du Endif eigentlich löschen.
Versuchs mal, und wenns nicht geht, dann LibreOffice Programmierung.

Gruß
paljass

Re: Über ein Makro Datum fix einsetzen wenn Eintrag in Zelle

Verfasst: Fr 7. Okt 2011, 07:13
von komma4
Willkommen im Forum
shorty_0808 hat geschrieben:und folgenden Code eingegeben
LibreOffice arbeitet mit der Programmiersprache BASIC, nicht mit VBA!
Eine Programmierung setzt den Einsatz von (nicht-trivialen!) LISTENER voraus

Das wäre Dein Suchbegriff, wenn Du das mit Programmierung erledigen willst; Beispiel auch auf meiner Website onColumnChange
shorty_0808 hat geschrieben:Wenn ich jetzt in die Spalte "Beschreibung" etwas eingebe, soll in der selben Zeile das aktuelle Datum fix gesetzt werden.
Aber, das geht auch ohne Makros

Wenn "Beschreibung" die Spalte A ist und das Datum in Spalte G soll, dann nehme (für G2) folgende Formel und ziehe sie nach unten

Code: Alles auswählen

=WENN(A2<>"";WENN(G2<>"";G2;JETZT());"")
Es müssen Extras>Optionen...>LibreOffice Calc>Berechnen>Zirkuläre Referenzen aktiviert sein.


Hilft Dir das weiter?

Re: Über ein Makro Datum fix einsetzen wenn Eintrag in Zelle

Verfasst: Mo 10. Okt 2011, 13:31
von balu
Hallo Shorty,

das Grundgesetz einer jeden IF-THEN... lautet:
Was mit IF beginnt, muss mit EndIF, oder End IF enden!

Ohne es genauer überprüft zu haben (weil VBA), müsste rein theoretisch dein Code wie folgt aussehen.

Code: Alles auswählen

Sub Main
If Intersect (Range("D2:D10001"),Target) Is Nothing Then Exit Sub
EndIf
If Target.Value="No" Then Exit Sub
EndIf
If Target.Value="Yes" Then Cells(Target.Row,2).Value=Date
End If
End Sub
Ansonsten würd ich den Formelvorschlag von Winfried nehmen.


Gruß
balu

Re: Über ein Makro Datum fix einsetzen wenn Eintrag in Zelle

Verfasst: Mo 10. Okt 2011, 16:24
von shorty_0808
Hallo,

@balu, das hab ich auch schon versucht gehabt, das Problem ist das LibreOffice Basic verwendet und nicht VBA.

Leider funktioniert das mit der WENN Funktion so auch nicht.


Ich schau die Tage nochmal was ich machen kann, bis hierhin aber vielen Dank für die Antworten.

:)

Re: Über ein Makro Datum fix einsetzen wenn Eintrag in Zelle

Verfasst: Mo 10. Okt 2011, 18:01
von paljass
Hi shorty,
Leider funktioniert das mit der WENN Funktion so auch nicht.
...und was :?:

Gruß
paljass

Re: Über ein Makro Datum fix einsetzen wenn Eintrag in Zelle

Verfasst: Mo 10. Okt 2011, 18:20
von komma4
shorty_0808 hat geschrieben:das Problem ist das LibreOffice Basic verwendet
Das ist beileibe nicht das Problem :geek:

Re: Über ein Makro Datum fix einsetzen wenn Eintrag in Zelle

Verfasst: Sa 15. Okt 2011, 16:25
von shorty_0808
Die WENN_Funktion funktioniert doch, hatte das mit dem zikulären Rechnen vergessen ein zu schalten.

Was jetzt aber leider passiert, der haut mir die bedingte Formatierung aus den Zellen. Zur Übersicht hatte ich jede zweite Zeile bunt gemacht. Sobald ich jetztdie Wenn Funktion eintrage haut es die raus. :(

Re: Über ein Makro Datum fix einsetzen wenn Eintrag in Zelle

Verfasst: Sa 15. Okt 2011, 18:10
von komma4
shorty_0808 hat geschrieben:Zur Übersicht hatte ich jede zweite Zeile bunt gemacht. Sobald ich jetztdie Wenn Funktion eintrage haut es die raus. :(

Kann ich nicht bestätigen (LO 3.4.3)

Bedingte Formatierung bleibt erhalten, wenn ich eine Formel eintrage und nach unten ziehe.

Welche Bedingung hast Du genommen?

Re: Über ein Makro Datum fix einsetzen wenn Eintrag in Zelle

Verfasst: Sa 15. Okt 2011, 18:46
von shorty_0808
Ich hab eine neue Bedinung mit:

Code: Alles auswählen

ISTGERADE( ZEILE() )


eingegeben, sowie der Vorlage mit Umrandung und Farbe.

Die hab vor der Wenn-Funktion gesetzt. Tue ich jetzt die Funktion eiongeben, fehlt in den jeder zweiten Zeile der Spalte die Farbe.