Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: ---> Neu: Office 2010 Forum <-
Diagramm zoomen
zurück: Automatisch bei Öffnen der Userform ... weiter: Verwenden einer Funktion in Gültigkeitsprüfung->Liste 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, 21: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, 09: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, 20: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:
05. März 2006, 23: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, 08: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, 10: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, 12: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, 15: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, 11: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, 08: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, 15: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, 14: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, 21: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
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 Auswertungen: Daten in XY Diagramm falsch dargestellt. 4 peterdeepack 117 18. Jan 2010, 12:53
peterdeepack Daten in XY Diagramm falsch dargestellt.
Keine neuen Beiträge Excel Auswertungen: wetterdaten in Diagramm an zeigen, Wochenweise, autofüllopti 2 Gast 446 16. Aug 2009, 21:00
Gast wetterdaten in Diagramm an zeigen, Wochenweise, autofüllopti
Keine neuen Beiträge Excel Auswertungen: Im Diagramm die x-Achse teilweise ausblenden 2 Stefan983 218 28. Mai 2009, 12:48
Stefan983 Im Diagramm die x-Achse teilweise ausblenden
Keine neuen Beiträge Excel Formeln: In Diagramm den Wert "0" nicht anzeigen 7 epsillon 6557 17. Apr 2009, 11:07
Zero In Diagramm den Wert "0" nicht anzeigen
Keine neuen Beiträge Excel Hilfe: Excel - Diagramm, Werte eines Graphen spiegeln 1 Gast 1076 16. Jan 2009, 08:05
Gast Excel - Diagramm, Werte eines Graphen spiegeln
Keine neuen Beiträge Excel Auswertungen: Diagramm mit bessel filter glätten 0 MixXxen 1047 30. Jul 2008, 20:26
MixXxen Diagramm mit bessel filter glätten
Keine neuen Beiträge Excel Auswertungen: Punkte im Diagramm verbinden 2 Matti25 638 16. Jun 2008, 15:55
Matti25 Punkte im Diagramm verbinden
Keine neuen Beiträge Excel Auswertungen: Fragen zum dynamischen Diagramm 3 Spartaner 629 08. Jan 2008, 07:56
AndyRhandy Fragen zum dynamischen Diagramm
Keine neuen Beiträge Excel Formate: Kreis Diagramm, einzelne Farben??? 2 Gast 836 11. Dez 2007, 15:08
Zero Kreis Diagramm, einzelne Farben???
Keine neuen Beiträge Excel Formeln: Funktion in Diagramm? 1 dxo 1249 02. Aug 2007, 19:39
AndyRhandy Funktion in Diagramm?
Keine neuen Beiträge Excel Auswertungen: Bei Diagramm leeren Abschnitt auf x-Achse nicht anzeigen 1 Mexa 515 31. Jul 2007, 14:23
Alto Bei Diagramm leeren Abschnitt auf x-Achse nicht anzeigen
Keine neuen Beiträge Excel Formate: in diagramm werte gruppieren 2 dme 2908 28. Nov 2006, 14:42
dme in diagramm werte gruppieren
 

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