Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1156to1160
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel stürzt ab bei Codeausführung

Excel stürzt ab bei Codeausführung
Herbert
Hallo zusammen,
ich habe folgenden Code geschrieben, um ein Diagramm zu erstellen. Vorher werden über Inputbox noch Werte für das Diagramm abgefragt. Am Ende stürzt Excel immer ab.
Sub Diagramme_einzeln() 'Einzeldiagramm erstellen
Dim i As Integer 'Startzeile, Item
Dim n As Integer 'Jahreszahl des Diagrammbeginns
Dim x As String 'Spaltenbuchstabe, in der Jahreszahl steht
Dim spalte As Integer 'Spalte, in der Jahreszahl steht
Dim k As Integer 'Itemnummer
On Error GoTo ENDE
k = InputBox("Für welches Item soll das Diagramm erzeugt werden?", "Einzeldiagramm erzeugen", 1) _
n = InputBox("Mit welchem Jahr soll das Diagramm beginnen?", "Startjahr wählen", 2006)
Select Case n 'Jahreszahl in Spalte umwandeln
Case 2003: x = "M"
Case 2004: x = "N"
Case 2005: x = "O"
Case 2006: x = "P"
Case 2007: x = "Q"
Case 2008: x = "R"
Case 2009: x = "S"
Case 2010: x = "T"
End Select
spalte = n - 1990 'Spaltennummer der Jahreszahl
i = k + 13 'Zeile des Items
Sheets("Germany").Select
ActiveSheet.Unprotect
ActiveSheet.Shapes.AddChart.Select 'Balkendiagramm erzeugen
ActiveChart.SetSourceData Source:=Range(Cells(spalte, i), Cells(20, i))
ActiveChart.SeriesCollection(1).XValues = "='Germany'!" & x & "1:T1" 'Werte der X-Achse
ActiveChart.SeriesCollection(1).Name = "=""Germany""" 'Reihenname
ActiveChart.SeriesCollection(1).Values = "='Germany'!" & x & CStr(i) & ":T" & CStr(i) ' _
Werte des Items
ActiveChart.SeriesCollection.NewSeries 'neue Reihe
ActiveChart.SeriesCollection(2).Name = "=""Overall""" 'Vergleich mit Global
ActiveChart.SeriesCollection(2).Values = "='Overall'!" & x & CStr(i) & ":T" & CStr(i)
ActiveChart.SeriesCollection(2).XValues = "='Germany'!" & x & "1:T1"
ActiveChart.ApplyChartTemplate ( _
"C:\Users\XXX\AppData\Roaming\Microsoft\Templates\Charts\Diagramm1.crtx") 'Template für
Layout verwenden
ActiveChart.SetElement (msoElementChartTitleAboveChart) 'Diagrammtitel einfügen
ActiveChart.ChartTitle.Text = Range("L" & CStr(i)) 'Diagrammtitel ist Itemname
ActiveChart.Location Where:=xlLocationAsNewSheet, Name:=n & "-Item " & Range("J" & CStr(i))
'Diagramm in neues Sheet verschieben, Name ist Jahr-Itemnummer
ENDE:
Sheets("Germany").Protect
End Sub
Der Befehl am Ende (.Protect) bringt Excel zum Absturz und ich weiß nicht, warum. In einem anderen ähnlichen Code funktioniert es einwandfrei.
Vielen Dank für einen Tip.

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Excel stürzt ab bei Codeausführung
19.05.2010 15:54:02
Peter
Hallo Herbert,
ich nehme an, dein Blatt "Germany" muss erst wieder aktiviert werden, weil es nicht mehr das aktuelle Blatt zum 'protecten' ist.
Gruß Peter
Prinzipfrage
19.05.2010 16:06:54
Rudi
Hallo,
warum erstellst du das Diagramm nicht gleich auf einem neuen Blatt, wenn du es doch verschiebst?
Dann sparst du dir auch das Unprotect und Protect.
Gruß
Rudi
AW: Prinzipfrage
19.05.2010 16:31:56
Herbert
Hallo Rudi,
danke, gute Idee.
Weißt du, wie ich den Code dann anpassen muss, um das Diagramm gleich in einem neuen Blatt zu erstellen, so dass es dann auch auf dem ganzen Blatt angezeigt wird und nicht nur klein mitten auf dem Tabellenblatt?
Ich bekomme da bisher kein gescheites Ergebnis.
Vielen Dank.
Gruß,
Herbert
Anzeige
AW: Prinzipfrage
19.05.2010 16:36:53
Rudi
Hallo,
einfach Charts.Add
Bemühe mal den Recorder.
Gruß
Rudi
AW: Prinzipfrage
19.05.2010 17:17:05
Herbert
Danke, mit Charts.Add am Anfang funktioniert es.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige