Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1864to1868
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

Diagrammdatenbereich per VBA zuweisen

Diagrammdatenbereich per VBA zuweisen
28.01.2022 09:10:18
Siegfried
Hallo alle Excel-Wissenden,
bin nun bei einem Problem bei der variablen Datenzuweisung für Diagramme wieder an einem Punkt angelandet wo ich leider nicht mehr weiter komme.
Dazu auch im WEB nichts gefunden was mir den Weg dazu aufzeigen würde.
Ich habe Diagrammvorlagen welche, an und für sich fertig sind, im Diagrammdatenbereich aber z.B. für 26 Wochen ausgelegt, also für das I. oder/und II. Halbjahr.
Die erfassten Daten werden von Monat zu Monat eben immer mehr und würde dies aber auch gerne bei der Diagrammansicht auch sehen da sich ja die Balkenbreite von Monat zu Monat ändern würde.
Von Hand aus gelingt mir das bestens, nur wie ist/wäre dies in VBA umzusetzen?
Was mir auch nicht klar ist, was bewirken die Werte z.B.
  • Characters(1, 3). oder Characters(1, 5).
    With Selection.Format.TextFrame2.TextRange.Characters(1, 3).ParagraphFormat

  • Wäre schön, wenn mir jemand von Euch Wissenden da wieder weiterhelfen könnte!
    P.S.
    Habe es kurz nach Mitternacht 2x Versucht den Hilferuf abzusenden, wollte leider nicht.
    LG Siegfried
    
    Range(KopBer1).Copy
    Sheets("Blutwerte").Select
    Range("b32").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=True          ' Werte untereinander einfügen
    Application.CutCopyMode = xlCopy
    Range("b32").ClearContents ' li, oben B32 frei machen
    KopBer1a = Range("Blutwerte!A33")
    Range(KopBer1a).Copy
    Range("B32").Select     ' 06.01.-Do/KW 1 übertragen aus C34
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Application.CutCopyMode = xlCopy
    Range("b32").ClearContents  ' li, oben B32 frei machen
    SelectBer = Range("A34")       ' Erstellter Datenbereich z.B. Blutwerte!B32:AE33
    Range(SelectBer).Select
    Sheets("Diagramm4").Select          ' Blutzucker I. Halbjahr
    ActiveSheet.Unprotect
    ActiveChart.ChartArea.Select
    ActiveChart.ChartTitle.Select
    Selection.Caption = "blbl"
    Selection.Format.TextFrame2.TextRange.Characters.Text = Range("Blutwerte!b30") & " - " & Range("Blutwerte!H30")
    With Selection.Format.TextFrame2.TextRange.Characters(1, 3).ParagraphFormat
    '            .SetSourceData = Sheets("Blutwerte").Range(Selection.Address) ', plotby:=xlcolums
    .TextDirection = msoTextDirectionLeftToRight
    .Alignment = msoAlignCenter
    End With
    ActiveSheet.Protect
    
    Userbild
    https://www.herber.de/bbs/user/150737.zip

    4
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Diagrammdatenbereich per VBA zuweisen
    28.01.2022 09:42:35
    Rudi
    Hallo,
    für dynamische Diagrammen braucht man kein VBA.
    Mach aus deiner Datentabelle eine 'richtige' Tabelle und nimm die als Datenquelle für dein Diagramm. Das passt sich bei neuen Daten automatisch an.
    Alternativ kannst du mit dynamischen Namen arbeiten.
    Gruß
    Rudi
    AW: Diagrammdatenbereich per VBA zuweisen
    28.01.2022 11:23:06
    Beverly
    Hi Siegfried,
    versuche es mal so (ich hoffe, ich habe deinen Tabellenaufbau richtig interpretiert):
    
    Dim intLetzte As Integer
    Dim rngBereich As Range
    With Worksheets("Blutwerte")
    ' letzte benutzte Spalte in Zeile 23
    intLetzte = .Cells(23, Columns.Count).End(xlToLeft).Column
    ' Zellbereich in Zeile 23 festlegen Spalte B bis letzte belegte Spalte
    Set rngBereich = .Range(.Cells(23, 2), .Cells(23, intLetzte))
    End With
    With Sheets("Diagramm1")
    .Unprotect
    ' Zellbereich zuweisen
    .SetSourceData Source:=rngBereich
    ' Diagrammtitel bearbeiten
    With Sheets("Diagramm1").ChartTitle
    .Caption = Range("Blutwerte!b30") & " - " & Range("Blutwerte!H30")
    With .Format.TextFrame2.TextRange.ParagraphFormat
    .TextDirection = msoTextDirectionLeftToRight
    .Alignment = msoAlignCenter
    End With
    End With
    .Protect
    End With
    
    Zu den von Rudi vorgeschlagenen VBA-freien Lösungen schau dir die Arbeitsmappe Dynamisches Diagramm 1 auf meiner HP, Seite Diagramme an.
    Bis später
    Karin

    Anzeige
    AW: Diagrammdatenbereich per VBA zuweisen
    28.01.2022 23:58:00
    Siegfried
    Hallo Karin,
    deine Anregung hat mich bereits ein Stück weiter gebracht, DANKE.
    Dauert natürlich etwas, der jüngste bin ich ja auch nicht mehr, bis ich alle meine Diagramm-Möglichkeiten, sind ja nur 3 welche sich aber in I. und II. Halbjahr unterteilen, also 6 Stück und eines für den Bereich Monats-Auswertung. Aber es wird langsam, nur auf meine Frage -
    Was mir auch nicht klar ist, was bewirken die Werte z.B.
    
    Characters(1, 3). oder Characters(1, 5).
    With Selection.Format.TextFrame2.TextRange.Characters(1, 3).ParagraphFormat
    
    rein nur aus Interesse. Kann mir keinen echten Reim darauf machen, eventuell weißt du dazu eine Antwort, bitte.
    Gruß Siegfried
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige