Rotation d'un graphique pour une animation
Résolu
Stellou la rebelle
Messages postés
20
Date d'inscription
Statut
Membre
Dernière intervention
-
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je vous explique :
J'ai une fonction mathématique qui en fonction de paramètre, calcule des points à partir duquel je peux visualiser la coque d'un bateau sur un graph. J'ai donc sur mon graph une belle coque en vue de profil.
Mon problème est maintenant de faire bouger cette coque. En effet, je voudrais créer une animation dans lequel on visualise l'inclinaison de la coque selon la résistance/vitesse. J'ai très bien réussi cela avec une simple image de bateau (Image PNG).
Mon idée était donc de transformer mon graph (démunie d'axe, etc = sur un fond blanc) en image pour après le traiter comme je le veux grâce à mon programme d'animation. Pour cela, j'ai trouvé ces lignes de code :
Sub SauveGIF()
Dim chaine As String
Graph = ThisWorkbook.Path & "\" & ActiveChart.Name & ".JPG"
ActiveChart.CopyPicture( Filename:=Graph, FilterName:="JPG"
End Sub
Mais il présente plusieurs inconvénients :
Il se met dans le fichier où le classeur est enregistré du coup, il est difficile de le récupérer sachant que je voudrais que mon utilisateur n'est rien à faire.
Et après, je voudrais que mon image apparaisse toujours au même endroit !
Voici mon programme d'annimation au cas où :
<gras>Sub Animation()
Dim rep_count As Integer
rep_count = 1
Sheets("planante").Shapes("Graphique 28").Rotation = 0
Do
DoEvents
rep_count = rep_count + 1
Sheets("planante").Shapes("Graphique 28").Rotation = -Sheets("KREN").Cells(32, rep_count)
Timeout (0.3)
Loop Until rep_count = 12
End Sub
Sub Timeout(duration_ms As Double)
Dim Start_Timer As Double
Start_Timer = Timer
Do
DoEvents
Loop Until (Timer - Start_Timer) >= duration_ms
End Sub
</gras>
Merci d'avance pour votre aide !
A bientôt
Je vous explique :
J'ai une fonction mathématique qui en fonction de paramètre, calcule des points à partir duquel je peux visualiser la coque d'un bateau sur un graph. J'ai donc sur mon graph une belle coque en vue de profil.
Mon problème est maintenant de faire bouger cette coque. En effet, je voudrais créer une animation dans lequel on visualise l'inclinaison de la coque selon la résistance/vitesse. J'ai très bien réussi cela avec une simple image de bateau (Image PNG).
Mon idée était donc de transformer mon graph (démunie d'axe, etc = sur un fond blanc) en image pour après le traiter comme je le veux grâce à mon programme d'animation. Pour cela, j'ai trouvé ces lignes de code :
Sub SauveGIF()
Dim chaine As String
Graph = ThisWorkbook.Path & "\" & ActiveChart.Name & ".JPG"
ActiveChart.CopyPicture( Filename:=Graph, FilterName:="JPG"
End Sub
Mais il présente plusieurs inconvénients :
Il se met dans le fichier où le classeur est enregistré du coup, il est difficile de le récupérer sachant que je voudrais que mon utilisateur n'est rien à faire.
Et après, je voudrais que mon image apparaisse toujours au même endroit !
Voici mon programme d'annimation au cas où :
<gras>Sub Animation()
Dim rep_count As Integer
rep_count = 1
Sheets("planante").Shapes("Graphique 28").Rotation = 0
Do
DoEvents
rep_count = rep_count + 1
Sheets("planante").Shapes("Graphique 28").Rotation = -Sheets("KREN").Cells(32, rep_count)
Timeout (0.3)
Loop Until rep_count = 12
End Sub
Sub Timeout(duration_ms As Double)
Dim Start_Timer As Double
Start_Timer = Timer
Do
DoEvents
Loop Until (Timer - Start_Timer) >= duration_ms
End Sub
</gras>
Merci d'avance pour votre aide !
A bientôt
A voir également:
- Vba animation
- Excel compter cellule couleur sans vba - Guide
- Dp animation maker - Télécharger - Animation
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
3 réponses
Pardon les lignes de codes sont celles ci j'ai donnée celles que j'ai essayé de bidouiller ! :p
Sub SauveGIF()
Dim chaine As String
carenne = ThisWorkbook.Path & "\" & ActiveChart.Name & ".JPG"
ActiveChart.Export Filename:=carenne, FilterName:="JPG"
End Sub
Et comme vous pouvez le voir, je suis obligée de selectionner mon graph !
Sub SauveGIF()
Dim chaine As String
carenne = ThisWorkbook.Path & "\" & ActiveChart.Name & ".JPG"
ActiveChart.Export Filename:=carenne, FilterName:="JPG"
End Sub
Et comme vous pouvez le voir, je suis obligée de selectionner mon graph !
J'ai ces nouvelles lignes de code
Dim nomImage As String
Dim Grph As ChartObject
Dim Emplacement As Range
Dim Image As Chart
nomImage = "C:\Users\Estelle\graph.gif"
'Définit le 1er graphique dans la Feuil1
Set Grph = Feuil1.ChartObjects(1)
'Exporte le graphique au format image GIF
Grph.Chart.Export nomImage, "GIF"
Maintenant comment récupérer cette image pour l'insérer dans une cellule ou un endroit précis !? Merci
Avec insertpicture ?
Dim nomImage As String
Dim Grph As ChartObject
Dim Emplacement As Range
Dim Image As Chart
nomImage = "C:\Users\Estelle\graph.gif"
'Définit le 1er graphique dans la Feuil1
Set Grph = Feuil1.ChartObjects(1)
'Exporte le graphique au format image GIF
Grph.Chart.Export nomImage, "GIF"
Maintenant comment récupérer cette image pour l'insérer dans une cellule ou un endroit précis !? Merci
Avec insertpicture ?