Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1216to1220
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

Achsenbeschriftung, VBA durch min max aus Zelle

Achsenbeschriftung, VBA durch min max aus Zelle
Peter
Hallo liebe Leute,
ich habe wieder ein Problem.
Ich habe ein simples Leistung/Drehzal Diagramm in Abhängigkeit der Drehzahl.
Die Leistung ist links, als vertikale Primärachse, das Drehmoment rechts als vertikale Sekundärachse und die Drehzahl als vertikale Primärachse angeordnet.
Bin am Verzweifeln. Ich habe mir schon die Beispiele hier angeschaut und auch die Beispiele bei Beverly´s Hompage. Leider habe ich keinen geeigneten VBA code gefunden den ich hernehmen kann. Oder ich stell mich wieder einmal an....
Bitte schaut euch meine Bespieldatei an. Im Grunde ein X,Y Diagram mit 2 unterschiedlichen Y Datenreihen in Abhängigkeit von einem X Datenbereich.
Für alle 3 Datenreichen wird das jeweilige Minimum und das Maximum ermittelt.
Ich möchte nun das alle 3 Achsen nur in dem jeweilig zugehörigen Min/Max Bereich dargestellt werden.
Excel formatiert es aber immer (auch in automatischer Formatierung der Achsen) beginnend mit 0!
Ich bekomme es einfach nicht hin!!!!
Könnt Ihr mir da weiterhelfen?
Beispiel Datei findet ihr hier:
https://www.herber.de/bbs/user/75446.xlsx
Gruß Peter
AW: Achsenbeschriftung, VBA durch min max aus Zelle
25.06.2011 08:28:33
Beverly
Hi Peter,
mit diesem Code im Codemodul des Tabellenblattes werden die Min und Max angepasst, sobald im Bereich C9:E21 eine Eingabe erfolgt:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C9:E21")) Is Nothing Then
With ActiveSheet.ChartObjects(1).Chart
.Axes(xlCategory).MinimumScale = Range("C6")
.Axes(xlCategory).MaximumScale = Range("C7")
.Axes(xlValue, xlPrimary).MinimumScale = Range("D6")
.Axes(xlValue, xlPrimary).MaximumScale = Range("D7")
.Axes(xlValue, xlSecondary).MinimumScale = Range("E6")
.Axes(xlValue, xlSecondary).MaximumScale = Range("E7")
End With
End If
End Sub



Anzeige
AW: Achsenbeschriftung, VBA durch min max aus Zelle
25.06.2011 11:24:00
Peter
Hallo Karin,
danke für Deine schnelle Antwort. Leider bekomme ich noch nicht hin. Habe den Code in ein Modul hineinkopiert und wollte das Makro dann durch einem Buton auslösen. Aber das Makro ließ sich nicht auswählen.
Ich denke das hängt zusammen mit dem "Code im Codemodul" was ich nicht verstehe. Ich denke mit VBA bin ich dann doch dann eher ein "blutiger" Anfänger, als nur "Anfänger".
Da die Diagramme eigentlich nachher auch in Tabbelle 2 und Tabelle 3 sein sollen, (Datenbereich is ja in Tabelle 1) ist es der Code dann noch ein bischen schwirieger.
Könntest Du mir bitte helfen?
Viele Grüße Peter
Anzeige
AW: Achsenbeschriftung, VBA durch min max aus Zelle
25.06.2011 12:52:49
Beverly
Hi Peter,
wenn dein tatsächlicher Aufbau anders ist, dann solltest du auch ein dementsprechendes Beispiel hochladen und keins, welches den Originalbedingungen nicht entspricht - das mach es den Helfern einfacher, eine auf das tatsächliche Problem zugeschnittene Lösung zu erstellen.
Mache einen Rechstklck auf den Reiter der Tabelle1 -&gt Code anzeigen und kopiere den folgenden Code ins Codefenster:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C9:E21")) Is Nothing Then
With Worksheets("Tabelle2").ChartObjects(1).Chart
.Axes(xlCategory).MinimumScale = Range("C6")
.Axes(xlCategory).MaximumScale = Range("C7")
.Axes(xlValue, xlPrimary).MinimumScale = Range("D6")
.Axes(xlValue, xlPrimary).MaximumScale = Range("D7")
.Axes(xlValue, xlSecondary).MinimumScale = Range("E6")
.Axes(xlValue, xlSecondary).MaximumScale = Range("E7")
End With
With Worksheets("Tabelle3").ChartObjects(1).Chart
.Axes(xlCategory).MinimumScale = Range("C6")
.Axes(xlCategory).MaximumScale = Range("C7")
.Axes(xlValue, xlPrimary).MinimumScale = Range("D6")
.Axes(xlValue, xlPrimary).MaximumScale = Range("D7")
.Axes(xlValue, xlSecondary).MinimumScale = Range("E6")
.Axes(xlValue, xlSecondary).MaximumScale = Range("E7")
End With
End If
End Sub



Anzeige
AW: Achsenbeschriftung, VBA durch min max aus Zelle
25.06.2011 14:28:51
Peter
Hallo Karin, vielen Dank für deine Gedult, sorry für das Missverständnis,
hatte geglaubt, dass ich später es einfach mit copy and paste in eine anderes Blatt einfügen kann und dann wärs...falsch gedacht.
Ich habe aber deinen Code nun sogar in alle drei Tabellenblätter eingefügt, aber die Diagramme in Tabellenblatt 2 und 3 ändern nicht ihre Achsen. Fangen immer noch bei 0 an.
Muss ich da noch irgendwie diesen Code "aktivieren", wenn ja wie?
Kannst Du bitte Dir mein überarbeitetes file anschauen und mir den Fehler aufzeigen?
https://www.herber.de/bbs/user/75447.xlsm
Viele Grüße Peter
Anzeige
AW: Achsenbeschriftung, VBA durch min max aus Zelle
25.06.2011 15:12:52
Beverly
Hi Peter,
der Code gehört nur - wie ich schon geschrieben habe - ins Codemodul von Tabelle1, denn dort änderst du ja die Einträge. Wenn du nun im Bereich C9:E21 einen Wert einträgst, werden beide Diagramme korrekt angepasst.


AW: Achsenbeschriftung, VBA durch min max aus Zelle
25.06.2011 15:34:11
Peter
Karin, danke Dir Du bist wiklich super! Hat geklappt, musste wirklich nur noch die Werte ! ändern ! dann gings!
Mann bin ich bl....!
Danke Dir nochmal.
Gruss Peter
AW: Achsenbeschriftung, VBA durch min max aus Zelle
25.06.2011 18:24:55
Peter
Hallo Karin habe alles hinbekommen.
Die automatische Anpassung der Min Max werte wird übernommen, allerdings nur wenn ich sie per Hand eingebe
Wenn ich aber alle Felder der "Eingabezellen" mit Formeln verknüpfe und sich der Wert dann "nur" per Formel ändert, aktualiesiert es sich leider nicht von selbst.
Nur wenn ich dann zusätzlich in die Zelle mit der Maus "reinklicke" und dann nichts weiter tue als "enter" zu drücken um somit nur die Formel bestätige, werden alles Achsen des Diagramms aktualisiert.
Auch die Aktualisierungsfunktion mit F2-Enter geht leider nicht.
Sorry, hatte leider vorher nicht gewusst, das das nicht geht. Gibt es vielleicht ein anderes "Aktualisierungs" Makro das man mit eine Button auslösen könnte, welches dann die VBA Formel aktualisiert und somit die Diagramm Achsenskalierung?
Gruss Steffen
Anzeige
AW: Achsenbeschriftung, VBA durch min max aus Zelle
25.06.2011 19:01:36
Beverly
Hi Peter (oder Steffen?),
in welchem Tabellenblatt/welchen Tabellenblättern und in welchen Zellen befinden sich die Ausgangsdaten für die Formeln? Möglicherweise kann man den Code daran so anpassen, dass diese Zellen auf eine Eingabe überprüft werden.


AW: Achsenbeschriftung, VBA durch min max aus Zelle
25.06.2011 20:15:54
Peter
Hallo Karin,
hab doch noch eine andere Art gefunden die mir für meine Belange ausreicht... Zwar nicht so elegant aber es erfüllt den Zweck.
Danke nochmal
Gruß Peter
AW: Achsenbeschriftung, VBA durch min max aus Zelle
25.06.2011 22:01:47
Beverly
Hi Peter,
dann solltest du deine Lösung hier posten - möglicherweise haben ja andere Fragesteller ein Interesse daran.


Anzeige
AW: Achsenbeschriftung, VBA durch min max aus Zelle
26.06.2011 08:26:23
Peter
Hallo Karin, sorry ja hast Recht:
habe diesen manuellen Aktualisierungsvorgang einfach per Makrorecorder aufgenommen und dann dieses Makro hinter einem zusätzlichen Button hinterlegt. Bei Betätigung werden dann die Achsen automatisch angepasst. Reicht für mich, da die manuellen Datenbereiche alle unterschiedlich angeornet sind, denke ich dass eine Komplettösung doch für mich sehr aufwendig wird und das file dann doch nicht "so" wichtig ist :-)
Geht ja auch so...
Danke Dir aber nochmal!
Gruß Peter
AW: Achsenbeschriftung, VBA durch min max aus Zelle
26.06.2011 09:51:35
Beverly
Hi Peter,
und wozu musst du dann extra den Makrorekorder bemühen? Wenn du den von mir geposteten Code einfach in ein Marko in einem allgemeinen Modul übernommen hättest, wäre das der einfachste Weg gewesen, zumal der Makrorekorder viel zu viel unötigen Code aufnimmt.


Anzeige

344 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige