Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
488to492
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
488to492
488to492
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Diagramm erstellen mit VBA

Diagramm erstellen mit VBA
21.09.2004 11:44:28
Rainer
Hallo Leute,
ich möchte ein Diagramm erstellen mit Daten aus verschiedenen Tabellenblättern.
Die Daten sind in jeden Blatt immer an der selben Stelle.
Also müsste ich doch eine Schleife programmieren können mit der ich alle Blätter anspreche.

Sub Diagramm_erstellen()
Dim i
For i = 1 To 100
if worksheets(i)=true
Anweisung
Next i
End Sub

Ich bräuchte bitte Hilfe mit der Schleife und dann natürlich auch noch mit dem Diagramm.

Sub Makro2()
' ins Diagramm übertragen
Sheets("Gesamt").Select
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.PlotArea.Select
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(2).Values = "='2004 (1)'!R196C3:R202C3"
ActiveChart.SeriesCollection(2).Name = "='2004 (1)'!R1C2:R1C2   "
End Sub

Dieses Diagramm sollte in die Schleife eingebunden werden. Aber ich krieg das einfach nicht hin.
Danke

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramm erstellen mit VBA
Dan
Hallo, ich habe mal etwas ehliches gemacht, also habe ich den Code fuer Deinen Fall einbischen geaendert. Hat es Dir geholfen? Gruss Dan.
(CONST_BEREICH enthealt den Bereich, dessen Werte in den Series abgebildet werden sollen)


Option Explicit
Private Const CONST_BEREICH As String = "R1C1:R1C2" ' Bereich "A1:B1"
Private Const CONST_X_ACHSE_BEREICH = "A2:B2"       ' X-Achse Werte
Public Sub Add_Diagramm()
    Dim Chart_Objects As ChartObjects
    Dim Chart_Object As ChartObject
    Dim Diagramm As Chart
    Dim SeriesNeu As Series
    Dim SeriesCol As SeriesCollection
    
    ' Chart_Objects sind alle ChartObjects on Sheet (0 to Chart_Objects.Count)
    Set Chart_Objects = ActiveSheet.ChartObjects
    
    ' Chart_Object ist der Konteiner fuer den Chart, es ist die Aussenhuelle des Charts
    Set Chart_Object = Chart_Objects.Add(Left:=10, Top:=10, Width:=150, Height:=150)
    
    ' durch die Variable Chart_Object kann man einige Eigenschafften des Konteiners bearbeiten
    With Chart_Object
        ' Height, Width, Left Pos. und Top Pos. des Konteiners und andere Eigenschafften
        .Height = 256
        .Width = 321
        .Left = 142
        .Top = 92
        .Name = "Chart_Object"
        .Placement = xlFreeFloating
        .PrintObject = True
        .ProtectChartObject = False
        .RoundedCorners = True
        .Shadow = True
        .Visible = True
        
        ' Border des Konteiners
        With .Border
            .ColorIndex = 3
            .LineStyle = msoLineSingle
            .Weight = xlThin
        End With
        
        ' Interior des Konteiners
        With .Interior
            .ColorIndex = 15
            .Pattern = 5
            .PatternColor = 18
        End With
    End With
    
    '----------------------------------------------------
    ' den Chart selbst bekommt man unter der Eigenschaft Chart des Chart_Objectes
    Set Diagramm = Chart_Object.Chart
    Set SeriesCol = Diagramm.SeriesCollection
    
    Dim sh As Worksheet, X_Achse_Bereich As Range
    
    Set X_Achse_Bereich = Range(CONST_X_ACHSE_BEREICH)
    
    For Each sh In ActiveWorkbook.Worksheets
    
        With Diagramm
            Set SeriesNeu = SeriesCol.NewSeries
            With SeriesNeu
                .Name = "Series_" & sh.Name
                .Values = "=" & sh.Name & "!" & CONST_BEREICH
                .XValues = X_Achse_Bereich
            End With
        End With
    
    Next sh
End Sub


Anzeige
AW: Diagramm erstellen mit VBA
Rainer
Danke für die Antwort.
Hab die Lösung schon.

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige