Fehler im richtigen Code

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Fehler im richtigen Code
von: Yauhen
Geschrieben am: 29.09.2015 12:30:31

Servus,
ich bekomme seit einiger Zeit beim Starten von Excel immer Fehler mit ActiveX - Elementen, die keine Fehler sind.
z.B. "Objekt erforderlich" in der Zeile:
CommandButtonSP.Caption = last_system & " " & Element(9)
Der Objekt ist da, auf dem Blatt, dem die Funktion gehört. Wenn man im Editor auf Stopp drückt und wieder den Code laufen lässt, geht alles.
Hat jemand schon Erfahrung damit gehabt und kann mir erklären, woran der Fehler liegen kann?
Vielen Dank im Voraus.

Bild

Betrifft: AW: Fehler im richtigen Code
von: selli
Geschrieben am: 29.09.2015 12:57:16
hallo yauhen,
stell dir mal folgendes szenario vor:
du bringst deinen zündschlüssel in eine autowerkstatt und sagst dein auto startet nicht.
ebenso verhält es sich mit deiner codezeile hier.
so wird dir hier niemand helfen können.
gruß
selli

Bild

Betrifft: AW: Fehler im richtigen Code
von: Yauhen
Geschrieben am: 29.09.2015 13:07:53
Hallo Selli,
welche genau Angaben braucht man noch, um mir helfen zu können?
Wie gesagt, der Code is richtig und läuft super. Fehler (nicht nur der, sondern viele andere) tretten nur beim Starten von Excel auf.
Wenn jemand trotzdem die Funktion sehen will, da ist sie:

Private Sub Worksheet_Activate()
    If last_system = "" Then
        last_system = "T2000"
    End If
    CommandButtonSP.Caption = last_system & " " & Element(9)
    CommandButtonPP.Caption = last_system & " " & Element(10)
    CommandButtonSP.Visible = Cells(35, 25)
    CommandButtonPP.Visible = Cells(35, 25)
End Sub


Bild

Betrifft: AW: Fehler im richtigen Code
von: selli
Geschrieben am: 29.09.2015 13:24:45
hallo yauhen,
also von alleine läuft der mit sicherheit nicht.
da sind einige variablen drin, die irgendwo anders definiert werden.
bildlich gesprochen: jetzt haben wir den zündschlüssel und die zündkerzen in der werkstatt.
gruß
selli

Bild

Betrifft: AW: Fehler im richtigen Code
von: Yauhen
Geschrieben am: 29.09.2015 18:04:33
Hallo Selli,
irgendwie habe ich das Gefühl, das wir im Werkstatt schon das ganze Auto haben, das voll kaput ist, aber der Meister fragt ständig nach, ob ich sicher bin, dass da noch Benzin drin ist.
Ich versuche, das ein wenig deutlicher rüberzubringen. Also:
1) Es gibt eine Menge ActiveX Elemente im Workbook.
2) Alles läuft super und wurde mehrmals auf Fehler geprüft
3) Ab und zu (also nicht immer) werden Debugfehler gezeigt. Entweder werden bestimmte Elemente nicht gefunden (wie im Beispiel oben), obwohl sie da sind, oder werden bei diesen Elementen ihre Methoden und Variablen nicht gefunden (z.B. Button1.Caption = "..." führt zu "Objekt verfügt über solche Methode nicht").
4) Die Elemente sind 100% da, das richtige Blatt und das richtige Workbook sind aktiv und weiter läuft alles ok. Wenn der Fehler auftaucht und man aufs "beenden" drückt und das file speichert, taucht der Fehler nächstes mal nicht.
Danke, dass du dir Mühe gibst.

Bild

Betrifft: AW: Fehler im richtigen Code
von: Daniel
Geschrieben am: 29.09.2015 13:28:05
Hi
das Problem beim Starten drüfte sein, dass dieser Code laufen kann, obwohl das Array "Element" noch nicht mit Daten befüllt ist.
Ähnlich wie für last_system müsstest du auch für Element eine Prüfung vorschalten, ob das Array schon werte bekommen hat und wenn nein, dann dieses befüllen oder dasjenige Makro aufrufen, welches die Befüllung vornimmt:

Private Sub Worksheet_Activate()
    If last_system = "" Then
        last_system = "T2000"
    End If
    if IsEmpty(Element) then
        Redim Element(9 to 10)
        Element(9) = "Überschrift SP"
        Element(10)= "Überschrift PP"
    end if
    CommandButtonSP.Caption = last_system & " " & Element(9)
    CommandButtonPP.Caption = last_system & " " & Element(10)
    CommandButtonSP.Visible = Cells(35, 25)
    CommandButtonPP.Visible = Cells(35, 25)
End Sub

Gruß Daniel

Bild

Betrifft: AW: Fehler im richtigen Code
von: Yauhen
Geschrieben am: 29.09.2015 17:50:50
Hallo Daniel,
danke für dir Antwort. Element bei mir ist kein Array, sondern eine Funktion, die die Parameter 9 und 10 nimmt.
Außerdem wenn ich beim Debugging "CommandButtonSP.Caption = " " " schreibe, wird der gleiche Fehler gezeigt.
Ab und zu tauchen Fehler auf wie "Objekt verfügt über solche Methode nicht" und andere (mit Active X Elementen). Wie gesagt, der Code ist richtig und wurde schon 10000 mal von mir und meinem Kollegen geprüft, er läuft super, aber manchmal gibt es Fehler beim starten.
Wenn man aufs "beenden" drückt und das File speichert, gibt es den Fehler beim nächsten Start nicht mehr. Also ich nehme an, das File wird irgendwie vom Excel nicht richtig gespeichert.

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Fehler im richtigen Code"