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 13 Typen unverträglich

    in Microsoft Excel Hilfe
    Laufzeitfehler 13 Typen unverträglich: Hallo zusammen, ich bräuchte da mal eure Hilfe :) Wenn ich eine Zeile markiere erhalte ich die Fehlermeldung Laufzeit 13 Typen unverträglich. Was mache ich nur falsch? beim debuggen bleibt der...
  3. Objektvariable Blockvariable Laufzeitfehler 91

    in Microsoft Excel Hilfe
    Objektvariable Blockvariable Laufzeitfehler 91: Moin, bin mit folgendem VB Code etwas ratlos. Hab da auch nicht soviel Ahnung. Ich sammele Veränderungen aus einer Tabelle und will sie dann per Mail versenden. Würde mir jemand eine Lösung...
  4. Laufzeitfehler 424: Objekt erforderlich seit Umstellung auf O365

    in Microsoft Excel Hilfe
    Laufzeitfehler 424: Objekt erforderlich seit Umstellung auf O365: Hallo zusammen, ich habe von einem Arbeitskollegen mal diese Excel bekommen um mir etwas Arbeit zu ersparen. Ich bin nun umgestiegen auf M365 und plötzlich funktioniert die Excel nicht mehr....
  5. Laufzeitfehler 3035 Nicht genügend Systemressourcen

    in Microsoft Access Hilfe
    Laufzeitfehler 3035 Nicht genügend Systemressourcen: Hallo zusammen. Ich bin Systemadministrator in einem Unternehmen und zwei Mitarbeiter stoßen auf ein Problem auf das ich einfach keine Lösung finde. Die Mitarbeiter sind vor kurzem auf Windows...
  6. Laufzeitfehler '13': Typen unverträglich

    in Microsoft Excel Hilfe
    Laufzeitfehler '13': Typen unverträglich: Hallo, bräuchte bitte noch einmal Eure Hilfe. Möchte mit einem Makro Zeilen oder Spalten ausblenden. wenn ich Rows("15:22").Select eingebe funktioniert es. Code: Sub Makro3()...
  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