Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
844to848
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
844to848
844to848
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Makro im Modul kann nicht ausgeführt werden
07.02.2007 12:21:54
Mathias
Hallo Leute,
ich hoffe es kann mir wer helfen.
Ich möchte den unten stehenden Code für mehrere Unserforms innerhalb einer Anwendung verwenden.
Ich lasse den Code mittels eines Change-Ereignisses aus der Userform starten. Jedoch wird die Verarbeitung nicht zugelassen, und statt dessen folgende Fehlermeldung ausgegeben:
"Fehler beim Kompilieren" ... " Unzulässige Verwendung des Schlüsselwortes Me"
Der Code steht in einem Modul, welches beim Change-Ereignis der Textbox ausgeführt wird.
Ich dachte mir, dass ich hier Me als eine Art Genaralist verwenden kann, der den Namen des Userform ersetzt.
Kann mir vielleicht einer sagen, wie es besser geht, oder wie ich den Namen einer Userform deklariere?
Grüße
Mathias
Public

Sub Gradtage1()
'   Hiermit werden die Textboxen ohne "1" belegt
Dim WkSh       As Worksheet  ' Zuordnung des Tabellenblattes
Dim lLetzte    As Long       ' letzte belegte Zeile in Spalte A
Dim DatumStrt  As Date       ' das eingegebene Start-Datum aus txtZeitraumBeginn
Dim DatumEnde  As Date       ' das eingegebene  Ende-Datum aus txtZeitraumEnde
Set WkSh = Worksheets("Gradtage") ' <== den Blattnamen ggf. anpassen !!!
lLetzte = IIf(WkSh.Range("A65536") <> "", 65536, WkSh.Range("A65536").End(xlUp).Row)
DatumStrt = CDate(WkSh.Range("A1").Value)          ' das niedrigste Datum speichern
DatumEnde = CDate(WkSh.Range("A" & lLetzte).Value) ' das    höchste Datum speichern
'   die Eingabe in der TextBox1 auf Datum und Einhaltung der Datumsgrenzen prüfen
If Me.ZeitraumBeginn.Value <> "" Then
If IsDate(Me.txtZeitraumBeginn.Value) And _
CDate(Me.txtZeitraumBeginn.Value) >= DatumStrt And CDate(Me.txtZeitraumBeginn.Value) <= DatumEnde Then
Else
MsgBox "Das Beginndatum ist nicht in Ordnung !", _
48, "   Hinweis für " & Application.UserName
With (Me.txtZeitraumBeginn.Value)
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
Exit Sub
End If
End If
'   die Eingabe in der TextBox2 auf Datum und Einhaltung der Datumsgrenzen prüfen
If (Me.txtZeitraumEnde.Value) <> "" Then
If IsDate(Me.txtZeitraumEnde.Value) And _
CDate(Me.txtZeitraumEnde.Value) >= DatumStrt And CDate(Me.txtZeitraumEnde.Value) <= DatumEnde Then
Else
MsgBox "Das Enddatum ist nicht in Ordnung !", _
48, "   Hinweis für " & Application.UserName
With (Me.txtZeitraumEnde.Value)
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
Exit Sub
End If
'   prüfen, ob das Datum der TextBox2 größer/gleich dem Datum TextBox1 ist
If CDate(Me.txtZeitraumEnde.Value) > CDate(Me.txtZeitraumBeginn.Value) Then
Else
MsgBox "Das Beginndatum ist nicht größer" & vbCrLf & _
" als das Datum Enddatum !", _
48, "   Hinweis für " & Application.UserName
Exit Sub
End If
'   über die 

Function wird das Ergebnis der Addition der Werte, die den
'   einzelnen Datumswerten zugeordnet sind, durchgeführt und eingestellt.
Me.txtGradtage.Value = CDbl(DatAdd(CDate(Me.txtZeitraumBeginn.Value), CDate(Me.txtZeitraumEnde.Value)))
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro im Modul kann nicht ausgeführt werden
07.02.2007 12:30:20
Uduuh
Hallo,
Me kannst du nur im Klassenmodul der UF verwenden.
Übergib die aktuelle UF als Objekt an den Code:
Sub Gradtage1(frmTemp as Userform)
und ersetze im Code alle Me durch frmTemp.
Aufruf in den UFs dann mit
Call Gradtage1(Me)
Gruß aus’m Pott
Udo

AW: Makro im Modul kann nicht ausgeführt werden
07.02.2007 14:35:45
Mathias
Ich weiß leider nicht, wie ich die UF als Objekt übergeben soll? Wo muss das denn hin?
AW: Makro im Modul kann nicht ausgeführt werden
07.02.2007 23:09:09
Lars
Hi,
auch bei VBA "bescheiden" wirst du doch Udos Antwort lesen können, oder?
Da steht alles drin, was du wissen musst.
mfg Lars
@Uduuh -OT- wichtig!
08.02.2007 04:30:17
Luc:-?
Morn Udo,
was hältst du davon?
Gruß Luc :-?
Anzeige
AW: @Uduuh -OT- wichtig!
08.02.2007 13:31:46
Uduuh
Hallo,
Hallo Luc,
dumm, das hier zu fragen (nicht du!). Wozu gibt es Suchmaschinen?
Ich schütze Codes und Tabellen mittlerweile nur noch, damit sie nicht durch dumme Fehler zerschossen werden. Weiterhin nehme ich immer das gleiche PW, weil ich selbst schon oft genug Tabellen- und VBA-Passwörter aushebeln musste.
Wie du ja weißt: Die größte Fehlerquelle sitzt meist vor dem Bildschirm.
Gruß aus’m Pott
Udo

OT: Da hast du sicher recht,...
08.02.2007 23:29:30
Luc:-?
...Udo,
hatte bloß das Gefühl, dass der Antworter noch was anderes will... ;-)
Gruß Luc :-?

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige