11.1k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo liebe Forumsmitglieder,
ín meiner Excel Arbeitsmappe befinden sich ein

Tabellenblatt "Dateneingabe"und ein Diagrammblatt "Markteinführung".

Im Diagramm wird eine Übersicht über die Markteinführung verschiedener Produkte und dessen Varianten, ähnlich wie bei einem Gantt-Diagramm angezeigt.

Die Daten hierfür kommen aus dem Tabellenblatt "Dateneingabe".

Jetzt zur eigenetlichen Problematik:
Ich möchte die X-Achse variabel gestalten, d.h. ich möchte im Tabellenblatt "Dateneingabe" in der Zelle B4 den minimalen X-Achsenwert und in C5 den maximalen X-Achsenwert im Format tt/mm/jjjj eingeben.

Danach soll sich das Diagramm entsprechend ausrichten. Wer kann mir bei diesem Problem weiterhelfen?

Ich weiß das dies nur mit VBA funktioniert. Da ich mich damit jedoch nur sehr wenig auskenne, wäre ich über eine ausführliche Hilfestellung sehr dankbar!

Vielen Dank!

Grüße David

12 Antworten

0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi David,

mache einen Rechtsklick auf den Tabellenreiter "Dateneingabe" und kopiere den betreffenden Code ins rechte (obere) Codefenster:

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Address
Case "$B$4", "$C$5"
With Charts(""Markteinführung").Axes(xlValue)
.MinimumScale = Range("B4")
.MaximumScale = Range("C5")
End With
End Select
End Sub


Bis später,
Karin
0 Punkte
Beantwortet von
Hallo Karin,
Danke erstmal für Deine Hilfe.
Habe den Code entsprechend Deiner Anleitung in das Tabellenblatt "Dateneingabe" kopiert.

Leider tut sich jedoch nichts. Soll heißen die Zeitskala (X-Achse) bleibt wie sie ist.

Gruß

David
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi David,

da kann ich leider nichts weiter dazu sagen, da ich deine Arbeitsmappe nicht kenne. Du gibst die Daten Min und Max auch wirklich in B4 und C5 im Tabellenlbatt "Dateneingabe" ein?

Bis später,
Karin
0 Punkte
Beantwortet von
Hallo Karin,
Ich kann Dir die Datei nur näher beschreiben, da sie der Geheimhaltung unterliegt.

Liegt es vielleicht daran, dass ich zwei Diagramme in einem habe? Habe ein gestapeltes Balkendiagramm (Rubrikenachse, links) und ein "vergewaltigtes" XY Diagramm ohne Linien an der Sekundärachse (rechts).

Um die Markteinführung darzustellen, gebe ich einen Endpunkt an, die Differenz zwischen Startpunkt und Endpunkt ist der eigentlich sichtbare Balken. Somit teilt sich das Balkendiagramm in zwei übereinander gestapelte Balken. Der erste ist weiß (ausgeblendet) der zweite ist grau (sichtbar).

Bei dem XY Diagramm nutze ich nur die Symbole um die Varianten der einzelnen Produkte darzustellen (Linien sind auch nicht sichbar).
Dazu kommt, dass das Balkendiagramm gruppiert ist. Ein Produkt und für jeden Markt ein Balken.

Zur Entnahme da habe ich mich wohl vertippt. B4 Start und C4 Stop, aber das habe ich im Makro schon abgeändert.

Grüße David
0 Punkte
Beantwortet von
Hallo Karin,
Kommando zurück,
weiß zwar nicht was ich gemacht habe, aber jetzt funktioniert es....

VIELEN DANK für Deine Hilfe.

Grüße

David
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo DaveB,

nur zur Info, da Beverly nichts dazu geschrieben hat, wann der VBA-Code ausgeführt wird.
Der VBA-Code wird immer dann ausgeführt, wenn in dem Tabellenblatt, in dem Du den VBA-Code eingefügt hast und in dem sich das Diagramm befindet, eine Änderung, z.B. durch eine Eingabe in einer Zelle, eintritt.
Ich vermute daher, dass Du bei Deiner Antwort, als Du geschrieben hast, dass der Code nicht funktioniert, noch keine Änderung durch z.B. eine Eingabe in dem Tabellenblatt eingetreten war. Als dann irgend eine Änderung eingetreten ist, wurde auch der Code ausgeführt und Du hast die Änderung an dem Diagramm gesehen.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von
Hallo Oliver,
das kann gut sein, vielleicht hatte ich echt nicht ENTER gedrückt sondern nur eingefügt und geschaut.

Naja jetzt funktioniert es perfekt.

Da Ihr zwei euch anscheinend echt gut auskennt, hätte ich noch ne weitere Frage. Ist es möglich, Autoformen( Pfeile und Elipsen) per VBA ein- und auszublenden? Weil nen Menüpunkt habe ich hierzu nicht gefunden. Und mit der Ebene lässt sich sowas ja auch nicht realisieren, weil das Tabellenblatt ja immer die hinterste Ebene ist.

Wenn ja wie geht sowas?

MfG
David
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi David,

in VBA kann man (fast) alles machen ;-)). Zeichnungselemente haben die Eigenschaft Visible, und diese kann man auf True (sichtbar) oder False (nicht sichtbar) setzen - nach diesem Prinzip:

ActiveSheet.Shapes("Oval 1").Visible = True

Bis später,
Karin
0 Punkte
Beantwortet von
Hi Karin,
das ist schonmal gut. Würde die gerne per Button ein- und ausblenden.

Vllt. kannst Du mir da n Schema mit einer Form geben, den rest bringe ich dann angepasst.

Vielen Dank!

MfG
David
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo David,

nachfolgend das Makro, welches Du einem Button zuweisen musst.

Option Explicit

Sub AUS_EIN()
If ActiveSheet.Shapes("Oval 1").Visible = False Then
ActiveSheet.Shapes("Oval 1").Visible = True
ElseIf ActiveSheet.Shapes("Oval 1").Visible = True Then
ActiveSheet.Shapes("Oval 1").Visible = False
End If
End Sub


Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 4 oder 16 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.

Bei Fragen melde Dich.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
...