Bonjour à tous,
Je veux créer une sorte d'application comme google map. J'ai fait un graphique nuage de point avec comme remplissage une carte avec les pays et les continents. ). Il y a des boutons + et - pour le zoom et des boutons a gauche droite;
En m'inspirant de code touver sur le net, ""j'ai "" créér une interface un peu comme google map. Le problème c'est que ce zoom et ces déplacements ne prennent pas en compte le fond du graphique (remplissage image). Est ce que vous savez si c'est possible de lier ce fond aux axes.
Le but est de créer un zoom seulement sur le graph (il ne faut pas que les cellules grossissent.
Il faut peut être utiliser le zoom de window et le limiter au graph?
Je suis nul en VB, merci pour votre aide...
Ptt bout de "mon"code :
Function TestPresenceGraph() As Boolean
'On test la présence d'un objet dans ActiveGraph
TestPresenceGraph = False
If ActiveChart Is Nothing Then
MsgBox "Rien de sélectionné"
Else
TestPresenceGraph = True
End If
End Function
Sub ZoomBy2_ActivGraph()
'
' Macro enregistrée le 14/05/2007 par G4industri
'
Dim ValMin As Long
Dim ValMax As Long
Dim ValRange As Long
'Pour un programme entier il faudrait memoriser les valeurs Xmin, Xmax, Ymin, Ymax
'pour y revenir suite a une demande de RESET
' On controle qu'il y ait un graph a zoomer
If Not TestPresenceGraph Then Exit Sub
'
'On travail sur les ordonnees
ActiveChart.Axes(xlValue).Select
With ActiveChart.Axes(xlValue)
'on recupere les infos pour determiner l'amplitude
ValMin = .MinimumScale
ValMax = .MaximumScale
ValRange = ValMax - ValMin
'on modifie les valeurs de l'echelle
.MinimumScale = ValMin + ValRange / 4
.MaximumScale = ValMax - ValRange / 4
End With
'Puis sur les abscisses
ActiveChart.Axes(xlCategory).Select
With ActiveChart.Axes(xlCategory)
'on recupere les infos pour determiner l'amplitude
ValMin = .MinimumScale
ValMax = .MaximumScale
ValRange = ValMax - ValMin
'on modifie les valeurs de l'echelle
.MinimumScale = ValMin + ValRange / 4
.MaximumScale = ValMax - ValRange / 4
End With
End Sub
Je veux créer une sorte d'application comme google map. J'ai fait un graphique nuage de point avec comme remplissage une carte avec les pays et les continents. ). Il y a des boutons + et - pour le zoom et des boutons a gauche droite;
En m'inspirant de code touver sur le net, ""j'ai "" créér une interface un peu comme google map. Le problème c'est que ce zoom et ces déplacements ne prennent pas en compte le fond du graphique (remplissage image). Est ce que vous savez si c'est possible de lier ce fond aux axes.
Le but est de créer un zoom seulement sur le graph (il ne faut pas que les cellules grossissent.
Il faut peut être utiliser le zoom de window et le limiter au graph?
Je suis nul en VB, merci pour votre aide...
Ptt bout de "mon"code :
Function TestPresenceGraph() As Boolean
'On test la présence d'un objet dans ActiveGraph
TestPresenceGraph = False
If ActiveChart Is Nothing Then
MsgBox "Rien de sélectionné"
Else
TestPresenceGraph = True
End If
End Function
Sub ZoomBy2_ActivGraph()
'
' Macro enregistrée le 14/05/2007 par G4industri
'
Dim ValMin As Long
Dim ValMax As Long
Dim ValRange As Long
'Pour un programme entier il faudrait memoriser les valeurs Xmin, Xmax, Ymin, Ymax
'pour y revenir suite a une demande de RESET
' On controle qu'il y ait un graph a zoomer
If Not TestPresenceGraph Then Exit Sub
'
'On travail sur les ordonnees
ActiveChart.Axes(xlValue).Select
With ActiveChart.Axes(xlValue)
'on recupere les infos pour determiner l'amplitude
ValMin = .MinimumScale
ValMax = .MaximumScale
ValRange = ValMax - ValMin
'on modifie les valeurs de l'echelle
.MinimumScale = ValMin + ValRange / 4
.MaximumScale = ValMax - ValRange / 4
End With
'Puis sur les abscisses
ActiveChart.Axes(xlCategory).Select
With ActiveChart.Axes(xlCategory)
'on recupere les infos pour determiner l'amplitude
ValMin = .MinimumScale
ValMax = .MaximumScale
ValRange = ValMax - ValMin
'on modifie les valeurs de l'echelle
.MinimumScale = ValMin + ValRange / 4
.MaximumScale = ValMax - ValRange / 4
End With
End Sub