Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

...(ByVal Cancel As MSForms.ReturnBoolean)

Forumthread: ...(ByVal Cancel As MSForms.ReturnBoolean)

...(ByVal Cancel As MSForms.ReturnBoolean)
02.02.2007 08:36:17
Peter
Hallo und guten Morgen,
ich habe eine Excel-Anwendung, bei der in einer Userform nachstehender Code verwendet wird. Auf vielen PCs läuft das problemlos. Auf manchen PCs jedoch kommt beim Start der Anwendung die Meldung:
Datei nicht gefunden? Was kann ich da machen? Ich denke die MS-Forms sind auf jedem PC drauf? Wer weiss da Abhilfe.

Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Dim xLen As Integer
xLen = Len(TextBox1.Text)
If xLen > 0 And xLen < 10 Then
Cancel = True
End If
End Sub

Vielen Dank für Euere Hilfe
Peter
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ...(ByVal Cancel As MSForms.ReturnBoolean)
02.02.2007 09:44:36
Ramses
Hallo
Die MSForms-Object Library vielleicht schon, aber der Verweis darauf u.U. nicht.
Schau mal ob im VB-Editor der Verweis auf
C:\Windows\System32\FM20.DLL
gesetzt ist, wenn nicht mal aktivieren und deine Datei neu öffnen.
Gruss Rainer
Hallo Rainer
02.02.2007 11:05:45
Peter
Hallo Rainer,
nachdem die Datei von meinem Rechner kommt und bei mir der Verweis gesetzt ist, müsste es doch auf den anderen Rechnern auch sein, da sich ja gesetzte Verweise mit der Datei mitkopieren.
Da es sich bei dieser Textbox um eine Eingabebox für Datum handelt, kann es sein, daß noch eine andere DLL mitangesprochen wird?
Danke
Peter S
Anzeige
AW: Hallo Rainer
02.02.2007 11:16:36
Ramses
Hallo
Die gesetzten Verweise gelten grundsätzlich immer nur auf deinem Rechner !!
Vielleicht hat EXCEL auch ein problem die Datei zu finden, oder sie wurde nicht korrekt installiert.
Der Verweis auf die FM20.DLL wird normalerweise automatisch von EXCEL gesetzt, sobald der User eine USERFORM im VB-Editor erzeugt/anlegt.
Sonst nicht.
Schreib in das Workbook_Open Ereignis an die erste Stelle

Private Sub Workbook_open()
SetReference_to_FM20DLL
End Sub

und kopiere diesen Code in ein Modul deiner Mappe
Sub SetReference_to_FM20DLL()
On Error GoTo err_message
With Application.VBE.ActiveVBProject.References
.AddFromFile "C:\Windows\system32\fm20.dll"
End With
Exit Sub
err_message:
Select Case Err.Number
Case 32813
'Der Verweis existiert bereits
Case Else
MsgBox Err.Number & vbCrLf & Err.Description, vbCritical + vbOKOnly, "Fehler"
Exit Sub
End Select
End Sub
Dann wird der Verweis beim öffnen der Mappe automatisch gesetzt.
Gruss Rainer
Anzeige
;
Anzeige

Infobox / Tutorial

Umgang mit "ByVal Cancel As MSForms.ReturnBoolean" in Excel VBA


Schritt-für-Schritt-Anleitung

Um das Problem mit ByVal Cancel As MSForms.ReturnBoolean in deiner Excel-Anwendung zu beheben, folge diesen Schritten:

  1. Öffne die Excel-Datei und gehe zum Visual Basic Editor (drücke ALT + F11).

  2. Überprüfe die Verweise im VB-Editor:

    • Klicke auf Extras > Verweise.
    • Stelle sicher, dass der Verweis auf die FM20.DLL gesetzt ist. Sollte dieser fehlen, aktiviere ihn.
  3. Füge den folgenden Code zum Workbook_Open-Ereignis hinzu, um den Verweis automatisch zu setzen:

    Private Sub Workbook_Open()
       SetReference_to_FM20DLL
    End Sub
  4. Erstelle ein neues Modul und füge diesen Code ein:

    Sub SetReference_to_FM20DLL()
       On Error GoTo err_message
       With Application.VBE.ActiveVBProject.References
           .AddFromFile "C:\Windows\system32\fm20.dll"
       End With
       Exit Sub
    err_message:
       Select Case Err.Number
           Case 32813 'Der Verweis existiert bereits
           Case Else
               MsgBox Err.Number & vbCrLf & Err.Description, vbCritical + vbOKOnly, "Fehler"
               Exit Sub
       End Select
    End Sub
  5. Speichere die Datei und öffne sie erneut, um sicherzustellen, dass die Änderungen wirksam sind.


Häufige Fehler und Lösungen

  • Fehler: Datei nicht gefunden

    • Lösung: Stelle sicher, dass die FM20.DLL auf dem betroffenen PC vorhanden ist und der Verweis im VB-Editor aktiv ist.
  • Fehler bei der TextBox-Validierung

    • Wenn der Code ByVal Cancel As MSForms.ReturnBoolean nicht ordnungsgemäß funktioniert, überprüfe die Eingabewerte und stelle sicher, dass die TextBox korrekt konfiguriert ist.

Alternative Methoden

Wenn du weiterhin Probleme hast, kannst du folgende Alternativen ausprobieren:

  • Verwende die Standard-UserForm-Validierung: Anstelle von ByVal Cancel As MSForms.ReturnBoolean, nutze einfach If-Bedingungen, um die Eingabe zu prüfen und eine Fehlermeldung anzuzeigen, ohne die Validierung zu unterbrechen.

  • Nutze ein anderes Steuerelement: Manchmal kann es sinnvoll sein, ein anderes Steuerelement wie ein Dropdown oder einen Kalender zu verwenden, um die Eingaben zu steuern.


Praktische Beispiele

Hier ein einfaches Beispiel, wie du die TextBox1_BeforeUpdate-Ereignisprozedur implementieren kannst:

Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
    Dim xLen As Integer
    xLen = Len(TextBox1.Text)
    If xLen > 0 And xLen < 10 Then
        Cancel = True 'Stoppt die Eingabe, wenn die Bedingungen nicht erfüllt sind.
        MsgBox "Bitte gib ein gültiges Datum ein.", vbExclamation
    End If
End Sub

Dieses Beispiel demonstriert, wie du die Eingabe validieren und eine Warnung ausgeben kannst, falls die Eingabe nicht den Anforderungen entspricht.


Tipps für Profis

  • Verwende Option Explicit: Dies zwingt dich, alle Variablen zu deklarieren und hilft, Fehler zu vermeiden.
  • Dokumentiere deinen Code: Füge Kommentare hinzu, um den Zweck jeder Funktion zu erklären, besonders wenn du komplexe Logik umsetzt.
  • Teste auf verschiedenen PC-Konfigurationen: Da die MSForms-Bibliothek von der Installation der Office-Version abhängt, teste deine Anwendung auf verschiedenen Rechnern.

FAQ: Häufige Fragen

1. Was ist MSForms.ReturnBoolean?
MSForms.ReturnBoolean ist ein Datentyp, der in VBA verwendet wird, um die Rückgabe von Funktionen zu steuern, die von Formularelementen aufgerufen werden. Es ermöglicht, Eingaben zu validieren und zu entscheiden, ob die Eingabe akzeptiert oder abgebrochen werden soll.

2. Wie aktiviere ich den Verweis auf die FM20.DLL?
Du kannst den Verweis aktivieren, indem du im VB-Editor auf Extras > Verweise gehst und die FM20.DLL aus der Liste auswählst. Wenn sie nicht angezeigt wird, kannst du sie manuell hinzufügen, wie im Abschnitt "Schritt-für-Schritt-Anleitung" beschrieben.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige