Visual Basic: Run-time error '13': Type mismatch
snake211
Messages postés
10
Date d'inscription
Statut
Membre
Dernière intervention
-
snake211 Messages postés 10 Date d'inscription Statut Membre Dernière intervention -
snake211 Messages postés 10 Date d'inscription Statut Membre Dernière intervention -
Bonjour la communauté,
J'ai un petit souci avec le code VB suivant:
Sub SetChartScales()
Dim cht As Chart
Dim cht1 As Chart
Dim cht2 As Chart
Set cht = Worksheets("Graphiques").ChartObjects("Chart 1").Chart
cht.Axes(xlValue).MinimumScale = Range("A5").Value
Set cht1 = Worksheets("Graphiques").ChartObjects("Chart 3").Chart
cht1.Axes(xlValue).MinimumScale = Range("A31").Value
Set cht2 = Worksheets("Graphiques").ChartObjects("Chart 5").Chart
cht2.Axes(xlValue).MinimumScale = Range("A58").Value
Lors du run, je recois la runtime error 13: type mismatch, avec cht1.Axes(xlValue).MinimumScale = Range("A31").Value surligné en jeu dans le Debug,
Je ne comprends pas car j'ai bien nommé ces variables. Quelq u'un peut m'expliquer?
Merci et bonne journée
J'ai un petit souci avec le code VB suivant:
Sub SetChartScales()
Dim cht As Chart
Dim cht1 As Chart
Dim cht2 As Chart
Set cht = Worksheets("Graphiques").ChartObjects("Chart 1").Chart
cht.Axes(xlValue).MinimumScale = Range("A5").Value
Set cht1 = Worksheets("Graphiques").ChartObjects("Chart 3").Chart
cht1.Axes(xlValue).MinimumScale = Range("A31").Value
Set cht2 = Worksheets("Graphiques").ChartObjects("Chart 5").Chart
cht2.Axes(xlValue).MinimumScale = Range("A58").Value
Lors du run, je recois la runtime error 13: type mismatch, avec cht1.Axes(xlValue).MinimumScale = Range("A31").Value surligné en jeu dans le Debug,
Je ne comprends pas car j'ai bien nommé ces variables. Quelq u'un peut m'expliquer?
Merci et bonne journée
A voir également:
- Visual Basic: Run-time error '13': Type mismatch
- Visual basic - Télécharger - Langages
- Visual basic editor - Télécharger - Langages
- Visual petanque - Télécharger - Sport
- Microsoft 365 basic - Accueil - Microsoft Office
- Visual c++ 2019 - Guide
6 réponses
Bonjour,
Dans le premier poste vous dite qu'il y a une erreur avec cht1.Axes(xlValue).MinimumScale = Range("A31").Value
Donc il faut contrôler si votre variable [cht1] à bien reçu l'objet : Worksheets("Graphiques").ChartObjects("Chart 3").Chart
Se n'est pas sur que l'attribution soit faite si votre Chart 3 n'est pas existant!
i vous voulez que je regarde de plus prêt, mettre le fichier sur https://www.cjoint.com/ et poster le lien.
Dans le premier poste vous dite qu'il y a une erreur avec cht1.Axes(xlValue).MinimumScale = Range("A31").Value
Donc il faut contrôler si votre variable [cht1] à bien reçu l'objet : Worksheets("Graphiques").ChartObjects("Chart 3").Chart
Se n'est pas sur que l'attribution soit faite si votre Chart 3 n'est pas existant!
i vous voulez que je regarde de plus prêt, mettre le fichier sur https://www.cjoint.com/ et poster le lien.
Bonjour,
Type mismatch c'est le type qui ne convient pas.
Tu as bien un numérique qui s'aligne à droite en A31 et non un nombre en texte (s'aligne à gauche) ?
eric
Type mismatch c'est le type qui ne convient pas.
Tu as bien un numérique qui s'aligne à droite en A31 et non un nombre en texte (s'aligne à gauche) ?
eric
Je ne comprends, pas... je suis assez novice en VB:
Set cht1 = Worksheets("Graphiques").ChartObjects("Chart 10").Chart
'J'attribue à la variable cht1, le graphique Chart 10
cht1.Axes(xlValue).MinimumScale = Range("A31").Value
'Je modifie l'axe du graphique avec la valeur A31
D'ailleurs il ne me sort pas d'erreur sur les 2 1ère ligne de code:
Set cht = Worksheets("Graphiques").ChartObjects("Chart 3").Chart
cht.Axes(xlValue).MinimumScale = Range("A5").Value
Set cht1 = Worksheets("Graphiques").ChartObjects("Chart 10").Chart
'J'attribue à la variable cht1, le graphique Chart 10
cht1.Axes(xlValue).MinimumScale = Range("A31").Value
'Je modifie l'axe du graphique avec la valeur A31
D'ailleurs il ne me sort pas d'erreur sur les 2 1ère ligne de code:
Set cht = Worksheets("Graphiques").ChartObjects("Chart 3").Chart
cht.Axes(xlValue).MinimumScale = Range("A5").Value
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
En gros ce que je voulais faire c'est lier l'échelle minimale du graphique 1,2,3 etc... à une cellule spécifique.
C'est bon c'est réglé... en fait il y avait des interférences avec d'autres codes du classeur (notamment des feuilles qui étaient actives au moment du lancement du code).
En utilisant des références pleinement qualifiées j'ai pu éliminer ces interférences:
Dim XXX as WorkSheet
Set XXX = ThisWorkbook.Sheets("YYY")
Set cht = Worksheets("Graphiques").ChartObjects("Chart 1").Chart
cht.Axes(xlValue).MinimumScale = XXX.Range("A5").Value
etc...
Merci pour vos réponses
En utilisant des références pleinement qualifiées j'ai pu éliminer ces interférences:
Dim XXX as WorkSheet
Set XXX = ThisWorkbook.Sheets("YYY")
Set cht = Worksheets("Graphiques").ChartObjects("Chart 1").Chart
cht.Axes(xlValue).MinimumScale = XXX.Range("A5").Value
etc...
Merci pour vos réponses