Kaeyu Geschrieben 28. Juli 2010 Geschrieben 28. Juli 2010 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 Zitieren
User-Root Geschrieben 28. Juli 2010 Geschrieben 28. Juli 2010 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. Zitieren
Kaeyu Geschrieben 28. Juli 2010 Autor Geschrieben 28. Juli 2010 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 Zitieren
Kaeyu Geschrieben 24. August 2010 Autor Geschrieben 24. August 2010 (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 24. August 2010 von Kaeyu Zitieren
Empfohlene Beiträge
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.