Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
716to720
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
716to720
716to720
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige