Monthly Archives for May 2012
doppelmoppelampel
die stadt frankfurt wird sich was dabei gedacht haben. viele jahre lang hing da eine ampel… jetzt sinds zwei uebereinander…
dem einen nicht lang genug und dem anderen zu lang
per passwortrichtlinie bekommt man beim einen system ein langes passwort aufgezwaengt, und ein anderes system ist damit ueberfordert. single-sign-on waer mal was tolles… aber “das kostet ja nur geld” 😉
weil er es kann oder weil er es nicht besser kann?
braucht der herr ferrari nun zwei parkplaetze, weil er es sich leisten kann oder weil er nicht parken kann?
excel: kalender mit bedingten formatierungen (in vba)
vor langer zeit hab ich schonmal einmal einen kalender mit bedingten formatierungen in excel gebastelt. jetzt habe ich das mal mit vba gemacht… that’s it (eine von 100000 moeglichkeiten in quick & dirty):
Option Explicit Sub Kalender() 'Variablen deklarieren Dim MyStartDate As Date Dim MyEndDate As Date Dim MyTempDate As Date Dim OffsetX As Integer Dim OffsetY As Integer Dim BGWE As Integer Dim BGKW1 As Integer Dim BGKW2 As Integer Dim MyTempKW As Integer Dim Zähler As Integer Dim MyWorksheet As String Dim KWBackgrund As Integer Dim MyHeadLine As Variant Dim i As Integer 'Start- und Endedatum setzen; möglich mit verschiedenen Schreibweisen MyStartDate = "01. Mai 2012" MyEndDate = "31.01.2014" 'Tabellenblatt für den Kalender MyWorksheet = "Tabelle1" 'in welcher Zeile soll der Kalender beginnen? OffsetY = 1 'in welcher Spalte soll der Kalender beginnen? OffsetX = 1 'Hintergrundfarbe für Wochenende BGWE = 15 'Hintergrundfarbe für KW im Wechsel BGKW1 = 0 BGKW2 = 16 'Überschriften MyHeadLine = Array("Datum", "Tag", "KW") 'Inhalt aller Zeilen löschen Rows("1:65536").ClearContents 'Alle Formatierungen löschen Cells.ClearFormats 'Überschriften For i = 0 To UBound(MyHeadLine) Worksheets(MyWorksheet).Cells(OffsetY, OffsetX + i).Value = MyHeadLine(i) Worksheets(MyWorksheet).Cells(OffsetY, OffsetX + i).Font.FontStyle = "Fett" Next 'Kalender ausgeben For Zähler = 0 To DateDiff("d", MyStartDate, MyEndDate) MyTempDate = DateAdd("d", Zähler, MyStartDate) 'Wochenende grau Markieren If Format(MyTempDate, "DDD") = "Sa" Or Format(MyTempDate, "DDD") = "So" Then Worksheets(MyWorksheet).Cells(1 + Zähler + OffsetY, OffsetX + 1).Interior.ColorIndex = BGWE End If 'Farbwechsel für die KW KWBackgrund = IIf(kw_nach_din(MyTempDate) And 1, BGKW1, BGKW2) Worksheets(MyWorksheet).Cells(1 + Zähler + OffsetY, OffsetX + 2).Interior.ColorIndex = KWBackgrund 'aktuellen Tag rot Markieren If MyTempDate = Date Then Worksheets(MyWorksheet).Range(Cells(1 + Zähler + OffsetY, OffsetX), Cells(1 + Zähler + OffsetY, OffsetX + 2)).Interior.Color = vbRed End If 'erste Spalte mit Datum Worksheets(MyWorksheet).Cells(1 + Zähler + OffsetY, OffsetX).Value = MyTempDate 'zweite Spalte mit Wochentag Worksheets(MyWorksheet).Cells(1 + Zähler + OffsetY, OffsetX + 1).Value = Format(MyTempDate, "DDD") 'dritte Spalte mir KW (aber nur am ersten Tag der KW ausgeben) If MyTempKW <> kw_nach_din(MyTempDate) Then Worksheets(MyWorksheet).Cells(1 + Zähler + OffsetY, OffsetX + 2).Value = kw_nach_din(MyTempDate) MyTempKW = kw_nach_din(MyTempDate) End If Next Zähler End Sub Function kw_nach_din(datum As Date) As Byte Dim kw As Date kw = 4 + datum - Weekday(datum, 2) kw_nach_din = (kw - DateSerial(Year(kw), 1, -6)) \ 7 End Function |
das ergebnis ist vergleichbar mit dem von damals:
excel: “Argumenttyp ByRef unverträglich”
vba und die variablendeklaration… au weia. diese fehlermeldung kommt sicher jedem mal unter, der sich etwas mit vba beschaeftigt.
so hat man das mal gelernt mit der mehrfachdeklaration von variablen:
'Variablen deklarieren Dim MyStartDate, MyEndDate, MyTempDate, MyDate As Date |
nun z.b. eine funktion, welche als uebergabeparameter ein datum erwartet. wenn man dieser funktion nun die mit einem datum befuellten variable “MyTempDate” uebergibt, bekommt man die oben abgebildete fehlermeldung. und warum?
dazu muss man wissen, dass vb alle variablen, die nicht explizit mit einem bestimmten datentyp deklariert wurden, als “variant” deklariert. das tolle deklarieren von mehreren variablen in einer zeile funktioniert naemlich garnicht! dann hat ist der typ der o.g. variable “MyTempDate” naemlich “variant”.
um dem problem aus dem weg zu gehen, sollte man einfach alle variablen einzeln deklarieren. ist mehr arbeit, braucht mehr platz… aber funktioniert.
'Variablen deklarieren Dim MyStartDate As Date Dim MyEndDate As Date Dim MyTempDate As Date Dim MyDate As Date |
meine favoriten
von der kaffeeroesterei laier in offenbach… italienischer espresso und samba espresso:
…ich werde mir gleich noch einen davon basteln 😉
fachwerkhaus basteln teil 3
bei freunden habe ich am samstag und sonntag “aufm bau” geholfen. welch arbeit dahinter steckt, habe ich schonmal berichtet. diesmal mussten dielen rausgerissen, die alte schuettung entfernt, kanthoelzer montiert und ausgerichtet und neue schuettung eingefuellt werden. die neue schuettung besteht aus saegespaenen, kalk, sand und wasser.
und heute tut mir wieder alles weh 😉
vmware fusion kaputt nach dem osx update auf 10.7.4
nach dem update auf osx 10.7.4 habe ich beim starten einer virtuellen maschine mit vmware (3.1.1) folgende fehlermeldungen bekommen:
Kernelzonengröße können nicht abgerufen werden.
Initialisierung des Monitorgeräts fehlgeschlagen.
Kein gültiger Peer-Prozess zum Herstllen der Verbindung gefunden.
ein update von vmware fusion auf die version 3.1.4 brachte die erhoffte loesung des problems…
ein haeuschen fuer den av kram
so.. ich habe wieder ein bischen gewerkelt am wochenende. der av kram im wohnzimmer sollte ein neues und massgechneidertes zuhause bekommen. also nix wie hin zum baumarkt des vertrauens und ein paar 18mm multiplex brettchen aus birke zuschneiden lassen. der mann beim zuschnitt war mir gleich symphatisch, denn als er die abmessungen auf meinem zettel gesehen hat, fragte er: “wird das ein 19 zoll rack?”. sehr guter mann 😉
naja.. nicht ganz 19 zoll rack, aber ungefaehr solche abmessungen…
bei sonnenschein im garten zusammengebaut…
und nach trocknen des leims ein paar rollen dran geschraubt und aufgestellt:
ein paar kleinigkeiten muss ich noch daran machen z.b. speakon steckverbindungen fuer die lautsprecherkabel, generell die kabel noch ein wenig aufraeumen und sauber mit kabelbindern versehen… usw.