Office: Laufzeitfehler '-2147417848 (80010108)' nur unter Excel2007, nicht unter 2010

Helfe beim Thema Laufzeitfehler '-2147417848 (80010108)' nur unter Excel2007, nicht unter 2010 in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; [Gelöst] Laufzeitfehler '-2147417848 (80010108)' nur unter Excel2007, nicht bei 2010 Hallo Zusammen, kann mir vielleicht jemand erklären, wie es zu... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von oliverP, 28. Februar 2012.

  1. oliverP Erfahrener User

    Laufzeitfehler '-2147417848 (80010108)' nur unter Excel2007, nicht unter 2010


    [Gelöst] Laufzeitfehler '-2147417848 (80010108)' nur unter Excel2007, nicht bei 2010

    Hallo Zusammen,

    kann mir vielleicht jemand erklären, wie es zu folgendem Fehler kommen kann, oder gar wie man ihn behebt:

    Ich habe ein recht umfangreiches VBA-Projekt in Excel.

    Unter Excel 2010 läuft alles, wie erwartet, fehlerfrei.

    In Excel2007 steigt das Programm aus mit der Fehlermeldung
    Dies ist der Code, in dem der Fehler auftritt:
    Code:
    Sub datenAktualisieren()
    
     ' Code der andere Datenblaetter bearbeitet wurde durch [...] ersetzt um die Lesbarkeit zu erhoehen
    
      ' [...]
      Dim shFp As Worksheet
      Dim sortRng As Range
      
     ' [...]
     
     Set shFp = Application.Worksheets(shName_Pakete)    ' shName_Pakete = "Pakete" <-- bei initialisierung gesetzte Konstante
     
     ' [...]
      
      shFp.Activate
      
     ' [...]
      
      Set sortRng = shFp.Range(shFp.Cells(3, 1).EntireRow, shFp.Cells(3, 1).End(xlDown).EntireRow)
      With shFp.Sort
        .SortFields.Clear
        .SortFields.Add Key:=shFp.Columns(fp_col_fr), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .SortFields.Add Key:=shFp.Columns(fp_col_fd), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .SetRange sortRng
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply                          ' <--- an dieser Stelle steigt das Programm aus
      End With
    
    ' diese verwendeten Konstanten wurden bei der initialisierung definiert:
    '     fp_col_fr = 1
    '     fp_col_fd = 2
    '
    ' die übrigen Konstanten sind von Microsoft vordefiniert
    
    ' [...]
    
    End Sub
    
    Ich habe schon diverse Fehlerquellen ausgeschlossen:

    Es liegt nicht am Computer, denn der Fehler tritt auf mehreren unterschiedlichen Systemen auf. (Auch auf frisch installierten)
    Ein Update von Office 2007 (aktuell SP2) auf SP3 brachte ebenso keine Besserung.


    Wer weiß hier Rat?
     
    Zuletzt bearbeitet: 1. März 2012
    oliverP, 28. Februar 2012
    #1
  2. Beverly
    Beverly Erfahrener User
    Hi Oliver,

    hast du mal das Sortieren mit dem Makrorekorder aufgezeichnet? Möglicherweise erkennst du ja, ob es da zwischen beiden Excelversionen einen Unterschied gibt.

    Bis später,
    Ksrin
     
    Beverly, 28. Februar 2012
    #2
  3. oliverP Erfahrener User
    Hallo Beverly,

    ich fürchte, das Problem ist etwas komplizierter.

    Und zwar hat der Code mal unter Excel2007 funktioniert.
    Er wurde sogar ursprünglich auf Excel2007 implementiert.
    Daher ist mir diese Fehlermeldung unerklärlich.

    Mittlerweile wurden jedoch an ganz anderen Stellen im Code Anpassungen vorgenommen um ganz andere Bugs zu fixen.
    Und irgendwann fiel auf, dass die hier gepostete Methode nicht mehr geht, aber nur unter Excel2007. Unter Excel2010 läuft es problemlos.

    Das Gesamte Tool umfasst mehrere Zehntausend Zeilen Code, die ich hier nicht zur Verfügung stellen darf.
     
    oliverP, 29. Februar 2012
    #3
  4. oliverP Erfahrener User

    Laufzeitfehler '-2147417848 (80010108)' nur unter Excel2007, nicht unter 2010

    Die Ursache des Problems muss komplexer sein.

    Ich habe nun folgendes getan:

    Ich habe im VB-Editor einen Haltepunkt definiert, genau bevor das Progamm abschmiert.
    Dann habe ich das behandelte Datenblatt in ein neues Dokument kopiert.
    In diesem Dokument habe ich herum experimentiert, mit dem Ergebnis, dass der folgende Code einwandfrei funktioniert:

    Code:
    Sub test_original_sort()
    
        ' fake Konstanten
        fp_col_fr = 1
        fp_col_fd = 2
        shName_Pakete = "Pakete" ' Name des Worksheets
        
        ' original code ab hier
        ' ------------------------------------------
        
        ' [...]
        Dim shFp As Worksheet
        Dim sortRng As Range
        
        ' [...]
        Set shFp = Application.Worksheets(shName_Pakete)
        ' [...]
        shFp.Activate
        ' [...]
    
      ' pakete sortieren
      Set sortRng = shFp.Range(shFp.Cells(3, 1).EntireRow, shFp.Cells(3, 1).End(xlDown).EntireRow)
    
      With shFp.Sort
        .SortFields.Clear
        .SortFields.Add Key:=shFp.Columns(fp_col_fr), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .SortFields.Add Key:=shFp.Columns(fp_col_fd), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .SetRange sortRng
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
      End With
    
    End Sub
    
    Die Ursache ist also offenbar garnicht der hier gezeigte Code, sondern irgend etwas anderes, was zur Laufzeit noch aktiv ist.
    Das wäre z.B. ein Formular mit einem ProgressBar und einem Label.
    Die Methode, in der es hier zum Ausstieg kommt wird wiederrum von einer anderen Methode (in einem anderen Modul) mit dem Befehl "Call" aufgerufen:
    Code:
    Sub pivotTabelleErzeugen(shPivotTableSource As Worksheet)
    
      Dim ss As New Speedstate ' selber geschriebene Klasse, siehe unten
    
     ' [...]
    
      ' Save speed state
      ss.save_and_speedup
    
     ' [...]
    
     ' Aufruf diverser anderer Methoden via Call
    
     ' [...]
    
      ' Funktionspakete aktualisieren
      ImportProgress.progress_text.Caption = "Aktualisiere Pakete ..."
      ImportProgress.Repaint
      Call datenAktualisieren
    
    ' ImportProgress ist ein sehr simples Formular
    ' mit einem ProgressBar und einem Label
    '
    '	##############################
    '       |                            |
    '       |    ====================    |
    '       |                            |
    '       |   Aktualisiere Pakete ...  |
    '       |____________________________|
    '
    
     ' [...]
    
      ' Pivot Tabelle aktualisieren
      refresh_pivot
    
      ss.restore
    
    End Sub
    
    
    Code der oben genutzten Klasse Speedstate:
    Code:
    Dim en_events As Boolean
    Dim en_screenupdating As Boolean
    Dim calc_type As Integer
    
    Function save_and_speedup()
    
      en_events = Application.EnableEvents
      en_screenupdating = Application.ScreenUpdating
      calc_type = Application.Calculation
    
      Application.EnableEvents = False
      Application.ScreenUpdating = False
      Application.Calculation = xlCalculationManual
    
    End Function
    
    Sub restore()
    
      Application.EnableEvents = en_events
      Application.ScreenUpdating = en_screenupdating
      Application.Calculation = calc_type
    
    End Sub
    
    

    Ab hier wird es so komplex, dass ich nicht weiß wie ich euch das Problem genauer schildern soll, ohne die Datei hochzuladen, wozu ich nicht berechtigt bin, da dort auch Geschäftsgeheimnisse enthalten sin könnten.

    So Ihr noch eine Idee habt, woran es liegen könnte, stellt mir bitte konkrete Fragen!
    Ich werde dann versuchen so viele Daten wie möglich zu nennen.
     
    Zuletzt bearbeitet: 29. Februar 2012
    oliverP, 29. Februar 2012
    #4
  5. oliverP Erfahrener User
    Problem behoben:

    Ich kann zwar keinerlei Zusammenhang zu oben zitiertem Code erkennen, doch folgendes hat geholfen:

    An einigen Stellen im Code wurden Strings mit Zeilenumbrüchen generiert.
    Dazu wurde der Aufruf con Chr(13) genutzt.
    Ein Austauschen aller vorkommenden Chr(13) im code mit "vbNewLine" brachte den Erfolg.
    Ich hatte den Austausch nur auf Verdacht vorgenommen, da Chr(13) in einem anderen VBA-Programm, an dem ich vor ein paar Wochen gearbeitet hatte zu unerklärlichen Phenomenen geführt hatte...

    Mich wundert nur, dass an der oben zitierten Sort-Funktion kein derartiger String mit Zeilenumbruch beteiligt war.
    Das Programm erzeugte an gaaaanz anderen Stellen im Programm XML-Code, der mit dem Sort nichts zu tun hatte...

    Also einen Zusammenhang kann ich hier nicht herstellen.
    Das Problem ist dennoch behoben...

    Merke: Chr(13) ist in VBA Teufelszeug, Finger Weg!
     
    Zuletzt bearbeitet: 1. März 2012
    oliverP, 1. März 2012
    #5
Thema:

Laufzeitfehler '-2147417848 (80010108)' nur unter Excel2007, nicht unter 2010

Die Seite wird geladen...
  1. Laufzeitfehler '-2147417848 (80010108)' nur unter Excel2007, nicht unter 2010 - Similar Threads - Laufzeitfehler 2147417848 80010108

  2. Laufzeitfehler 9 VBA

    in Microsoft Excel Hilfe
    Laufzeitfehler 9 VBA: Nschdem ich die Office Version von 2010 auf 2019 aktualisiert habe wird mir der Laufzeitfehler 9 ausgegeben. Das ist der Code Sub FiberCollect() Dim NumRows As Long 'letzte celle Dim Counter As...
  3. VBA Laufzeitfehler 9

    in Microsoft Excel Hilfe
    VBA Laufzeitfehler 9: Guten Abende an alle VBA Profi, Ich lerne gerade Programmierung mit VBA und habe fast null Ahnung von Fehlern ich habe folgenden Probleme. ich einen xlsm Datei versuche eine Tabelle mit codename...
  4. [VBA] .Documents.Open -> Laufzeitfehler 91

    in Microsoft Excel Hilfe
    [VBA] .Documents.Open -> Laufzeitfehler 91: Hallo zusammen, bekomme aktuell den Laufzeitfehler 91 an der Codestelle, wo ich versuche ein Word Dokument zu öffnen (Set wdDoc = wdApp.Documents.Open(wbBook.Path & "\" & stWordDocument)), das...
  5. MS Access Lauftzeitfehler "2501"

    in Microsoft Access Hilfe
    MS Access Lauftzeitfehler "2501": Hallo Liebe Office Gemeinde, Ich habe ein Problem mit meinem MS Access, wir haben unsere MA Liste in einer Access DB. Wenn man in unserem Formular auf "Drucken MA" klickt dann wird eine PDF...
  6. Excel VBA Laufzeitfehler 424 Objekt erforderlich

    in Microsoft Excel Hilfe
    Excel VBA Laufzeitfehler 424 Objekt erforderlich: Hallo zusammen, ich habe schon verschiedene Antworten zum Laufzeitfehler 424 gefunden, komme aber leider damit doch irgendwie nicht weiter (bin absoluter VBA-Neuling). Folgendes Makro habe ich...
  7. Laufzeitfehler '-2147417848 (80010108)

    in Microsoft Excel Hilfe
    Laufzeitfehler '-2147417848 (80010108): Hallo zusammen, ich habe vor kurzem von Excel 2010 umgestellt auf 2013. Bei den Makro´s, in denen eine Zeile kopiert und danach wieder eingefügt wird bekomme ich oben genannten Laufzeitfehler....
  8. Laufzeitfehler '2147417848 (80010108)': Die Methode 'Value' für das Objekt 'Range'...

    in Microsoft Excel Hilfe
    Laufzeitfehler '2147417848 (80010108)': Die Methode 'Value' für das Objekt 'Range'...: Hallo! Ich habe eine VBA-Problem: Habe einen Vokabel-Trainer, bei dem beim Abfragen der Vokabeln das Programm regelmäßig abstürzt. Dies kommt insbesondere dann vor, wenn die Vokabeln beim...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden