Microsoft Excel

Herbers Excel/VBA-Archiv

Datei lässt sich mehr öffnen

    Betrifft: Datei lässt sich mehr öffnen von: Roger
    Geschrieben am: 07.10.2003 14:30:20

    Hi,
    folgendes Problem:

    Excel

    Ok, ich werde es mal genauer beschreiben:
    Entwickle an einem Tool mit VBA, dass sich Informationen aus einer DB holt und grafisch in selbst gebastelten Diagrammen darstellt. Bein Schliessen dieser Mappen fange ich das Ereignis BeforeSave und BeforeClose ab und lösche noch ein paar selbst gebastelte Objekte. Nach dem Schliessen dieser Mappen lassen sich die Dateien nicht mehr Öffnen Meldung "Kann Datei nicht lesen". Wenn ich diese Datei in eine Textdatei umwandele fehlen mir ca 30% gegenüber der Originaldatei. Wie kommt den sowas? Öffne ich die Mappe nur mit Excel, also nicht mit meinem Tool, habe ich nach dem Speichern keine Probleme. Mein Makro hat Momentan eine Größe von ca 6 MB, wer bietet mehr? ;-) Gibt es da eine Obergrenze, da ich in letzter Zeit immer mehr Probleme mit Dr. Watson bekomme. Der Code lässt sich einwandfrei kompilieren, und habe eigentlich überall Fehlerroutinen eingebaut und den Code mehrfach durchgesteppt, ohne besondere Vorkommnisse. Ich darf bloss nicht Speichern.

    thx im Vorraus
    Roger

      


    Betrifft: AW: Datei lässt sich mehr öffnen von: Jule
    Geschrieben am: 07.10.2003 16:39:41

    hört sich komplex an Roger...

    kann dir leider nicht weiterhelfen!!
    wollt nur mal antworten, weil wohl niemand rat wusste?! :o)

    tschoe


      


    Betrifft: OFFEN von: ChrisL
    Geschrieben am: 07.10.2003 16:52:54

    Hi

    Kann leider auch nicht helfen.

    Wollte nur kurz den Hinweis an Jule geben, dass du hiermit den Beitrag aus der Liste der offenen Fragen bugsiert hast.

    Gruss
    Chris


      


    Betrifft: AW: Datei lässt sich mehr öffnen von: andre
    Geschrieben am: 07.10.2003 19:17:30

    hallo roger,
    die größe ist nicht entscheiden - ausser es kommt eine entsprechende meldung.
    wenn du die mappe kleiner willst und es liegt nicht an der datenmenge, dann ist es meist der "sorglose" umgang mit dem formatieren - so nach dem motto jede zelle bekommt was eigenes bzw wird einzeln formatiert, oder häufiges kopieren und einfügen - hier ist meist einfügen der werte ausreichend ...
    wie tust du speichern? ganz "normal" mit workbook.save ... ? poste mal das speichermakro und das zum öffnen.
    gruss andre


      


    Betrifft: AW: Datei lässt sich nicht mehr öffnen von: Roger
    Geschrieben am: 08.10.2003 09:09:18

    Hi,

    die obige Sub wird über die Applikation angesteuert und ruft die untere Sub auf in der das Objekt der Auswertung aus einer Collection gelöscht wird. Mit 6 MB meinte ich allerdings nicht das Workbook, sondern das XLA. Die Mappen selbst haben öfter mal über 10 MB. Das Speichern erfolgt nicht über Code, sondern über das Excelmenue.

    ------------------------------------------------------------------------------------
    Private Sub App_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As Boolean)
        Call MyXLA.DeleteAuswertung(Wb)
        Set Wb = Nothing
    End Sub
    


    Private Sub DeleteAuswertung(wbMappe As Workbook)
    Dim objAuswertung As ClsAuswertung
    Dim objLoeschItem As ClsAuswertung
    Dim i As Integer
        
        On Error GoTo DeleteAuswertung_Err
        Set objAuswertung = GetAuswertung(wbMappe)
        
        If Not (objAuswertung Is Nothing) Then
            If Not(objAuswertung.Workbook Is Nothing) Then
                Set objLoeschItem = colPriAuswertungen.Item(objAuswertung.Workbook.Name)
                If Not (objLoeschItem Is Nothing) Then
                    Call colPriAuswertungen.Remove(objAuswertung.Workbook.Name)
                Else
                For i = 1 To colPriAuswertungen.count
                    Set objLoeschItem = colPriAuswertungen.Item(i)
                    If Not (objLoeschItem Is Nothing) Then
                        If Not (objLoeschItem.Workbook Is Nothing) Then
                          ' ausdruecklich ueber den Namen suchen !!!
                          If objLoeschItem.Workbook.Name = objAuswertung.Workbook.Name Then
                            Set objLoeschItem.Workbook = Nothing
                            Call colPriAuswertungen.Remove(i)
                            'und wieder von vorne
                            i = 1
                            ' kein exit for wir loechen alles mit dem Namen
                          End If
                        End If
                    End If
                Next
                End If
            End If
        End If
        
        Set objAuswertung = Nothing
        Set objLoeschItem = Nothing
        Exit Sub
    DeleteAuswertung_Err:
        Call MyXLA.LOG.error(MODULNAME, "DeleteAuswertung", "")
        Resume Next
    End Sub
    

    ----------------------------------------------------------------------------------------


    thx
    Roger


      


    Betrifft: AW: Datei lässt sich nicht mehr öffnen von: andre
    Geschrieben am: 08.10.2003 20:12:32

    hallo roger,
    da passiert natürlich eine ganze menge - aber auf den ersten blick nichts schlimmes. ist noch die frage, was in den funktionen oder subs passiert, die aus dem DeleteAuswertung aufgerufen werden.
    wahrscheinlich musst du mal schrittweise prüfen, wo es klemmt. also zuerst mal im einzelschrittbetrieb und dazwischen immer mal 'nen blick auf die workbooks werfen, dann mal einzelne makros deaktivieren, z.b. im App_WorkbookBeforeClose das call auskommentieren, dann das call wieder scharf machen und DeleteAuswertung abspecken...
    gruss andre