Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Diagrammachse variabel gestalten
#21
Hallöchen,

also, der zuletzt gepostete Code funktioniert oder lief der einfach nur durch und es ist nix passiert??
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#22
Hallo Andre,

Verzeihe mir dass ich erst jetzt antworte. Der Code funktioniert leider nicht. Wenn ich das Makro dem Diagramm zuweise passiert nicht, nicht mal eine Fehlermeldung.
Was jedoch komisch ist. Über Diagramm -> Makros zuweisen wird mir das Makro angezeigt. Jedoch wenn ich auf Entwicklertools->Makros klicke nicht. Also erstelle ich das Makro neu mit dem Namen Worksheet_Change und ergänze den Rest des Code. Wenn ich ihn nun ausführen will ist das Makro Worksheet_Change aus der liste der erstellten Makros verschwunden.
Befürchte dass niemand aus dieser Problembeschreibung schlauer wird... Bin leider noch ganz am Anfang beim Umgang mit VBA.

Vielen Dank,

LG Johannes
Antworten Top
#23
Hi,

Dein Makro taucht nie in der Liste der zu startenden Makros auf, weil es eines ist, das automatisch bei Änderung in dem Blatt startet.
Wenn es in dem Blatt eine Änderung in der Zelle AC2 gab, wird das Diagramm verändert, wenn nein, dann wird das Makro ohne weitere Bearbeitung beendet.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Address <> "$AC$2" Then Exit Sub
   With ThisWorkbook.Worksheets("Tabelle1.5").ChartObjects("Diagramm 1").Chart
      .Axes(xlValue).MinimumScale = Target.Value
   End With
End Sub
Antworten Top
#24
Hallo Ralf,

Ah ok ich verstehe. Das erklärt das. Leider will es trotzdem nicht funktionieren. Habe es auch versucht mal selber in die Beispieldatei die ich hier auch hochgeladen habe zu implementieren (also ohne den Code der von Bamberg geschrieben wurde) und auch das kriege ich nicht gebacken.

Vielleicht ist mein Vorgehen einfach falsch?
Ich gehe unter Entwicklertools auf Makros und erstelle das Makro Worksheet_Change und ergänze den Rest des Codes .Dann speicher ich das als .xlsm Datei. Leider tut sich nichts ich kann meine Zelle AC2 nach Belieben ändern und an dem Diagramm tut sich nichts.

Vielen Dank,

Gruß Johannes
Antworten Top
#25
Hi,

sowohl mit Deiner Datei, als auch mit der von Gerd funktioniert das Makro.
Teste es eben mal durch Eingabe in Zelle F2.

.xlsm   Diagrammstart manuell.xlsm (Größe: 21,98 KB / Downloads: 1)
[-] Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:
  • Araxx
Antworten Top
#26
Servus Johannes,

(05.12.2017, 09:52)Araxx schrieb: Vielleicht ist mein Vorgehen einfach falsch?
Ich gehe unter Entwicklertools auf Makros und erstelle das Makro Worksheet_Change und ergänze den Rest des Codes .Dann speicher ich das als .xlsm Datei. Leider tut sich nichts ich kann meine Zelle AC2 nach Belieben ändern und an dem Diagramm tut sich nichts.
Ja, Dein Vorgehen ist falsch!
Öffne mit ALT+F11 den VBA Editor. Im linken Bereich findest Du den Projekt-Explorer. Dort suchst Du Dir die Tabelle mit Deinem Chart aus und DOPPELKLICKst darauf. Damit öffnet sich ein Codebereich, der speziell zu dieser Tabelle gehört. Dort kopierst Du meinen Code rein und schließt den VBA Editor (Kreuz rechts oben) wieder.

LG Gerd
[-] Folgende(r) 1 Nutzer sagt Danke an Bamberg für diesen Beitrag:
  • Araxx
Antworten Top
#27
Hallo,

Tausend Dank Gerd das war der Fehler. Und natürlich auch dann dich Ralf. Es funktioniert jetzt endlich wie ich mir das vorstelle.

Ich habe jedoch noch eine kleine weitere Frage. Ich erstelle in meiner Mappe nach einer Vorlage (für die ich dieses Makro jetzt erstellt habe) 15 weitere Tabellenblätter. Nun hat jedes dieser Blätter ebenfalls das Diagramm bei dem ich die xAchse ändern möchte. Kann ich das in VBA implementieren dass das Makro für meine ganze Arbeitsmappe gilt. Das Diagramm heißt auf jedem Blatt Diagramm1. Vielleicht kann man da ja eine Art Schleife bauen. Denn der Wert der den Anfang der Achse vorgibt ist auch in jedem Blatt in der selbe Zelle (X13) enthalten. Habe mich schon etwas probiert aber es mag nicht ganz klappen.

Also ab Blatt 4 sind es die Blätter die nach Vorlage erstellt werden. Für diese möchte ich das Makro anpassen.

Kann ich ein Ereignismakro überhaupt in meiner gesamten Arbeitsmappe anlegen?

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   Dim i As Integer
    For i = 4 To Worksheets.Count
       With Worksheets(i)
           If Target.Address <> "$X$13" Then Exit Sub
           With ThisWorkbook.Worksheets(i).ChartObjects("Diagramm 1").Chart
           .Axes(xlValue).MinimumScale = Target.Value
       End With
   Next
End Sub
Gruß Johannes
Antworten Top
#28
Hi,

ja, kannst Du.

Lege es mal hinter "DieseArbeitsmappe".
Antworten Top
#29
Hallo,

Vielen Dank für deine Antwort. Ich habe jetzt noch etwas rumprobiert und bemerkt dass, wenn mein Makro in meiner Vorlage steht, und ich nach dieser neue Arbeitsblätter erstelle, das Makro auch logischerweise in ihnen enthalten ist. Somit ist die Implementierung des Makros innerhalb der gesamten Arbeitsmappe gar nicht nötig.
Wenn ich das Makro korrekt in eine Schleife einbaue müsste es dann ja für alle Arbeitsblätter funktionieren. Kannst du vielleicht mal über meinen Code drüber schauen? Ich bekomme die Fehlermeldung ''Next ohne For''. Aber es ist doch beides in meinem Code?

Gruß Johannes
Antworten Top
#30
Morgen Johannes,

nimm Deine For-Next-Schleife wieder aus dem Code-Bereich. Verwende meinen ursprünglichen (Original) Code.
Wie Du schon sagst, wird beim Kopieren der Tabelle auch der Code mitkopiert. Daher kannst Du auf die Schleife komplett verzichten!

LG Gerd
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste