Programmierhilfe Makro in Basic "Datum zurückgeben"
Moderator: Moderatoren
Programmierhilfe Makro in Basic "Datum zurückgeben"
hey!
ich benötige eine Funktion, die mir, wenn ich einen Wert im Format 24.1.2006 oder 24.01.2006 übergebe, mir den Monat in Form von 1-12 zurückgibt- kann mir das jemand programmieren, in Basic für Calc
danke!
Sascha
ich benötige eine Funktion, die mir, wenn ich einen Wert im Format 24.1.2006 oder 24.01.2006 übergebe, mir den Monat in Form von 1-12 zurückgibt- kann mir das jemand programmieren, in Basic für Calc
danke!
Sascha
-
- ********
- Beiträge: 4330
- Registriert: Di, 22.06.2004 12:02
- Wohnort: 71134 Aidlingen
- Kontaktdaten:
Re: Programmierhilfe Makro in Basic "Datum zurückgeben&
Existiert doch bereits als Funktionsascha11 hat geschrieben:hey!
ich benötige eine Funktion, die mir, wenn ich einen Wert im Format 24.1.2006 oder 24.01.2006 übergebe, mir den Monat in Form von 1-12 zurückgibt- kann mir das jemand programmieren, in Basic für Calc
Code: Alles auswählen
=Monat(DATUM)
Gruß
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
-
- ********
- Beiträge: 4330
- Registriert: Di, 22.06.2004 12:02
- Wohnort: 71134 Aidlingen
- Kontaktdaten:
Hallo Sascha,sascha11 hat geschrieben:danke, aber wenn ich das im Makro aufrufe, erhalte ich die Fehlermeldung
Sub- oder Function Prozedur nicht definiert, hier mein Aufruf:
Datum=Monat(oT1.getCellRangeByName (sBereichtemp))
danke!
Sascha
P.S.: Datum ist ein integer, sBereichtemp enthält B2 als Inhalt, also ein String
Du hast mich falsch verstanden.
Code: Alles auswählen
Monat()
Hier ein kleiner Auszug aus dem Basic Programmierhandbuch von SUN:
Extrahieren von Datums- und Zeitangaben
Day(MyDate) – liefert den Tag des Monats von MyDate
Month(MyDate) – liefert den Monat aus MyDate
Year(MyDate) – liefert das Jahr von MyDate
Weekday(MyDate) – Liefert die Nummer des Wochentags von MyDate
Hour(MyTime) – Liefert die Stunde aus MyTime
Minute(MyTime) – Liefert die Minuten aus MyTime
Second(MyTime) – Liefert die Sekunden aus MyTime
Das Programmierhandbuch (Deutsch) kannst Du von http://docs.sun.com/app/docs/doc/819-1326 herunterladen.
Gruß
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
-
- ********
- Beiträge: 4330
- Registriert: Di, 22.06.2004 12:02
- Wohnort: 71134 Aidlingen
- Kontaktdaten:
Re: danke
Hallo Sascha,sascha11 hat geschrieben:hey!
ich kann leider nur einen String an die Funktion übergeben, kein formatiertes Datum, kann mir jemand das programmieren (z. Bsp.: 24.1.2006 als String oder 24.01.2006?
wenn Du die Funktion Monat() meinst, dann trifft dies nicht zu.
Beispiel: In der Zelle A1 habe ich das Datum 24.01.2006 formatiert als Kategorie Datum und Format tt.mm.jjjj.
Mit der Funktion
Code: Alles auswählen
=Monat(A1)
Gruß
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
hi
hi Peter,
danke für deine Antwort, sorry, ich habe undeutlich geschrieben:
Ich muss an die Funktion im Makro einen String übergeben und habe dazu die Funktion month(myDate) benutzt, die erwartet aber ein Datum, deshalb benötige ich eine Funktion, die meinen String (Datum-> 24.1.2006 oder 2.01.06) nimmt und mir den Monat als integer zurückgibt.
in Basic:
integer programmierte Funktion (string im Format 24.1.2006 ider 2.01.06)
Danke!!
Sascha
danke für deine Antwort, sorry, ich habe undeutlich geschrieben:
Ich muss an die Funktion im Makro einen String übergeben und habe dazu die Funktion month(myDate) benutzt, die erwartet aber ein Datum, deshalb benötige ich eine Funktion, die meinen String (Datum-> 24.1.2006 oder 2.01.06) nimmt und mir den Monat als integer zurückgibt.
in Basic:
integer programmierte Funktion (string im Format 24.1.2006 ider 2.01.06)
Danke!!
Sascha
leider nein
hi Karo,
geht leider nicht!
kommt "sub oder function nicht definiert"!
danke,
Sascha
geht leider nicht!
kommt "sub oder function nicht definiert"!
danke,
Sascha
-
- ********
- Beiträge: 4330
- Registriert: Di, 22.06.2004 12:02
- Wohnort: 71134 Aidlingen
- Kontaktdaten:
Hallo Sascha,sascha11 hat geschrieben:Dim stest As Date
stest = oT1.getCellRangeByName(sBereichtemp).string
Datum=Month(stest)
das funktioniert, solange das Feld nicht NULL ist, denn sobald nichts drinsteht, ist der Wert von stest = 00:00:00
dann liefert Month 12 zurück
hat jemand eine Idee, wie das noch funktionieren kann?
möglicher Weise klappt es so
Code: Alles auswählen
Dim stest As Date
Datum=0
If Not IsNull(oT1.getCellRangeByName(sBereichtemp).string) then
stest = oT1.getCellRangeByName(sBereichtemp).string
Datum=Month(stest)
End If
Gruß
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
-
- ********
- Beiträge: 4330
- Registriert: Di, 22.06.2004 12:02
- Wohnort: 71134 Aidlingen
- Kontaktdaten:
Hallo Sascha,
vielleicht funktioniert das Schlüsselwort IsNull nicht. Probiers mal so
vielleicht funktioniert das Schlüsselwort IsNull nicht. Probiers mal so
Code: Alles auswählen
Dim stest As Date
If oT1.getCellRangeByName(sBereichtemp).string)="" then
Datum=0
else
stest = oT1.getCellRangeByName(sBereichtemp).string
Datum=Month(stest)
End If
Gruß
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
jetzt geht es!
hi Peter,
danke- jetzt geht es!
hast du noch eine Idee, woran es liegt, dass ich hier die Fehlermeldung
"Falscher Wert für Eigenschaft" erhalte?
[code]
If oT1.getCellRangeByName(sBereichtemp3) = "ja" Then
Code
End If
[/code]
Die Variable sBereichtemp3 enthält in diesem Fall den Wert
liste.O3
und hier steht als Text formatiert
"ja"
drin
mit
If (oT1.getCellRangeByName(sBereichtemp3).string) = "ja" Then
und
If (oT1.getCellRangeByName(sBereichtemp3).text) = "ja" Then
geht es auch nicht (selbe Fehlermeldung).
danke!
Sascha
danke- jetzt geht es!
hast du noch eine Idee, woran es liegt, dass ich hier die Fehlermeldung
"Falscher Wert für Eigenschaft" erhalte?
[code]
If oT1.getCellRangeByName(sBereichtemp3) = "ja" Then
Code
End If
[/code]
Die Variable sBereichtemp3 enthält in diesem Fall den Wert
liste.O3
und hier steht als Text formatiert
"ja"
drin
mit
If (oT1.getCellRangeByName(sBereichtemp3).string) = "ja" Then
und
If (oT1.getCellRangeByName(sBereichtemp3).text) = "ja" Then
geht es auch nicht (selbe Fehlermeldung).
danke!
Sascha