Macro excel
Fermé
delphine
-
4 févr. 2008 à 14:16
herve_D62 Messages postés 11 Date d'inscription lundi 11 décembre 2006 Statut Membre Dernière intervention 5 février 2008 - 4 févr. 2008 à 18:41
herve_D62 Messages postés 11 Date d'inscription lundi 11 décembre 2006 Statut Membre Dernière intervention 5 février 2008 - 4 févr. 2008 à 18:41
A voir également:
- Macro excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Aller à la ligne excel - Guide
9 réponses
Fxbrg
Messages postés
710
Date d'inscription
samedi 17 mars 2007
Statut
Membre
Dernière intervention
16 novembre 2013
199
4 févr. 2008 à 14:24
4 févr. 2008 à 14:24
Regarde ici l'utilisation de la fonction DECALER, ça devrait le faire :-)
http://www.excelabo.net/excel/graphmaj.php
:-)
http://www.excelabo.net/excel/graphmaj.php
:-)
désolé mais j'ai carrément du mal à comprendre ce qu'il fo faire!!! lol
je dois vraiment etre une quiche mais bon!
je dois vraiment etre une quiche mais bon!
Fxbrg
Messages postés
710
Date d'inscription
samedi 17 mars 2007
Statut
Membre
Dernière intervention
16 novembre 2013
199
4 févr. 2008 à 14:43
4 févr. 2008 à 14:43
tu peux mettre tout ou partie de ton fichier en ligne (sur https://www.cjoint.com/ par exemple...)?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
c pa possible de faire une macro ki regarde le mois en cours et ki modifie l'échelle en fonction?
je peu pa le mettre en ligne! désolé!
je peu pa le mettre en ligne! désolé!
Fxbrg
Messages postés
710
Date d'inscription
samedi 17 mars 2007
Statut
Membre
Dernière intervention
16 novembre 2013
199
4 févr. 2008 à 15:22
4 févr. 2008 à 15:22
Le problème n'est pas de mettre l'échelle "en fonction", c'est de faire un graphique "flottant"...
Est-ce que le "mois en cours" a une valeur dans ton tableau? On peut faire une recherche de la dernière valeur et faire un tableau avec les 12 valeurs précédentes...
Sinon, si tu veux le faire en fonction de la date du jour, on peut bien sûr analyser la dite date, trouver quel mois on est. Par contre il faut que dans ton tableau, les mois soient identifiables...
Tu peux pas en extraire un petit bout, même tout petit, pour voir à quoi ça ressemble? pas simple sans savoir :-)
Est-ce que le "mois en cours" a une valeur dans ton tableau? On peut faire une recherche de la dernière valeur et faire un tableau avec les 12 valeurs précédentes...
Sinon, si tu veux le faire en fonction de la date du jour, on peut bien sûr analyser la dite date, trouver quel mois on est. Par contre il faut que dans ton tableau, les mois soient identifiables...
Tu peux pas en extraire un petit bout, même tout petit, pour voir à quoi ça ressemble? pas simple sans savoir :-)
en fait c compliqué à extraire car mon tableau est super compliqué!
il est enorme! en fait, je fais d stats! je crée un Tableau de bord!
dc ds mon tableau g pa mal de ligne et chacune me génère un graphique
pour répondre à ta kestion, le mois en cours je n'ai pa de valeur car com c d stats, et ba le pourcentage pour le mois en cours il n'est calculé qu'au début du mois précédent!
pour l'instant ce que j'avai fai pour voir a koi ressemblerait ma macro, j'ai modifier l'echelle de mon graphique en faisan com si je changeait de mois et voila le code ke j'ai eu:
Sub Echelle()
ActiveSheet.ChartObjects("Graphique 1").Activate
ActiveChart.Axes(xlCategory).Select
With ActiveChart.Axes(xlCategory)
.MinimumScale = "01/03/2007"
.MaximumScale = "01/02/2008"
.BaseUnitIsAuto = True
.MajorUnitIsAuto = True
.MinorUnitIsAuto = True
.Crosses = xlAutomatic
.AxisBetweenCategories = True
.ReversePlotOrder = False
End With
End Sub
maintenant ce ke cherchai à faire c mettre une condition sur MinimumScale et MaximumScale !!!
c un peu plus clair? j'espere
il est enorme! en fait, je fais d stats! je crée un Tableau de bord!
dc ds mon tableau g pa mal de ligne et chacune me génère un graphique
pour répondre à ta kestion, le mois en cours je n'ai pa de valeur car com c d stats, et ba le pourcentage pour le mois en cours il n'est calculé qu'au début du mois précédent!
pour l'instant ce que j'avai fai pour voir a koi ressemblerait ma macro, j'ai modifier l'echelle de mon graphique en faisan com si je changeait de mois et voila le code ke j'ai eu:
Sub Echelle()
ActiveSheet.ChartObjects("Graphique 1").Activate
ActiveChart.Axes(xlCategory).Select
With ActiveChart.Axes(xlCategory)
.MinimumScale = "01/03/2007"
.MaximumScale = "01/02/2008"
.BaseUnitIsAuto = True
.MajorUnitIsAuto = True
.MinorUnitIsAuto = True
.Crosses = xlAutomatic
.AxisBetweenCategories = True
.ReversePlotOrder = False
End With
End Sub
maintenant ce ke cherchai à faire c mettre une condition sur MinimumScale et MaximumScale !!!
c un peu plus clair? j'espere
Fxbrg
Messages postés
710
Date d'inscription
samedi 17 mars 2007
Statut
Membre
Dernière intervention
16 novembre 2013
199
4 févr. 2008 à 16:39
4 févr. 2008 à 16:39
:-)
Franchement pas certain qu'il suffise changer maximumscale et minimum scale sur ton graphique pour avoir ce que tu veux... :-)
Néammoins, pour faire ça, tu peux utiliser des variables : (tu peux mettre un bouton dans ta feuille et tu mets ce code derrière...)
Dim maxs, mins As String
maxs = "01/" & Right(Date, 7)
mins = "01/" & Right((Date - 11 * 30), 7)
ActiveSheet.ChartObjects("Graphique 1").Activate
ActiveChart.Axes(xlCategory).Select
With ActiveChart.Axes(xlCategory)
.MinimumScale = mins
.MaximumScale = maxs
.BaseUnitIsAuto = True
.MajorUnitIsAuto = True
.MinorUnitIsAuto = True
.Crosses = xlAutomatic
.AxisBetweenCategories = True
.ReversePlotOrder = False
End With
Dis voir si ça fonctionne :-)
Franchement pas certain qu'il suffise changer maximumscale et minimum scale sur ton graphique pour avoir ce que tu veux... :-)
Néammoins, pour faire ça, tu peux utiliser des variables : (tu peux mettre un bouton dans ta feuille et tu mets ce code derrière...)
Dim maxs, mins As String
maxs = "01/" & Right(Date, 7)
mins = "01/" & Right((Date - 11 * 30), 7)
ActiveSheet.ChartObjects("Graphique 1").Activate
ActiveChart.Axes(xlCategory).Select
With ActiveChart.Axes(xlCategory)
.MinimumScale = mins
.MaximumScale = maxs
.BaseUnitIsAuto = True
.MajorUnitIsAuto = True
.MinorUnitIsAuto = True
.Crosses = xlAutomatic
.AxisBetweenCategories = True
.ReversePlotOrder = False
End With
Dis voir si ça fonctionne :-)
herve_D62
Messages postés
11
Date d'inscription
lundi 11 décembre 2006
Statut
Membre
Dernière intervention
5 février 2008
4 févr. 2008 à 18:41
4 févr. 2008 à 18:41
Bonsoir
En fait en modifiant la zone de données ton échelle va se mettre à jour
J'ai eu un graphique modulable aussi à faire , sauf que le point de départ était fixe
Il faudra donc ajouter des variables pour le début ( genre offset...)
ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("B5:B10," & N_col & "5:" & N_col & "10"), _
PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil2"
ActiveSheet.ChartObjects(ActiveChart.Parent.Name).Name = "Graph_1"
les données étaient en "Feuille1" , le graph en 2
Donc je partais be B5:B10 jusqu'au dernier mois connu , donc les abscisses s'allongent chaque mois ( c'était mensuel)
Si le dernier mois connu était en "F" , N_col a pour valeur "F" donc cela faisait : "F5:F10" , il y a du traitement avant, bien sûr !
donc "bidouiller" "B5:B10" avec des variables qui recherchent la position que tu veux , puis celle de Fin !
Nomme en "dur" ton graphe ( ici "Graph_1" ) sinon il va s'incrémenter à chaque lancement "graphe1" , 2, .....100
En fait en modifiant la zone de données ton échelle va se mettre à jour
J'ai eu un graphique modulable aussi à faire , sauf que le point de départ était fixe
Il faudra donc ajouter des variables pour le début ( genre offset...)
ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("B5:B10," & N_col & "5:" & N_col & "10"), _
PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil2"
ActiveSheet.ChartObjects(ActiveChart.Parent.Name).Name = "Graph_1"
les données étaient en "Feuille1" , le graph en 2
Donc je partais be B5:B10 jusqu'au dernier mois connu , donc les abscisses s'allongent chaque mois ( c'était mensuel)
Si le dernier mois connu était en "F" , N_col a pour valeur "F" donc cela faisait : "F5:F10" , il y a du traitement avant, bien sûr !
donc "bidouiller" "B5:B10" avec des variables qui recherchent la position que tu veux , puis celle de Fin !
Nomme en "dur" ton graphe ( ici "Graph_1" ) sinon il va s'incrémenter à chaque lancement "graphe1" , 2, .....100