Feiertagsabgleich

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: Feiertagsabgleich

von Hömmelmann » Mi, 28.03.2007 08:33

Hallo Hermann,

mit Leerspalten hatte ich nicht gerechnet, obwohl mich deine Spaltenangabe
...mit den Tagen 1. bis 31. des Monates in den Zeilen a2 bis AK2;...
schon stutzig gemacht hat.

Aber mit folgendem Code läßt sich das Problem dann doch recht einfach beheben:

Code: Alles auswählen

sub FeiertageFaerben
	dim monat as integer
	dim tag as integer
	dim zeile as integer
	dim spalte as integer
	doc=thiscomponent
	ft=doc.sheets(12)
	for zeile = 0 to 12
		monat=month(ft.getcellbyposition(0,zeile).value)
		tag  =day(ft.getcellbyposition(0,zeile).value)
		zm=doc.sheets(monat-1)
		for spalte = 0 to 40 '40 ist hier angenommener Wert für die äußerst rechte Spalte
			if day(zm.getcellbyposition(spalte,1).value) = tag then
				zm.getcellbyposition(spalte,1).CellBackColor = rgb(255,255,0)
				exit for
			end if
		next
	next
end sub
Ich habe hier lediglich eine Definition (spalte) eingefügt und statt der direkten Zuweisung der Farbe eine Suchschleife eingebaut.

Gruß, Friedhelm

Re: Feiertagsvergleich

von janher62 » Di, 27.03.2007 23:17

Sitze schon an einem Folgeproblem:

Der Code von Hömmelmann funktioniert soweit einwandfrei bis zu dem Teil, wo zwischen den Datumszellen sich eine Leerzelle befindet. Und genau das trifft bei meinem Kalender zu. Tja, vielleicht hat ja jemand eine Idee.



Hermann

Re:Feiertage

von janher62 » Di, 27.03.2007 19:10

WOW

Bin hin und weg; jetzt ist mein Problem an dem ich schon länger bastelte gelöst. Wäre noch schöner, wenn ich begreifen würde, was sich "hinter den Zeilen" abspielt.
Danke noch einmal.

Hermann

von Hömmelmann » Di, 27.03.2007 12:07

Hallo Hermann,

ich habe mal eine Tabelle nach deinen Angaben gebastelt und die Feiertage mit folgendem Code gelb eingefärbt:

sub FeiertageFaerben
dim monat as integer
dim tag as integer
dim zeile as integer
doc=thiscomponent
ft=doc.sheets(12)
for zeile = 0 to 12
monat=month(ft.getcellbyposition(0,zeile).value)
tag =day(ft.getcellbyposition(0,zeile).value)
zm=doc.sheets(monat-1)
zm.getcellbyposition(tag-1,1).CellBackColor = rgb(255,255,0)
next
end sub

Versuchs mal.


Gruß, Friedhelm

Feiertagsabgleich

von janher62 » Di, 27.03.2007 08:06

Bin noch ein ziemliche Newbie in Sachen Basic und komme nicht weiter bei folgendem Problem:

In Calc habe ich eine Kalenderdatei mit zwölf Tabellenblättern in denen die einzelnen Monate aufgelistet sind. ZB in Tabellenblatt 1 steht der Monat Januar mit den Tagen 1. bis 31. des Monates in den Zeilen a2 bis AK2; fortlaufend bis Tabelle 12 mit dem Monat Dezember.
Die 13.te Tabelle listet in der Spalte a1:a13 die Feiertage des Jahres auf.
Wie schaffe ich es, dass die Feiertage per Macro abgeglichen werden und die entsprechende Zelle eines Tabellenblattes mit Übereinstimmung eines Feiertages farblich hinterlegt wird?

Code: Alles auswählen

Sub zellenfarben
oSheet = thisComponent.getCurrentController.getActivesheet()

 For x = 1 To 1 Step 1     'Zeile   
    For y = 0 To 38           ' Spalte 
        oZelle = oSheet.getCellByPosition(y,x)
        If oZelle.string = "Sa" Then
         
          For i = 0 to 22  'Zählwert 23 Zellen
             oSheet.getCellByPosition(y,x+i).CellBackColor =_
     rgb(255,255,0)
     oSheet.getCellByPosition(y+1,x+i).CellBackColor =_
     rgb(255,255,0)
           next
 
      end if
     Next y
  Next x 
End Sub

Obiges Beispiel dient der Wochenendhinterlegung eines Samstages. Damit endet jedoch auch schon meine Schlauheit. Vielen Dank für die Hilfe schon vorweg.

Hermann

Nach oben