Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1408to1412
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
Dynamisches Diagramm mit Makro
24.02.2015 14:08:01
Manu
Hi Community,
ich habe mir bislang schon ein ganzes Stück für meine finale Version zusammengezimmert. Jedoch fehlt mir bislang noch, dass sich mein Diagramm mittels Makro dynamisch erstellen lässt.
https://www.herber.de/bbs/user/95963.xlsm
Kurz zur "Tastenbelegung":
"Spalte Einfügen" fügt eine bestimmte Anzahl (Zelle F5) an Spalten nach Spalte "G" ein.
"INIT" löscht alle eingefügten Spalten zwischen "Label" und "Fill".
"Diagramm Update" nimmt alle Werte zwischen Zeile 7 und "Anzahl verw. Zeilen" (Zelle C5) und fügt diese in das Diagramm ein.
Mein Problem ist jetzt, wenn ich Spalten einfüge, verschiebt sich logischerweise auch das Diagramm. Wie kann ich das stoppen bzw. verhindern/umgehen?
Bin um jeden Ansatz dankbar

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dynamisches Diagramm mit Makro
24.02.2015 15:07:09
yummi
Hallo Manu,
Du kannst mit den beiden Funktion die Position merken und setzen

Function MerkePos(ByRef dtop As Double, ByRef dleft As Double)
With Sheets("Waterfall").ChartObjects(1)
dtop = .top
dleft = .left
End With
End Function
Function SetzePos(ByVal dtop As Double, ByVal dleft As Double)
With Sheets("Waterfall").ChartObjects(1)
.top = dtop
.left = dleft
End With
End Function
Den Aufruf machst du am Anfang deiner Splten einfügen bzw. löschen (merke) und den Setzen Aufruf dann nach deiner Spaltenmanipulation.
also so:

Sub SpaltenEinfügen()
Dim Einfüg As Integer
Dim dtop As Double
Dim dleft As Double
Einfüg = Cells(5, 6).Value
Call MerkePos(dtop, dleft)
[H1].Resize(, Einfüg).EntireColumn.Insert
Call SetzePos(dtop, dleft)
End Sub
Sub LöscheSpalten()
Dim rngRange As Range
Dim dtop As Double
Dim dleft As Double
Set rngRange = ErmittleLöschbereich
Call MerkePos(dtop, dleft)
SpaltenLöschen rngRange
Call SetzePos(dtop, dleft)
End Sub
Das Problem ist nur, durch dein Einfügen von Spalten kann es dann dazu kommen, dass der Bereich wo sich das Diagramm vorher befand jetzt eine gefüllte Spalte ist. Ich weiß nicht, ob du das wirklich willst.
Gruß
yummi
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige