Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
732to736
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
732to736
732to736
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Steuerelement Calendar

Steuerelement Calendar
Josef
Hallo!
Mit

Private Sub CommandButton2_Click()
Me!Calendar1.NextDay
End Sub

kann ich im Kalendersteuerelement immer einen Tag weiter kommen.
Gibt es bitte mittels VBA die Möglichkeit, das Wochenende (Samstag und Sonntag), sowie Feiertage zu überspringen?
Danke
Josef
AW: Falls es dich betrifft! Gruß mit Link
18.02.2006 17:24:02
Josef
Hallo Luc!
Leider bin ich nicht der Josef, der hinter diesem Link steht. Ich sehe auch keine Verbindung zu meiner Frage oder irre ich mich vielleicht diesbezüglich.
Josef
Nein! War für den Anderen! ...dauernd heißen alle
19.02.2006 00:50:50
Luc:-?
...gleich! Wer soll das noch unterscheiden?
Gruß Luc :-?
AW: Steuerelement Calendar
18.02.2006 17:17:56
chris
Hallo das mit Wochenende könntest du so machen.
Feiertage weiss ich keine Lösung.
Soweit mir bekannt bräuchtest du auch erst eine Tabelle mit allen Feiertagen.

Private Sub CommandButton1_Click()
x = ""
Tag = Calendar1.Day + 1
monat = Calendar1.Month
jahr = Calendar1.Year
Datum = Tag & "." & monat & "." & jahr
wochentag = Weekday(Datum)
If wochentag = 7 Then x = 3
If wochentag > 1 And wochentag < 7 Then x = 1
Me!Calendar1.Day = Calendar1.Day + x
End Sub

Anzeige
AW: Steuerelement Calendar
18.02.2006 17:26:44
Josef
Hallo Chris!
Danke für Deine Antwort.
Leider bekomme ich eine Fehlermeldung in dieser Zeile
Me!Calendar1.Day = Calendar1.Day + x
Josef
AW: Steuerelement Calendar
18.02.2006 17:24:09
PeterW
Hallo Josef,
die Wochenenden sind kein Problem:
Option Explicit

Private Sub CommandButton1_Click()
If Weekday(Calendar1, vbMonday) = 5 Then
Calendar1 = Calendar1 + 3
Else
Calendar1 = Calendar1 + 1
End If
End Sub


Private Sub UserForm_Initialize()
If Weekday(Date, vbMonday) > 5 Then
Calendar1 = Date + 8 - Weekday(Date, vbMonday)
End If
End Sub

Feiertage sind etwas aufwändiger, allein schon wegen regionaler Unterschiede. Am einfachsten wäre es, alle in ein Array zu schreiben und für jede Änderung das Array zu durchlaufen. Berücksichtigt werden müssten dann die Sonderfälle Feiertag am Montag und Freitag.
Gruß
Peter
Anzeige
AW: Steuerelement Calendar
18.02.2006 17:34:02
Josef
Hallo Peter!
Danke für Deine Antwort. Die Wochenendlösung passt bestens.
zu
Am einfachsten wäre es, alle in ein Array zu schreiben und für jede Änderung das Array zu durchlaufen
Wie würde hier z.B. so ein Ansatz von einem Array aussehen, wenn der Feiertag z.b. der 6.Jänner wäre oder die Feiertage zu Ostern.
Und wie läßt man dann dieses Array duchlaufen?
Vielleicht könnte ich dan mal an einem Muster weiterbasteln.
Josef
AW: Steuerelement Calendar
18.02.2006 17:37:42
Peter
Servus ein anderer Peter W,
vorschlag meinerseits, schreib die Feiertage in irgendeine Range. Dann könnte man es so lösen.
Private Sub CommandButton1_Click()
Dim intZ As Integer
Dim rngFeier As Range
Dim bolDat As Boolean
Set rngFeier = Range("A1:A3")
Do
Me.Calendar1.NextDay
Select Case Weekday(Me.Calendar1.Value, vbMonday)
Case vbSaturday: bolDat = True
Case vbSunday: bolDat = True
End Select
For intZ = 0 To rngFeier.Rows.Count - 1
If CDbl(Me.Calendar1.Value) <> CDbl(Cells(rngFeier.Row + intZ, rngFeier.Column)) _
And Not bolDat Then
bolDat = False
Else: bolDat = True: End If
Next
If bolDat = False Then
Exit Do
Else: bolDat = False: End If
Loop
End Sub

MfG Peter
Anzeige
AW: Steuerelement Calendar
18.02.2006 17:45:13
Josef
Hallo WernerW!
Danke für Deine Antwort.
Ich habe Deine lösung gerade getestet.
Ich bekomme die Fehhlermeldung
Objekt unterstützt diese Eigenschaft oder Methode nicht.
Markiert wird
Me.Calendar1.NextDay
Josef
AW: Steuerelement Calendar
18.02.2006 17:58:17
Josef
Hallo Peter W!
Tut mir sehr leid mit der falschen Anrede. Ich entschuldige mich.
Habe jetzt Dein Muster getestet
Ich bekomme jetzt den gleichen Fehler bei
Select Case Weekday(Me.Calendar1.Value, vbMonday)
Kann es vielleicht an der Excel Version liegen? Zu Hause arbeite ich mit Excel 2000
Josef
Anzeige
AW: Steuerelement Calendar
18.02.2006 17:58:24
Josef
Hallo Peter W!
Tut mir sehr leid mit der falschen Anrede. Ich entschuldige mich.
Habe jetzt Dein Muster getestet
Ich bekomme jetzt den gleichen Fehler bei
Select Case Weekday(Me.Calendar1.Value, vbMonday)
Kann es vielleicht an der Excel Version liegen? Zu Hause arbeite ich mit Excel 2000
Josef
AW: Steuerelement Calendar
18.02.2006 18:04:36
Peter
Servus,
überhaupt kein Thema nicht. Kann sein versuchs mal mit der Ansprache wie es bei dir schon funktioniert hat. Bin in der 2000 Version nicht so bewandert.
Mit der Ansprache von dir Me!Calender klappts bei mir auf jeden Fall nicht.
Wenns net funtzt lad mal ein schlankes Bsp. hoch.
Private Sub CommandButton1_Click()
Dim intZ As Integer
Dim rngFeier As Range
Dim bolDat As Boolean
Set rngFeier = Range("A1:A3")
Do
Me!Calendar1.NextDay
Select Case Weekday(Me!Calendar1.Value, vbMonday)
Case vbSaturday: bolDat = True
Case vbSunday: bolDat = True
End Select
For intZ = 0 To rngFeier.Rows.Count - 1
If CDbl(Me!Calendar1.Value) <> CDbl(Cells(rngFeier.Row + intZ, rngFeier.Column)) _
And Not bolDat Then bolDat = False
Else: bolDat = True: End If
Next
If bolDat = False Then
Exit Do
Else: bolDat = False: End If
Loop
End Sub

MfG Peter
Anzeige
AW: Steuerelement Calendar
18.02.2006 18:15:49
Josef
Hallo Peter!
Jetzt hast du mich auf den Fehler gebracht.
Es funktioniert komischerweise mit Me! in Excel 2000. eigenartig.
Danke
Eine Frage noch zum Calendar
Ist es vielleicht mit dieser Methode möglich, dass z.B. beim Anklicken vom 6.1.06 gar nichts passiert, dass der Druck auf den Button6 keinen Befehl ausführt, also tot bleibt?
Josef
AW: Steuerelement Calendar
18.02.2006 18:21:01
Peter
Servus,
mhhm k.a. aber Trick 17 wäre nach dem Muster. Nicht vergessen die andere Ansprache, wobei mir das ein Rätsel ist.
Public dblCal As Double
Private Sub Calendar1_Click()
If dblCal = 0 Then dblCal = Date
If Day(Me.Calendar1.Value) = 6 Then
Me.Calendar1.Value = dblCal
Else: dblCal = Me.Calendar1.Value
End If
End Sub

MfG Peter
Anzeige
AW: Steuerelement Calendar
18.02.2006 18:33:10
Josef
Hallo Peter!
Ich nehme mal an dass man auch so das Feiertagproblem lösen kann. Nur müßte man dann auch den jeweiligen Monat hineinnehmen,sonst würde in jedem Monat der 6. lahmgelegt werden.
Josef
AW: Steuerelement Calendar
18.02.2006 18:23:43
Josef
Hallo Peter!
Ich habe gerade festgestellt, dass beim Ausführen des Makros als Wochenende immer Sonntag und Montag angenommen wird.
Josef
AW: Steuerelement Calendar
18.02.2006 18:37:40
Peter
Servus,
was hast du den für ein komisches Excel ;-) aus der OH:
Konstante Wert Beschreibung
vbSunday 1 Sonntag
vbMonday 2 Montag
vbTuesday 3 Dienstag
vbWednesday 4 Mittwoch
vbThursday 5 Donnerstag
vbFriday 6 Freitag
vbSaturday 7 Samstag

Dann ändere in der Select Case Anweisung folgende Zeilen,
Case vbSaturday: bolDat = True
Case vbFriday: bolDat = True
du wirst aber selber zugeben das, dass keinen Sinn macht, oder ?
MfG Peter
Anzeige
AW: Steuerelement Calendar
18.02.2006 18:59:20
Horst
Hi,
mit dem Calendar im Multipage wirst du nicht viel Freude haben.
mfg Horst
AW: Steuerelement Calendar
18.02.2006 19:02:28
Josef
Hallo Horst!
Das weiß ich, ist ja auch nur ein Muster. Im Original liegt das Steuerelement außerhalb der Multipage.
Danke
Josef
AW: Steuerelement Calendar
18.02.2006 19:00:30
Josef
Hallo Peter!
mit
Select Case Weekday(Me.Calendar1.Value, vbSunday)
funktioniert es jetzt richtig.
Ich habe vbMonday auf vbSunday geändert.
Bei Deinem 2.Makro wenn ich den 6.Jänner anklicke so wird der heutige Tag, 18.02.06 automatisch aktiviert.
Josef
Anzeige
AW: Steuerelement Calendar
18.02.2006 19:05:50
Peter
Servus,
na ist doch schön. Ja er geht auf das zuletzt gewählte Datum, auser er kennt noch kein zuletzt gewähltes Datum, dann geht er auf das heutige Datum.
Sag ja Trick 17b, was anderes fällt mir nicht ein.
MfG Peter
AW: Steuerelement Calendar
18.02.2006 19:15:45
Josef
Hallo Peter!
Danke für Deine Geduld und Deine Mühe.
Ich wünsache Dir noch einen schönen Abend.
Josef

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige