Visual Basic: Run-time error '13': Type mismatch

Fermé
snake211 Messages postés 10 Date d'inscription jeudi 14 novembre 2019 Statut Membre Dernière intervention 10 novembre 2021 - 9 nov. 2021 à 12:22
snake211 Messages postés 10 Date d'inscription jeudi 14 novembre 2019 Statut Membre Dernière intervention 10 novembre 2021 - 10 nov. 2021 à 07:39
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
A voir également:

6 réponses

Le Pingou Messages postés 12140 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 18 septembre 2024 1 446
9 nov. 2021 à 21:22
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.
1
eriiic Messages postés 24595 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 2 septembre 2024 7 234
10 nov. 2021 à 00:15
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
1
Le Pingou Messages postés 12140 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 18 septembre 2024 1 446
9 nov. 2021 à 13:17
Bonjour,
Contrôler que la variable [cht1] est bien renseignée avec l'objet [Chart3]..!
0
snake211 Messages postés 10 Date d'inscription jeudi 14 novembre 2019 Statut Membre Dernière intervention 10 novembre 2021
9 nov. 2021 à 14:09
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
snake211 Messages postés 10 Date d'inscription jeudi 14 novembre 2019 Statut Membre Dernière intervention 10 novembre 2021
9 nov. 2021 à 14:15
En gros ce que je voulais faire c'est lier l'échelle minimale du graphique 1,2,3 etc... à une cellule spécifique.
0
snake211 Messages postés 10 Date d'inscription jeudi 14 novembre 2019 Statut Membre Dernière intervention 10 novembre 2021
10 nov. 2021 à 07:39
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
0