XL 2016 liaison graphique et VBA

fabrice76800

XLDnaute Nouveau
Bonjour à tous,

J'avais crée un petit prog sous excel 2003 qui fonctionnait bien sous 2016 jusqu'a une maj de office 2016 et après conversion de mon prog. N'arrivant pas a le remodeler je l'ai refait sous excel 2016 mais avec la même base VBA.
En fait, le soucis est que malgré mes recherches je n'arrive pas a creer une chart et faire toutes les liaisons.

Mon classeur se compose de : 1 feuille calcul (NetVde) 1 feuille graphique (Courbes) qui trace les points de la feuille groupes et 1 feuille (Groupes)
En fonction du point de fonctionnement de la feuille 1 qui s'affiche sur la feuille graphique, avec un bouton Qv moins ou plus, je deplace le point de fonctionnement sur la courbe qui est la plus proche. Je la sélectionne via le bouton et doit apparaitre sur la feuille 1. Le hic est là, rien n'apparait et me renvoi des des erreurs VBA, Range inexistante.....
Si vous avez des idées, je suis preneur.

Bien à vous.
Fabrice
 

Pièces jointes

  • NetVde_v1_17.xlsm
    114.5 KB · Affichages: 33

fabrice76800

XLDnaute Nouveau
Bonjour,

oui, désolé pour la dureté du code, je ne suis qu'un petit amateur dans ce domaine.
erreur code 400, erreur d’exécution (Dimension spécifié non valide pour le type de graphique en cours) qui me renvoi à ligne macro Sub (Autogroup) à la fin Charts(Courbes).activate
J'ai aussi, Variable ou objet de bloc With non définie et erreur d'execution 9.

Beaucoup d'erreurs que je n'arrive pas a résoudre.

Cordialement.
 

Staple1600

XLDnaute Barbatruc
Re

Si tu es un amateur un VBA, qui a écrit le code VBA de ta PJ?

Si tu n'arrives pas à résoudre, hop, tu prends le TEOR, direction L'ours Noir ;)
Ensuite un petit tour de King ou de Sweety. ;)

Une fois, tes neurones aérés, tu reviens devant ton clavier et tu testes par exemple cette modif
(partout ou cela se répète dans ton code)
Tu remplaces
Charts("Courbes").Activate
par
Sheets("Courbes").Activate
 

fabrice76800

XLDnaute Nouveau
le code avait été écrit par un de mes collègues pour toutes les liaisons graphiques et moi pour toutes les formules mathématiques. Mais cela fait 10 ans.

Avec Sheets("Courbes").Activate sa fonctionne. Merci bien.

Par contre pour la feuille (courbes) quand je selectionne une courbe "x" et que j'active le bouton "selection", cela me met "erreur code 400".

J'ai regardé sur internet mais je ne suis arrivé à pas grand chose...
 

Staple1600

XLDnaute Barbatruc
Re

J'ai déplacé cette macro dans un module standard
(au départ, elle est dans le code de la feuille Courbes)
et j'ai donc réaffecté cette macro au bouton sélection
et je n'ai plus le Message d'erreur 400
VB:
Sub SelGrpoup()
  Dim nm$, i
    If TypeName(Selection) = "Series" Then
       nm = Selection.Name
     Range("GrpFiltre").AutoFilter Field:=8, Criteria1:=nm
       For i = 1 To Range("NomGrp").Rows.Count
            If Range("NomGrp").Cells(i) = nm Then
                Range("SelGrp") = i
                Exit Sub
            End If
        Next
    End If
End Sub
 

Staple1600

XLDnaute Barbatruc
Re

Là aussi, j'ai mis ces trois macros dans le module standard.
(et j'ai modifié un peu l'écriture)
Il faut aussi réattribuer les macros aux boutons
VB:
Sub QvAuto()
Dim ch As ChartObject
Set ch = Sheets("Courbes").ChartObjects(1)
ch.Chart.Axes(xlCategory).MaximumScaleIsAuto = True
'ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Sub QvPlus()
Dim ch As ChartObject
Set ch = Sheets("Courbes").ChartObjects(1)
ch.Chart.Axes(xlCategory).MaximumScale = ch.Chart.Axes(xlCategory).MaximumScale + 1000
'ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Sub Qvmoins()
Dim ch As ChartObject
Set ch = Sheets("Courbes").ChartObjects(1)
ch.Chart.Axes(xlCategory).MaximumScale = ch.Chart.Axes(xlCategory).MaximumScale - 1000
'ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 495
Messages
2 088 971
Membres
103 995
dernier inscrit
Flodk