Zum Inhalt springen

[Excel 2007] Hängt sich beim Erstellen von mehreren Diagrammen auf


Empfohlene Beiträge

Geschrieben

Tag auch!

Hab ein kleines Problem mit Excel. Undzwar hängt es sich in unregelmäßigen Abständen einfach auf. Aber nicht im Sinne von "Keine Rückmeldung..." oder "Das Programm reagiert nicht mehr". Vielmehr sieht es danach aus, dass Excel in einer Endlosschleife des Nichtstuns festhängt.

Ich rufe Excel über mein Programm auf (VB6), um Daten aus einer Datenbank rüber nach Excel zu exportieren, um anschließend eine Pivot zu erstellen.

Das Programm läuft auch ohne Probleme durch ist im Wartezustand für neue Befehle. Nurnoch Excel hängt noch.

Zum Verhalten von Excel:

Excel ist nicht zu schließen. Das geht nur, wenn man den Prozess killt.

In Excel kann man normal weiterarbeiten. Cursor ist allerdings der "Wartekreis" bzw. die Sanduhr.

Und in der Formelanzeige flackert der gesamte Text.

Wie gesagt kommt das unregelmäßig vor. Aber im Schnitt würde ich sagen, von 10 Versuchen passiert es 3 Mal.

Falls das Thema in den VB Bereich gehört, Entschuldigung! Bitte rüberschieben.

Gruß

Kaeyu

Geschrieben

Tja also mit den gegbenen Informationen würde ich behaupten: Keine Ahnung.

Hat das Excel denn irgendwelche Probleme wenn du es manuell öffnest? Wenn es in der Manuellen öffnung ohne dein Programm problemlos arbeitet ist es ein VB Problem. Aber auch hier steht so wenig Quelltext das man wohl nur raten kann was das Problem sein könnte.

Bitte mehr Information.

Geschrieben

Ich glaube eher weniger, dass es am Quellcode liegt. Auf älteren Excel Versionen läuft es einwandfrei.

Naja...

    Set xlApp = CreateObject("Excel.Application")

    Set xlWb = xlApp.Workbooks.Add

    Set xlWs = xlWb.Worksheets(1)

    xlApp.Visible = false

    xlApp.DisplayAlerts = False



   'Variablen/Tabellenkopf ausgeben

    fldCount = Tabelle.Fields.count

    For iCol = 1 To fldCount

        xlWs.Cells(1, iCol).Value = Tabelle.Fields(iCol - 1).Name

    Next


   'Daten kopieren

   'ab Excel 2000

    If Val(Mid(xlApp.Version, 1, InStr(1, xlApp.Version, ".") - 1)) > 8 Then

        xlWs.Cells(2, 1).CopyFromRecordset Tabelle

    Else

   'vor Excel 2000

        recArray = Tabelle.GetRows

        recCount = UBound(recArray, 2) + 1

        For iCol = 0 To fldCount - 1

            For iRow = 0 To recCount - 1

                If IsDate(recArray(iCol, iRow)) Then

                    recArray(iCol, iRow) = Format(recArray(iCol, iRow))

                ElseIf IsArray(recArray(iCol, iRow)) Then

                    recArray(iCol, iRow) = "Array Field"

                End If

            Next iRow

        Next iCol

        xlWs.Cells(2, 1).Resize(recCount, fldCount).Value = recArray

    End If


    xlApp.Range("E1").Select

    xlApp.ActiveCell.FormulaR1C1 = "Total"

    x = 2

    For x = 2 To Tabelle.RecordCount + 1

     xlApp.Range("E" & x).Select

     xlApp.ActiveCell.FormulaR1C1 = "=SUM(RC[-3]:RC[-1])"

    Next x


    xlApp.Columns("B:D").Select

    xlApp.Selection.EntireColumn.Hidden = True

    xlApp.Columns("E:E").Select

    xlApp.Selection.NumberFormat = "#,##0 [$€-1]"

    xlApp.Range("E2").Select

    xlApp.Selection.Sort Key1:=xlApp.Range("E2"), Order1:=xlDescending, Header:=xlGuess, _

        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom


    xlApp.Range("A1").Select

    xlApp.Cells(1, 1).CurrentRegion.Select


  'Excel-Diagramm hinzufügen:

  Set xlChart = xlApp.Charts.Add()

  xlChart.ChartType = xl3DPie

  'xlChart.ChartType = xlBubble3DEffect

  xlChart.ChartTitle.Characters.Text = cmb_Jahr.Text & " " & cmb_gb.Text

  xlChart.ApplyDataLabels Type:=xlDataLabelsShowPercent, LegendKey:=False _

        , HasLeaderLines:=True


   xlChart.PlotArea.Select

    With xlApp.Selection.Interior

        .ColorIndex = 2

        .PatternColorIndex = 1

        .Pattern = xlSolid

    End With

    With xlApp.Selection.Border

        .Weight = xlThin

        .LineStyle = xlNone

    End With

   xlChart.ChartArea.Select


     xlApp.Selection.AutoScaleFont = True

    With xlApp.Selection.Font

        .Name = "Arial"

        .FontStyle = "Fett"

        .Size = 10

        .Strikethrough = False

        .Superscript = False

        .Subscript = False

        .OutlineFont = False

        .Shadow = False

        .Underline = xlUnderlineStyleNone

        .ColorIndex = xlAutomatic

        .Background = xlAutomatic

    End With

    With xlChart.TextBoxes.Add(360, 204, 86, 15)

        .Select

        .AutoSize = True

        .Text = "Country filter: " & Länder

    End With

    xlApp.Selection.ShapeRange.IncrementLeft -345.82

    xlApp.Selection.ShapeRange.IncrementTop -194.4

    xlApp.ActiveChart.ChartArea.Select


    xlApp.Visible = True

    xlApp.DisplayAlerts = False

  • 4 Wochen später...
Geschrieben (bearbeitet)

So, also leider habe ich immernoch keine Lösung für das Problem finden können.

Ich konnte es nur weiter analysieren. Ich habe das Programm insgesamt 3 mal gestartet, bei jedem Start habe ich 10 mal den Button für die Erstellung der Diagramme angeklickt, mit folgenden Ergebnissen:


Durchlauf	Start 1		Start 2		Start 3

1:		hängt		hängt		hängt

2:		kein Problem	kein Problem	kein Problem

3:		hängt		hängt		hängt

4: 		kein Problem	kein Problem	kein Problem

5: 		hängt		hängt		hängt

6: 		hängt		hängt		hängt

7: 		kein Problem	kein Problem	kein Problem

8: 		kein Problem	kein Problem	kein Problem

9: 		hängt		hängt		hängt

10:		hängt		hängt		hängt

Da ja anscheinend ein festes Muster vorhanden ist, habe ich es mir angetan alle Codezeilen mit Einzelschritten abzuarbeiten. Am Code liegt es defenitiv nicht. Er wird ohne Fehler komplett durchlaufen und am Ende läuft nurnoch ein Timer, der die Uhrzeit im Hauptprogramm aktualisiert - sonst nichts.

Wie gesagt, unter älteren Versionen von Excel verliefen alle Tests erfolgreich. Nur Excel 2007 macht diese Probleme. Gibt es da evtl. Einstellungen die was Einschränken oder so?

Bearbeitet von Kaeyu

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...