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

Diagrammformatierung sperren

Diagrammformatierung sperren
07.02.2022 19:26:18
Simon
Hallo zusammen,
ich komme hier leider wieder mal nicht weiter. Ich habe ein "gestapeltes Säulendiagramm", das aus bestimmten Zeilen seien Daten bezieht. Nun kopiere ich Werte von in eine darunterliegende Zeile und erweitere per VBA den Diagrammbereich. Das klappt auch gut, allerdings zerstört dieses Makro dann die Formatierung meines Diagramms. (z.B. habe ich unter "Daten auswählen" die Zeilen mit den Spalten getauscht. Das muss ich jetzt immer manuell nochmal machen)
Gibt es einen Weg, wie ich die Formatierung des Diagramms "locken" kann?
Ich hoffe, jemand kann helfen!
Vielen Dank und viele Grüße
Simon

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagrammformatierung sperren
07.02.2022 19:43:31
onur
"Das klappt auch gut" -Offen sichtlich nicht.
Liegt ja wohl an deinem Makro - wieso lässt du das Makro nicht einfach vom Macrorecorder schreiben ?
AW: Diagrammformatierung sperren
07.02.2022 19:54:16
Simon
klappt auch gut war darauf bezogen, dass das Makro automatisch den richtigen Bereich auswählt....
Ich habe über den Makrorekorder angefangen.
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.SetSourceData Source:=Range("test!$A$30:$R$38")
Dann kriege ich das heraus. Aber sobald ich das über einen CommandButton ausführe (Dann in dieser Form)
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.SetSourceData Source:=Range(.Cells(30, "A"), .Cells(last, "R"))
klappt es nicht mehr und ich muss die Formatierung von vorne machen...
Anzeige
AW: Diagrammformatierung sperren
07.02.2022 20:10:22
onur
Warum lässt du es denn nicht so (und änderst nur das mit "letzte Zeile" ?

ActiveChart.SetSourceData Source:=Range("test!$A$30:$R$" & last)

AW: Diagrammformatierung sperren
07.02.2022 20:26:59
Simon
Das ändert leider nichts an meinem Problem. Ich habe die Datei mal hochgeladen. Vielleicht hilft das ja weiter, ich kann es leider schlecht beschreiben.
https://www.herber.de/bbs/user/150977.xlsm
Das ganze Diagramm ändert sich, sobald man den Button geklickt hat und das Makro ausgeführt hat.
Der zugehörige Code sind die zwei Zeilen ganz unten...
Anzeige
AW: Diagrammformatierung sperren
07.02.2022 20:42:13
onur
ActiveChart.SetSourceData Source:=Range("test!$A$30:$R$" & last), PlotBy:=xlColumns
AW: Diagrammformatierung sperren
07.02.2022 20:48:50
Simon
Vielen Dank, das isses!
So ärgerlich, dass ich mich jetzt wieder Stunden mit einem Problem beschäftigt habe, das sich mit einer Codezeile beheben lässt.
Also danke nochmal :D
Gerne !
07.02.2022 20:50:07
onur
Wenn du die Daten transponiert hast, musst du das auch dem Diagramm mitteilen. :)
Gerne !
07.02.2022 21:20:50
onur
All die
Application.CutCopyMode = False
kannst du löschen, die löschen den Clipboard, der sowieso sofort wieder neu befüllt wird - völlig überflüssig (lass höchstens den letzten stehen) .
SO ist es noch kürzer:

Private Sub CommandButton1_Click()
Dim Summenstring1 As String
Dim last As Long, i
last = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
With ActiveSheet
.Range(.Cells(last, "A"), .Cells(last, "A")).Value = Format(Date, "dd.mm.yyyy")
For i = 0 To 2
.Cells(4 + i, 5).Copy ActiveSheet.Cells(last, 2 + i)
Next i
For i = 0 To 2
.Cells(8 + i, 5).Copy
.Cells(last, 5 + i).PasteSpecial Paste:=xlValues
Next i
For i = 0 To 6
.Cells(11 + i, 5).Copy ActiveSheet.Cells(last, 8 + i)
Next i
.Cells(18, 5).Copy
.Cells(last, 15).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
For i = 0 To 1
.Cells(19 + i, 5).Copy ActiveSheet.Cells(last, 16 + i)
Next i
Summenstring1 = "=SUMME(B32:Q32)"
Cells(last, 18).FormulaLocal = Summenstring1
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.SetSourceData Source:=Range("test!$A$30:$R$" & last), PlotBy:=xlColumns
End With
End Sub
Hat das einen Sinn, dass Zeile7 leer ist und in Spalten E,F,G und O nur Werte kopiert weden?
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige