Mittwoch, 9. September 2015

Kalender für 10.000 Jahre programmieren mit VisualBasic Excel, Access VBA


Kalender für 10.000 Jahre programmieren mit VisualBasic Excel, Access VBA

Author D.Selzer-McKenzie

Video: http://youtu.be/9JDwqP0Wb1Y

In diesem Video zeige ich Ihnen, wie Sie ganz einfach Jahreskalender für 100000 Jahre erstellen können. Sehen Sie im Film, hier habe ich nur eingegeben die Jahre 2015, 1492,1871,2,792,2587 n.Chr. und für das jeweilige Jahr wird ein konkreter Kalender erstellt. Jeder Tag hat sogar eine eigene Farbe. Möglich sind also alle Kalenderjahre ab 1.nach Christi bis 9.999 nach Christi.

Den SourceCode, der für Visual Basic, Excel, Access VBA und Visual C gleich ist, können Sie kostenlos herunterladen im Forum


 

Hier der SourceCode:

Option Explicit

 

Sub Jahreskalender()

   Dim ws As Worksheet

   Dim varYear As Variant

   Dim bytMonth As Byte

   Dim bytDay As Byte

   Dim bytWeekday As Byte

   Dim strWeekday As String

   Dim bytWeekNo As Byte

   Dim bytDummy As Byte

  

   ' Das Jahr des Kalenders der ausgegeben werden soll

   varYear = Range("B2")

  

   ' Falls bereits ein Blatt mit dem Namen "Jahr xxxx"

   ' entsteht, soll dieses gelöscht werden

   For Each ws In Worksheets

      If ws.Name = "Jahr " & varYear Then

         ws.Delete

      End If

   Next ws

  

   ' Ein neues Tabellenblatt mit dem Namen "Jahr xxxx"

   ' einfügen

   Worksheets.Add

   ActiveSheet.Name = "Jahr " & varYear

  

   ' Monatsüberschriften einfügen und formatieren

   For bytMonth = 1 To 12

      With Cells(1, bytMonth)

         .Value = Format(DateSerial(varYear, bytMonth, 1), _

                         "mmmm")

         .Interior.ColorIndex = 36

         .Font.Bold = True

      End With

     

      ' Tage aufbereiten

      For bytDay = 1 To Day(DateSerial _

                           (varYear, bytMonth + 1, 0))

         With Cells(bytDay + 1, bytMonth)

           bytWeekday = Weekday(DateSerial _

                               (varYear, bytMonth, bytDay))

          

           ' Wochentage in Textformat aufbereiten

           Select Case bytWeekday

              Case 1

                 strWeekday = "Sonntag"

              Case 2

                 strWeekday = "Montag"

              Case 3

                 strWeekday = "Dienstag"

              Case 4

                 strWeekday = "Mittwoch"

              Case 5

                 strWeekday = "Donnerstag"

              Case 6

                 strWeekday = "Freitag"

              Case 7

                 strWeekday = "Samstag"

           End Select

          

           ' Wochentage und Tage eintragen

           .Value = bytDay & " " & strWeekday & ", "

 

           ' Sontag mit entsprechender Farbe hervorheben

           If bytWeekday = 1 Then

              .Interior.ColorIndex = 45

           End If

          

             ' Montag mit entsprechender Farbe hervorheben

           If bytWeekday = 2 Then

              .Interior.ColorIndex = 33

           End If

           

           ' Dienstag mit entsprechender Farbe hervorheben

           If bytWeekday = 3 Then

              .Interior.ColorIndex = 39

           End If

            

           ' Mittwoch mit entsprechender Farbe hervorheben

           If bytWeekday = 4 Then

              .Interior.ColorIndex = 50

           End If

            

            ' Donnerstag mit entsprechender Farbe hervorheben

           If bytWeekday = 5 Then

              .Interior.ColorIndex = 20

           End If

              

            ' Freitag mit entsprechender Farbe hervorheben

           If bytWeekday = 6 Then

              .Interior.ColorIndex = 4

           End If

           

            ' Samstag mit entsprechender Farbe hervorheben

           If bytWeekday = 7 Then

              .Interior.ColorIndex = 15

           End If

              

 

 

           ' Kalenderwoche eintragen

           bytWeekNo = _

              Format(DateSerial(varYear, bytMonth, bytDay), "ww")

           If bytDummy < bytWeekNo And strWeekday = "Mo" Then

              bytDummy = bytWeekNo

              .Value = .Value & " (" & bytDummy & ")"

              ' Formatierung Kalenderwoche

              With .Characters _

                   (Start:=InStr(1, .Value, "("), _

                                 Length:=4).Font

                 .Size = 8

                 .Color = vbRed

              End With

           End If

 

         End With

      Next bytDay

   Next bytMonth

End Sub





Keine Kommentare:

Kommentar veröffentlichen

Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.