Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: ---> 4. September: Office-Treffen Rhein-Ruhr <-
Diagramm zoomen
zurück: Zellbereich inkl. Gültigkeit kopieren in andere Mappe weiter: Makro Dateneingabe Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Edward
Gast


Verfasst am:
04. März 2006, 22:43
Rufname:

Diagramm zoomen - Diagramm zoomen

Nach oben
       

Hallo Leute,

ich bin programmiertechnisch alles andere als unerfahren, hatte nur noch keinen Kontakt mit VBA und möchte zunächst eine Frage zur Realisierbarkeit meines Vorhabens stellen, bevor ich weitere Untersuchungen anstelle.

Ich möchte im Prinzip durch einen einzigen Aufruf einer Datei (.xls) eine automatische Auswertung starten. Diese soll das Laden einer Datendatei und nach automatischer Anwendung einiger Makros ohne Zutun des Anwenders ein Diagramm aus errechneten Werten erzeugen. Bis hierhin bin ich ziemlich sicher, dass dies realisierbar ist.
Nun möchte ich als Anwender aber in dem automatisch anzuzeigenden Diagramm beispielweise per Maus einen Bereich des Diagramms markieren, der nach Loslassen der Maustaste entsprechend vergrößert und mit neuer Achsen-Abschnitts-Beschriftung visualisiert wird. Wäre ein solches Feature implementierbar?

Vielen Dank für Eure Hilfestellung jetzt und zukünftig!

Gruß
Edward
Beverly
Diagrammspezialist (mit und ohne VBA)


Verfasst am:
05. März 2006, 10:12
Rufname:


AW: Diagramm zoomen - AW: Diagramm zoomen

Nach oben
       

Hi Edward,

dein erstes Vorhaben ist realisierbar, das kann ich bestätigen.

Bei deinem zweiten musst du davon ausgehen, dass du im Diagramm mit der Maus keinen Bereich markieren kannst. Du kannst zwar die Koordinaten des Mauszeigers abfragen, aber immer nur von einem einzigen Standort. Da müsstest du schon im Code festlegen, wie groß der Anzeigebereich sein soll. Für das "Zoomen" würde ich einfach ein 2. Diagramm erstellen, welches dann wieder gelöscht wird. Oder du erstellst mehrere Diagramm für von dir festgelegte Bereiche und blendest sie aus. Erst beim Aktivieren durch die Maus wird das jeweilige eingeblendet.

_________________
Bis später,
Karin
Edward
Im Profil kannst Du frei den Rang ändern


Verfasst am:
05. März 2006, 21:43
Rufname:

AW: Diagramm zoomen - AW: Diagramm zoomen

Nach oben
       

Zunächst vielen Dank für die prompte Antwort...

In einem anderen Thread habe ich gelesen, dass Diagramme auch in ein JPEG konvertiert werden können?! Könnte man diese Möglichkeit nicht irgendwie nutzen und lediglich im Bild zoomen und nicht tatsächlich im Diagramm? Über die Mausposition und die Meldung "mouse-click" und "mouse-release" müsste man doch anschließend auch einen neuen Achsen-Abschnitts-Bereich errechnen können...

_________________
Gruß
Edward

Wir sind Fortuna, wir können alles.
Beverly
Diagrammspezialist (mit und ohne VBA)


Verfasst am:
06. März 2006, 00:19
Rufname:

AW: Diagramm zoomen - AW: Diagramm zoomen

Nach oben
       

Hi Edward,

was würde es bringen, das Diagramm in eine Grafik (sprich Bild) umzuwandeln? Die Grafik ist nicht mehr veränderbar, sodass sich Veränderungen in deiner Wertetabelle darauf nicht auswirken. Ein Diagramm lässt sich vom Prinzip her schon in der Größe verändern.

Mir kommt da noch ein Gedanke: mit dem 1. Maus-Klick könnte man den Startbereich für das neue Diagramm festlegen. Wenn man diesen Wert irgendwo in der Tabelle hinterlegt, könnte man mit einem 2. Maus-Klick auch den Endbereich ermitteln und daraus die neue Skalierung berechnen.

_________________
Bis später,
Karin
Edward
Im Profil kannst Du frei den Rang ändern


Verfasst am:
06. März 2006, 09:13
Rufname:


AW: Diagramm zoomen - AW: Diagramm zoomen

Nach oben
       

@Beverly:
Damit hast Du zwar Recht, dies wäre in meinem Fall aber nicht sonderlich problematisch, da das Diagramm statisch sein soll, wenn es denn einmal angezeigt wurde. Erst bei einem Neu-Aufruf der Datei soll das Diagramm aktualisiert werden...

Deine Idee mit den Maus-Klicks (z.B. zur Markierung linke obere Ecke, rechte untere Ecke des zu zoomenden Bereiches) finde ich gut. Dem entnehme ich, dass die Funktionen existieren, um die Positionen der Maus-Klicks aus dem Diagramm zu extrahieren!?

_________________
Gruß
Edward

Wir sind Fortuna, wir können alles.
Beverly
Diagrammspezialist (mit und ohne VBA)


Verfasst am:
06. März 2006, 11:29
Rufname:

AW: Diagramm zoomen - AW: Diagramm zoomen

Nach oben
       

Hi Edward,

es tut mir leid, dass ich dir nicht weiter antworten kann. Es war ein sehr interessantes Thema. Der Grund für meine Entscheidung hat nichts mit dir persönlich zu tun. Du kannst das in meinem letzten Beitrag unter diesem Link nachlesen
http://www.office-loesung.de/ftopic70552_0_0_asc.php#285203

_________________
Bis später,
Karin
Edward
Im Profil kannst Du frei den Rang ändern


Verfasst am:
07. März 2006, 13:34
Rufname:

AW: Diagramm zoomen - AW: Diagramm zoomen

Nach oben
       

@Beverly:
Vielen Dank bis hierher!

Vielleicht hat ja noch jmd. anderes eine Idee, ob die o.g. Punkte in VBA realisierbar erscheinen?!
Gibt es außerdem die Möglichkeit, die Abfrage beim Start von Excel "...enthält Makros. [...] Können Viren enthalten..." zu unterdrücken? Es soll für den späteren Anwender möglichst einfach gehalten werden!

_________________
Gruß
Edward

Wir sind Fortuna, wir können alles.
danish_dynamite
Gast


Verfasst am:
06. Nov 2006, 16:31
Rufname:

AW: Diagramm zoomen - AW: Diagramm zoomen

Nach oben
       

Guten Tag allerseits,

mich würde das mit dem zoomen durch markieren eines Diagrammbereichs auch sehr interessieren. Hat dazu mittlerweile vielleicht jemand etwas herausbekommen? Wäre extrem genial!

MfG

danish_dynamite
makrohard
Autodidakt


Verfasst am:
14. Nov 2006, 12:27
Rufname:

AW: Diagramm zoomen - AW: Diagramm zoomen

Nach oben
       Version: Office XP (2002)

Hallo,

Zum Zoomen und Verschieben eines XY Diagramms habe ich ein kleines Makro geschrieben, das dies macht. Der 'Trick': Die Skalierung der Achsen wird verändert (Min/Max).

Kopiert dazu folgenden Code in ein UserForm in dem Ihr zuvor die notwendigen Elemente (6x Command Button, 7x Textfeld, 1x SpinButton) erstellt habt.

Der Code kann noch verfeinert werden.

Code:

Public Increment As Single
Option Explicit

Private Sub UserForm_Initialize()
Increment = 1
On Error GoTo er101
Application.EnableEvents = False
Xmin.Value = ActiveChart.Axes(xlCategory).MinimumScale
Xmax.Value = ActiveChart.Axes(xlCategory).MaximumScale
Ymin.Value = ActiveChart.Axes(xlValue).MinimumScale
Ymax.Value = ActiveChart.Axes(xlValue).MaximumScale
XUnit.Value = ActiveChart.Axes(xlCategory).MajorUnit
YUnit.Value = ActiveChart.Axes(xlValue).MajorUnit
er101:
Application.EnableEvents = True
End Sub

Private Sub CommandButton3_Click()
'Zoom +
On Error GoTo err50
Application.ScreenUpdating = False
Sheets("Polygon").ChartObjects("Diag").Activate
ActiveChart.Axes(xlCategory).MinimumScale = ActiveChart.Axes(xlCategory).MinimumScale + Increment
ActiveChart.Axes(xlCategory).MaximumScale = ActiveChart.Axes(xlCategory).MaximumScale - Increment
ActiveChart.Axes(xlValue).MinimumScale = ActiveChart.Axes(xlValue).MinimumScale + Increment
ActiveChart.Axes(xlValue).MaximumScale = ActiveChart.Axes(xlValue).MaximumScale - Increment
SetMinMaxDisplay
err50:
Application.ScreenUpdating = True
End Sub

Private Sub CommandButton4_Click()
'Zoom -
On Error GoTo err51
Application.ScreenUpdating = False
Sheets("Polygon").ChartObjects("Diag").Activate
ActiveChart.Axes(xlCategory).MinimumScale = ActiveChart.Axes(xlCategory).MinimumScale - Increment
ActiveChart.Axes(xlCategory).MaximumScale = ActiveChart.Axes(xlCategory).MaximumScale + Increment
ActiveChart.Axes(xlValue).MinimumScale = ActiveChart.Axes(xlValue).MinimumScale - Increment
ActiveChart.Axes(xlValue).MaximumScale = ActiveChart.Axes(xlValue).MaximumScale + Increment
SetMinMaxDisplay
err51:
Application.ScreenUpdating = True
End Sub

Private Sub CommandButton5_Click()
'Move left
On Error GoTo err52
Sheets("Polygon").ChartObjects("Diag").Activate
Application.ScreenUpdating = False
ActiveChart.Axes(xlCategory).MinimumScale = ActiveChart.Axes(xlCategory).MinimumScale + Increment
ActiveChart.Axes(xlCategory).MaximumScale = ActiveChart.Axes(xlCategory).MaximumScale + Increment
SetMinMaxDisplay
err52:
Application.ScreenUpdating = True
End Sub

Private Sub CommandButton6_Click()
'Move Up
On Error GoTo err53
Sheets("Polygon").ChartObjects("Diag").Activate
Application.ScreenUpdating = False
ActiveChart.Axes(xlValue).MinimumScale = ActiveChart.Axes(xlValue).MinimumScale - Increment
ActiveChart.Axes(xlValue).MaximumScale = ActiveChart.Axes(xlValue).MaximumScale - Increment
err53:
SetMinMaxDisplay
Application.ScreenUpdating = True
End Sub

Private Sub CommandButton7_Click()
' Move right
On Error GoTo err54
Sheets("Polygon").ChartObjects("Diag").Activate
Application.ScreenUpdating = False
ActiveChart.Axes(xlCategory).MinimumScale = ActiveChart.Axes(xlCategory).MinimumScale - Increment
ActiveChart.Axes(xlCategory).MaximumScale = ActiveChart.Axes(xlCategory).MaximumScale - Increment
err54:
SetMinMaxDisplay
Application.ScreenUpdating = True
End Sub

Private Sub CommandButton8_Click()
'Move Down
On Error GoTo err55
Application.ScreenUpdating = False
Sheets("Polygon").ChartObjects("Diag").Activate
ActiveChart.Axes(xlValue).MinimumScale = ActiveChart.Axes(xlValue).MinimumScale + Increment
ActiveChart.Axes(xlValue).MaximumScale = ActiveChart.Axes(xlValue).MaximumScale + Increment
SetMinMaxDisplay
err55:
Application.ScreenUpdating = True
End Sub

Private Sub SpinButton1_SpinUp()
If Increment < 3 Then
    Increment = Increment + 0.01
Else
    Increment = 3
End If
Label4.Caption = Round(Increment, 2)
End Sub

Private Sub SpinButton1_SpinDown()
If Increment >= 0.02 Then
    Increment = Increment - 0.01
Else
    Increment = 0.1
End If
Label4.Caption = Round(Increment, 2)
End Sub

Private Sub CommandButton1_Click()
Unload Me
End Sub

Private Sub CommandButton2_Click()
' Zoom to full extend
On Error GoTo err56
Application.ScreenUpdating = False
Sheets("Polygon").ChartObjects("Diag").Activate
With ActiveChart.Axes(xlCategory)
    .MinimumScale = 0
    .MaximumScale = 12
    .MinorUnit = 0.1
    .MajorUnit = 1
    .Crosses = xlCustom
    .CrossesAt = 0
End With
    With ActiveChart.Axes(xlValue)
    .MinimumScale = 0
    .MaximumScale = 13
    .MinorUnit = 0.1
    .MajorUnit = 1
    .Crosses = xlCustom
    .CrossesAt = 0
End With

SetMinMaxDisplay
err56:
Application.ScreenUpdating = True
End Sub

Sub SetMinMaxDisplay()
Xmin.Value = Round(ActiveChart.Axes(xlCategory).MinimumScale, 2)
Xmax.Value = Round(ActiveChart.Axes(xlCategory).MaximumScale, 2)
Ymin.Value = Round(ActiveChart.Axes(xlValue).MinimumScale, 2)
Ymax.Value = Round(ActiveChart.Axes(xlValue).MaximumScale, 2)

XUnit.Value = ActiveChart.Axes(xlCategory).MajorUnit
YUnit.Value = ActiveChart.Axes(xlValue).MajorUnit
End Sub


Private Sub Xmin_KeyPress(ByVal Taste As MSForms.ReturnInteger)
    Select Case Taste
        Case 48 To 57
        Case Else
            Beep
            Taste = 0
    End Select
End Sub
Private Sub Ymin_KeyPress(ByVal Taste As MSForms.ReturnInteger)
    Select Case Taste
        Case 48 To 57
        Case Else
            Beep
            Taste = 0
    End Select
End Sub
Private Sub Xmax_KeyPress(ByVal Taste As MSForms.ReturnInteger)
    Select Case Taste
        Case 48 To 57
        Case Else
            Beep
            Taste = 0
    End Select
End Sub
Private Sub Ymax_KeyPress(ByVal Taste As MSForms.ReturnInteger)
    Select Case Taste
        Case 48 To 57
        Case Else
            Beep
            Taste = 0
    End Select
End Sub
Private Sub XUnit_KeyPress(ByVal Taste As MSForms.ReturnInteger)
    Select Case Taste
        Case 48 To 57
        Case Else
            Beep
            Taste = 0
    End Select
End Sub
Private Sub YUnit_KeyPress(ByVal Taste As MSForms.ReturnInteger)
    Select Case Taste
        Case 48 To 57
        Case Else
            Beep
            Taste = 0
    End Select
End Sub


Private Sub Xmin_Change()
If Xmin.Value = "" Then Xmin.Value = ActiveChart.Axes(xlCategory).MinimumScale
ActiveChart.Axes(xlCategory).MinimumScale = CSng(Xmin.Value)
End Sub
Private Sub Ymin_Change()
If Ymin.Value = "" Then Ymin.Value = ActiveChart.Axes(xlValue).MinimumScale
ActiveChart.Axes(xlValue).MinimumScale = CSng(Ymin.Value)
End Sub
Private Sub Xmax_Change()
If Xmax.Value = "" Then Xmax.Value = ActiveChart.Axes(xlCategory).MaximumScale
ActiveChart.Axes(xlCategory).MaximumScale = CSng(Xmax.Value)
End Sub
Private Sub Ymax_Change()
If Ymax.Value = "" Then Ymax.Value = ActiveChart.Axes(xlValue).MaximumScale
ActiveChart.Axes(xlValue).MaximumScale = CSng(Ymax.Value)
End Sub
Private Sub XUnit_Change()
If XUnit.Value = "" Then XUnit.Value = ActiveChart.Axes(xlCategory).MajorUnit
ActiveChart.Axes(xlCategory).MajorUnit = CSng(XUnit.Value)
ActiveChart.Axes(xlCategory).MinorUnit = CSng(ActiveChart.Axes(xlCategory).MajorUnit / 10)
End Sub
Private Sub YUnit_Change()
If YUnit.Value = "" Then YUnit.Value = ActiveChart.Axes(xlValue).MajorUnit
ActiveChart.Axes(xlValue).MajorUnit = CSng(YUnit.Value)
ActiveChart.Axes(xlValue).MinorUnit = CSng(ActiveChart.Axes(xlValue).MajorUnit / 10)
End Sub
danish_dynamite
Gast


Verfasst am:
04. Jan 2007, 09:08
Rufname:

AW: Diagramm zoomen - AW: Diagramm zoomen

Nach oben
       Version: Office 2003

Hallo makrohard!

der code, den du gepostet hast ist wirklich sehr interessant! Leider bin aufgrund bisher noch begrenztem Knowhow bzgl. VBA nicht in der Lage den Code auf mein bestehendes Portfolio anzuwenden.

Könntest Du nochmal eine Art Schritt für Schritt Anleitung geben und sagen wo was an mein Portfolio angeglichen werden muss? Wäre unglaublich hilfreich für mich!

Danke im voraus!

danish_dynamite
makrohard_
Gast


Verfasst am:
13. Jun 2007, 16:21
Rufname:

AW: Diagramm zoomen - AW: Diagramm zoomen

Nach oben
       

Hallo danish_dynamite

Sorry, 'habe lang nicht mehr ins Forum geschaut. Ich kann dir gern ein Beispieltabellenblatt schicken, wenn noch Interesse besteht. Kontaktiere mich einfach per eMail übers Forum. Alternativ kannst du aiuch mal auf www.aequometer.de schauen, das ist eine OpenSource Software von mit in der das betreffende UserForm integriert ist.

Viele Grüße

makrohard
Andy86
Im Profil kannst Du frei den Rang ändern


Verfasst am:
14. Dez 2007, 15:45
Rufname:

AW: Diagramm zoomen - AW: Diagramm zoomen

Nach oben
       Version: Office 2003

Hallo
Habe den Code eingefügt und alles gespeichert. Beim Ausführen des Makros erhalte ich die Medung, Felher beim Kompillieren, Variable nicht definiert, nach okay wird Sub SetMinMaxDisplay() gelb. Was mache ich falsch.

Vielen Dank für Eure Hilfe, Andy86
makrohard
Autodidakt


Verfasst am:
14. Dez 2007, 22:24
Rufname:

AW: Diagramm zoomen - AW: Diagramm zoomen

Nach oben
       

Hallo Andy,

Der Code muss in ein UserForm eingebunden werden, das verschiedene Elemente enthält, die auch alle den richtigen Namen haben müssen. Im Prinzip lässt sich alles aus dem Code ersehen aber vielleicht fällt es leichter wenn du es als lauffähiges Beispiel siehst. Hierzu kannst du gern mein Programm verwenden, das hier zu finden ist:

Edit: Link entfernt - makrohard

Die Funktion 'Zoom/Pan' Wird im UserForm 'Zeichnung bearbeiten' aufgerufen. Dieses wird im Menüpunkt 'Aequometer' (vor 'Datei') gestartet. Der Code ist offen.
Das Zoomen /Verschieben funktioniert zwar, ist aber noch nicht vollends ausgereift. Habe im Moment aber leider auch nicht die Zeit die Funktion wirklich zu perfektionieren.

Wenn du weitere Fragen hast, bescheibe bitte, wozu du den Code genau verwenden möchtest und wie er eingebunden werden soll. Ich kann dann Anfang nächster Woche gerne mal einen Blick darauf werfen.

Schönes Wochenende!

Edit: Der Code in der in diesem Thread gepostet wurde ist veraltet. Hier der Link zur überarbeiteten Version mit Beispiel zum Download:
XY Diagramm zoomen und verschieben
KC
Gast


Verfasst am:
12. Jul 2010, 13:30
Rufname:

AW: Diagramm zoomen - AW: Diagramm zoomen

Nach oben
       Version: Office 2003

Hei Leute,
Würde gerne in meinem Excel-Diagramm zoomen und zwar durch Makros. Sollte dann so aussehn, das ich indem Díagramm 2 Punkte auswähle und der Graph dazwischen vergrößert erscheint.

Hat vielleicht jemand eine Idee wie das am leichtesten zu realisieren ist?

Danke schon im vorhinein!

Mfg KC
KC
Gast


Verfasst am:
12. Jul 2010, 13:30
Rufname:


AW: Diagramm zoomen - AW: Diagramm zoomen

Nach oben
       Version: Office 2003

Hei Leute,
Würde gerne in meinem Excel-Diagramm zoomen und zwar durch Makros. Sollte dann so aussehn, das ich indem Díagramm 2 Punkte auswähle und der Graph dazwischen vergrößert erscheint.

Hat vielleicht jemand eine Idee wie das am leichtesten zu realisieren ist?

Danke schon im vorhinein!

Mfg KC
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Excel Formeln: Formel um 0-Werte in Diagramm zu unterbinden 1 Marie06 113 22. Jan 2010, 13:31
Klaus-Dieter Formel um 0-Werte in Diagramm zu unterbinden
Keine neuen Beiträge Excel Auswertungen: Diagramm - Überschrift - Textfelder - Makro 2 Diogenes 802 12. Nov 2009, 17:50
acira Diagramm - Überschrift - Textfelder - Makro
Keine neuen Beiträge Excel Auswertungen: in Diagramm einzelne Graphen per Maus sichtbar und unsichtba 6 Asrael75 684 15. Sep 2009, 00:39
aacheni in Diagramm einzelne Graphen per Maus sichtbar und unsichtba
Keine neuen Beiträge Excel Auswertungen: Wie Lieferant im Diagramm auswählen? 10 echsler 118 28. Aug 2009, 14:51
echsler Wie Lieferant im Diagramm auswählen?
Keine neuen Beiträge Excel Auswertungen: Excel Diagramm Legende an Diagrammbreite anpassen 0 Gast 658 22. Jul 2009, 08:42
Gast Excel Diagramm Legende an Diagrammbreite anpassen
Keine neuen Beiträge Excel Auswertungen: Nullwerte im Diagramm ersetzt durch #NV werden angezeigt??? 13 JJrome 861 30. Jun 2009, 17:51
Alto Nullwerte im Diagramm ersetzt durch #NV werden angezeigt???
Keine neuen Beiträge Excel Auswertungen: Diagramm: "null-Achse" auf anderen Wert legen 2 matzeerwin 329 28. Apr 2009, 12:25
matzeerwin Diagramm: "null-Achse" auf anderen Wert legen
Keine neuen Beiträge Excel Auswertungen: Diagramm mit 2 y-Achsen und einer x-achse 1 Gast 1376 13. März 2009, 12:50
MairoseI Diagramm mit 2 y-Achsen und einer x-achse
Keine neuen Beiträge Excel Auswertungen: Diagramm übernimmt die Daten (=Wörter) nicht?? 2 torjäger 332 11. Jun 2008, 13:37
Gast Diagramm übernimmt die Daten (=Wörter) nicht??
Keine neuen Beiträge Excel Formeln: Diagramm beschriftungen Linksbündig ausrichten? 9 Gast 2439 28. Jan 2008, 18:46
Gast Diagramm beschriftungen Linksbündig ausrichten?
Keine neuen Beiträge Excel Auswertungen: Farbzuordnung im Diagramm auf Basis der Farbe der Ausgangsze 3 ziegelmehl 1367 18. Dez 2007, 17:08
Alto Farbzuordnung im Diagramm auf Basis der Farbe der Ausgangsze
Keine neuen Beiträge Excel Auswertungen: Hintergrund Diagramm farbig 1 Student007 349 27. Nov 2007, 22:18
Fred Walko Hintergrund Diagramm farbig
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Dreamweaver Forum