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. VBA:Laufzeitfehler beim Einlesen in Variable

    in Microsoft Excel Hilfe
    VBA:Laufzeitfehler beim Einlesen in Variable: Hallo Excel Freaks, ich habe eine Frage, ein Problem wo ich nicht mehr weiter weis.... In eine Exceldatei kopiere ich mir über Makro auf ein Tabellenblatt von anderen Exceldateien das...
  3. Datenbank bleibt gesperrt - laccdb wird nicht gelöscht

    in Microsoft Access Hilfe
    Datenbank bleibt gesperrt - laccdb wird nicht gelöscht: Hallo zusammen, ich betreue eine Datenbank mit getrenntem Back- und Frontend, die in einem Firmennetzwerk auf dem Netzlaufwerk liegt. Ich entwickle sie lokal weiter, ohne vor Ort zu sein, wobei...
  4. Access Laufzeitfehler 3048

    in Microsoft Access Hilfe
    Access Laufzeitfehler 3048: Bevor ihr Euren Code durchrackert, weil Access plötzlich Probleme macht: Die Version 2408 (Build 17928.20114) dürfte ein wenig misslungen sein! Access bleibt nach dem Schließen im Taskmanager...
  5. 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...
  6. 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...
  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