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

Laufzeitfehler 380

Forumthread: Laufzeitfehler 380

Laufzeitfehler 380
04.11.2002 19:56:08
Markus
folgendes Makro löst den oben genannten Laufzeitfehler aus:
"Eigenschaft Value konnte nicht gesetzt werden. Ungültiger Eigenschaftenwert."

Sub Workbook_Open()
Eingabe1.Show <--------Hier bleibt der Debugger stehen
End Sub

Ich möchte das Userform beim Öffnen der Datei sofort anzeigen.
Komischerweise geht es manchmal, manchmal aber auch nicht!
Für Hilfe Danke im voraus!

Gruß
Markus

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Laufzeitfehler 380
04.11.2002 20:03:21
andre
Hallo Markus,
-ist das Makro in DieseArbeitsmappe?
-läuft das userform sonst Problemlos?
gruss andre
Re: Laufzeitfehler 380
04.11.2002 20:09:36
Oliver S
Hi,

versuch doch mal anstelle von "Sub Workbook_Open()" den Befehl "Private Sub Workbook_Activate()".

Also in Deinem Fall hieße das dann

Private Sub Workbook_Activate()
Eingabe1.Show
End Sub

Vielleicht klappt es ja so. Bei mir funzt es jedenfalls.

MfG,
Oliver

Anzeige
Re: Laufzeitfehler 380
04.11.2002 20:10:40
Hajo_Zi
Hallo Markus

der Copde ist richtig. Hat die Userform den Namen Eingabe??
Hast Du mal im Einzelschritt den Code weiter laufen lassen??

ich Vermute der Fehler ist in
Private Sub UserForm_Activate()
Private Sub UserForm_Initialize()

oder ähnlichen Aktionen beim Start der Userform

der Fehler sagt ja
"380 Ungültiger Eigenschaftswert"

Gruß Hajo

Anzeige
Re: Laufzeitfehler 380
05.11.2002 20:34:45
Markus
Hallo zusammen,
Danke für eure reichhaltigen Tips.
Tatsächlich rufe ich folgendes auf:
Private Sub Userform_initialize()

heute = Now()
heute = heute - 3
ComboBox4.RowSource = "Daten!c2:c367" 'Hier steht das Datum von 1.1.2002 - 31.12.2002
ComboBox4.Value = Format(CDate(heute), "d. MMMM YYYY")
^^^^^^^^^^^^^^^Hier ensteht der Fehler!
ComboBox5.RowSource = "Daten!c2:c367"
heute = heute + 1
ComboBox5.Value = Format(CDate(heute), "d. MMMM YYYY")

Starte ich nun mein Userform innerhalb der Entwicklungsumgebung, bekomme ich keine Fehlermeldung.

Kann mir da jemand helfen?
(Falls jemand ne bessere Idee hat, raus damit! :-)
Danke!

Gruß Markus

Anzeige
Re: Laufzeitfehler 380
06.11.2002 05:29:05
andre
Hallo Markus,
so seltsam es klingt, aber der Inhalt von RowSource ist kein Range, sondern ein Text mit dem Inhalt =Range(...).address oder kürzer ="Tabelle..."
gruss andre
;
Anzeige

Infobox / Tutorial

Laufzeitfehler 380 in Excel VBA beheben


Schritt-für-Schritt-Anleitung

Um den Laufzeitfehler 380 zu beheben, folge diesen Schritten:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.
  2. Navigiere zur richtigen Stelle:

    • Stelle sicher, dass dein Makro in DieseArbeitsmappe oder dem entsprechenden Modul platziert ist.
  3. Ändere die Subroutine:

    • Ersetze Sub Workbook_Open() durch Private Sub Workbook_Activate() in deinem Code.
      Private Sub Workbook_Activate()
      Eingabe1.Show
      End Sub
  4. Überprüfe die UserForm:

    • Stelle sicher, dass der Name der UserForm korrekt ist (z.B. Eingabe).
  5. Debugging:

    • Gehe Schritt für Schritt durch den Code, indem du F8 drückst, um die Ursache des Fehlers besser zu verstehen.

Häufige Fehler und Lösungen

  • Laufzeitfehler 380: Ungültiger Eigenschaftswert:

    • Dieser Fehler tritt häufig auf, wenn versucht wird, einen ungültigen Wert in eine Eigenschaft zu setzen. Überprüfe, ob die RowSource der ComboBox korrekt ist.
  • Fehler in RowSource:

    • Stelle sicher, dass die RowSource auf einen gültigen Bereich verweist. Der Inhalt sollte nicht als Text, sondern als tatsächlicher Zellbereich angegeben werden:
      ComboBox4.RowSource = "Daten!C2:C367"

Alternative Methoden

Eine alternative Möglichkeit besteht darin, den Code in der UserForm_Initialize-Subroutine zu überprüfen:

Private Sub UserForm_Initialize()
    heute = Now() - 3
    ComboBox4.RowSource = "Daten!C2:C367"
    ComboBox4.Value = Format(CDate(heute), "d. MMMM YYYY")

    heute = heute + 1
    ComboBox5.RowSource = "Daten!C2:C367"
    ComboBox5.Value = Format(CDate(heute), "d. MMMM YYYY")
End Sub

Wenn der Fehler weiterhin auftritt, kann ein Test im VBA-Entwicklerbereich hilfreich sein.


Praktische Beispiele

Hier ist ein Beispiel, das zeigt, wie man den Laufzeitfehler 380 vermeiden kann:

Private Sub Workbook_Activate()
    On Error GoTo Fehlerbehandlung
    Eingabe1.Show
    Exit Sub

Fehlerbehandlung:
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
End Sub

Durch das Hinzufügen einer Fehlerbehandlung kannst du Laufzeitfehler besser identifizieren und handhaben.


Tipps für Profis

  • Verwende On Error Resume Next: Dies kann nützlich sein, um Fehler zu ignorieren, solltest du jedoch darauf achten, es nur vorübergehend zu verwenden und danach die Fehlerbehandlung zu aktivieren.

  • Validiere Eingaben in ComboBoxen: Stelle sicher, dass die Werte in den ComboBoxen gültig sind, bevor du sie in RowSource verwendest.

  • Debugging-Tools: Nutze die Debugging-Tools im VBA-Editor, um den Code schrittweise zu testen und zu sehen, wo der Fehler auftritt.


FAQ: Häufige Fragen

1. Was ist der Laufzeitfehler 380?
Der Laufzeitfehler 380 tritt auf, wenn eine ungültige Eigenschaft in VBA gesetzt wird, häufig im Zusammenhang mit Formularelementen wie ComboBoxen oder UserForms.

2. Warum funktioniert mein UserForm nur manchmal?
Es könnte an der Initialisierung des UserForms liegen. Überprüfe, ob alle Werte korrekt gesetzt sind und ob der Code in der richtigen Subroutine steht.

3. Was kann ich tun, wenn ich den Laufzeitfehler '-2147' erhalte?
Dieser Fehler kann auf Probleme mit der Version von Excel oder auf fehlerhaften Code hinweisen. Stelle sicher, dass dein Code kompatibel mit der verwendeten Excel-Version ist und überprüfe alle Variablen und Werte.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige