Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

hwhCalendar_Developer.xls

Forumthread: hwhCalendar_Developer.xls

hwhCalendar_Developer.xls
08.01.2006 21:49:20
GregorJ
Hallo,
ich verwende den Calendar aus einem Formular in einem Formular,
dabei wird das Datum in eine Textbox eingefügt.
Das funktioniert super,
doch beim öffnen des Calendar, wird nicht immer das aktuelle Datum angezeigt,
manchmal wird es doch angezeigt,
doch dann verschwindet die Markierung des aktuellen Datums nicht
und es wird sich kein Datum der Zukunft übernommen.
Muster: https://www.herber.de/bbs/user/29837.xls
Danke überhaupt für diese praktische Programmierung,
der Calendar ist eine tolle Sache :)
GregorJ
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: hwhCalendar_Developer.xls
09.01.2006 08:48:58
Luschi
Hallo Gregor,
in dem Kalender-Programm gibt es einige Unstimmigkeiten:

vCaller = Application.Caller 'ergibt lt. Excel-Hilfe an der Stelle
'immer Error - es wird also nie der Else-Zweig zutreffen
If IsError(vCaller) Then
'es wird immer die Active Zelle aus der Tabelle "Daten" genommen, weil beim
'Aktivieren des Formulars "Eingabemodul" der Befehl steht:
'Sheets("Daten").Select
'und nicht auf die Tabelle "Alle" zurückgesetzt wird
Set rng = ActiveCell
Else
'triit nie ein
Set rng = ActiveSheet.Buttons(Application.Caller).TopLeftCell.Offset(0, -1)
End If
'hier kommt es jetzt zum eigentlichen Fehler
'Aktive Zelle (Tabelle "Daten") ist leer -» korrekte Datumsanzeige
'Aktive Zelle enthält Text -» Vba-Laufzeitfehler
'Aktive Zelle enthält Zahl -» irgend ein Datum von 1900 entspr. der Zahl
If Not IsEmpty(rng) Then
datAct = rng.Value
Else
datAct = Date
End If
Gruß von Luschi
aus klein-Paris

Anzeige
Lösung gefunden :)
09.01.2006 22:11:16
GregorJ
Danke Luschi,
du hast mir einen Hinweis gegeben und ich habe eine Lösung für meine Anwendung gefunden.
Das Falsche Datum kommt wie du sagst von der Aktivierten Zelle, da die nicht leer ist,

Private Sub UserForm_Activate()
Application.ScreenUpdating = False
Worksheets("Daten").Visible = True
Sheets("Daten").Select 'damit die Daten des Formular in die richtige Tabelle kommen
Range("A1").Select 'leere Zelle Auswählen für den Kalender
Range("A1").Value = "" 'sicherstellen, dass die Zelle leer ist
End Sub

Das Verhalten mit der Markierung und dem Datum der Zukunft, kommt daher,
da ich vier Calendar verwende, für jede Textbox einen,
benötige ich auch je ein Klassenmodul:
Dim Labels(9 To 50) As New clsDays1 'im Modul
With frmCalendar1.Controls("Label" & iLabel) 'im Klassenmodul
und das vier mal.
Aber warum ist das nötig:
Sub SetDate1(myDat As Date)
If Not ActiveCell Is Nothing Then Eingabemodul.TextBoxRedatumNeu.Value = myDat
End Sub
Es geht doch auch so:
Sub SetDate1(myDat As Date)
Eingabemodul.TextBoxRedatumNeu.Value = myDat
End Sub
oder?
wenn ich das richtig verstehe wird damit sichergestellt,
das die Funktion nur ausgeführt wird, wenn eine Zelle ausgewählt wurde
und = myDat nicht ins leere geht, oder?
Gregor
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige