Fehler bei ausführen des Programmes unter Excel 2010 (statt 2003), Objektvariable oder With-Blockvariable nicht festgelegt

  • Excel

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Karl-Heinz Heinz.

    Fehler bei ausführen des Programmes unter Excel 2010 (statt 2003), Objektvariable oder With-Blockvariable nicht festgelegt

    Hallo,

    ich habe folgendes Problem :

    Ich möchte ein Programm zur Sortierung und Verwaltung von Prüfdaten unter Excel 2010 laufen lassen, dass davor unter Excel 2003 problemlos lief. Allerdings erscheinen dort viele Fehler, zudem besitzt der Rechner, auf dem Excel 2010 ist nicht die Bibliothek Microsoft Web Components, die beim Rechner mit Excel 2003 verwendet wurde. Einige angezeigte Fehler konnte ich ausmerzen, jedoch bleibe ich bei diesem hier hängen und weiß nicht mehr weiter :

    Function InitializeFormEnterData(ByVal FirstRow As Integer, ByVal LastRow As Integer, ByVal SheetNr As Integer)
    Load FormEnterData
    ReadDataFromRow FirstRow, LastRow, SheetNr
    FormEnterData.LabelED_MusterNr.Caption = "Muster #"
    FormEnterData.LabelED_MusterNrBis.Visible = True
    FormEnterData.TextBoxED_MusterNrBis.Visible = True
    FormEnterData.ButtonED_ScanMotors.Visible = False 'Hide Scan Motors Button
    FormEnterData.CheckBoxED_ScanningAll.Visible = False
    FormEnterData.LabelED_Hint.Visible = True
    Extras.ShowScannerImages 0

    If FormEnterData.TextBoxED_MusterNrVon.Value = FormEnterData.TextBoxED_MusterNrBis.Value Then
    FormEnterData.TextBoxED_ActualMusterNr.Visible = False
    FormEnterData.SpinButtonED_ActualMusterNr.Visible = False
    FormEnterData.CheckBoxED_AcceptAll.Visible = False
    End If

    FormEnterData.Show
    End Function

    Es soll hier eigentlich nur ein Form erstellt werden. Bei der Zeile Load FormEnterData wird angezeigt, dass entweder eine "Objektvariable oder With-Blockvariable nicht festgelegt" wurde. Zudem wird angezeigt, dass ein Laufzeitfehler 13 und Typenunverträglichkeit anliegt. Ich habe schon versucht die Objektvariable mit

    Dim FormEnterData As New FormEnterData

    zu initialisieren, jedoch hat das nichts gebracht ?( .

    Da das Programm unter Excel 2003 problemlos lief ist es daher für mich unverständlich, wieso jetzt solche Fehler auftreten.

    Über eine baldige Antwort würde ich mich sehr freuen !!!
    Tut mir Leid, aber die gesamte Datei kann ich nicht hochladen da es Firmeneigentum ist. Die Webcomponents runterzuladen behebt zwar das Problem, ist für mich aber keine gute Lösung, da für jede Lizenz Geld bezahlt werden muss und der aufwand bei der Installation sich erhöht, da man ja zusätzlich diese noch runterladen muss. Ich suche nach einer Lösung durch Veränderung/Ergänzung des Codes.
    InitializeFormEnterData

    Das sollte doch eine sub in der Form selbst sein. Wenn diese ausgeführt wird, ist die Form selbst schon geladen.

    Der Fehler ist nicht in dem Load-Befehl, sondern irgendwo in der Form selbst. Wahrscheinlich bei Activate oder Initialize selbst zu suchen. Eine Beispiel Datei, wo der Fehler auftaucht ist aber immer von Vorteil, um mich zum Helfen zu motivieren ;)
    Gruß
    Peterfido

    Keine Unterstützung per PN!
    Ich habe das Problem gefunden, lag aber nicht wie vorher gedacht in dem Teil meines Programmes X/

    Davor :
    Sub SortCombo(cbox As ComboBox)
    Dim Last1, Next1 As Integer


    With cbox
    For Last1 = 2 To .ListCount - 1
    For Next1 = Last1 + 1 To .ListCount - 1
    If IsNumeric(.List(Last1)) Then
    'If .List(Last1) * 1 > .List(Next1) * 1 Then
    If .List(Last1) > .List(Next1) Then
    temp = .List(Next1)
    .List(Next1) = .List(Last1)
    .List(Last1) = temp
    End If
    ElseIf .List(Last1) > .List(Next1) Then
    temp = .List(Next1)
    .List(Next1) = .List(Last1)
    .List(Last1) = temp
    End If
    Next Next1
    Next Last1
    End With

    Danach:

    Sub SortCombo(cbox As ComboBox)
    Dim Last1, Next1, tempInt As Integer
    Dim tempString As String
    '################################## tempString und tempInt wurden hinzugefügt#######################
    With cbox
    For Last1 = 2 To .ListCount - 1
    For Next1 = Last1 + 1 To .ListCount - 1
    If IsNumeric(.List(Last1)) Then
    'If .List(Last1) * 1 > .List(Next1) * 1 Then
    If .List(Last1) > .List(Next1) Then
    tempInt = .List(Next1)
    .List(Next1) = .List(Last1)
    .List(Last1) = tempInt
    End If
    ElseIf .List(Last1) > .List(Next1) Then
    tempString = .List(Next1)
    .List(Next1) = .List(Last1)
    .List(Last1) = tempString
    End If
    Next Next1
    Next Last1
    End With


    Das Problem war hier die Verwendung von temp in Excel 2003 war es anscheinend nicht nötig diese Variable davor zu deklarieren, jetzt aber schon. Dadurch konnten die Listen nicht sortiert werden, weswegen auch die Form nicht geladen werden konnte