Changement version excel-erreur incompatibilité macro

gaela

XLDnaute Nouveau
Bonjour,

Je viens de passer à la dernière version d'excel (2013) et des macros qui fonctionnaient très bien avant ne peuvent être appliquées maintenant. Excel me signale une incompatibilité de type (erreur 13).
Par exemple,

Sub etiquettesecteurconsonrj()

Dim graph As ChartObject
Dim nbserie, nbannee As Integer
Dim x, total As Double
Dim i, j, k, l, m As Integer
Dim p, q As Integer

Set graph = Feuil11.ChartObjects(1)


'Nombre de séries du graphique
nbserie = graph.Chart.SeriesCollection.Count

'Nombre de points pour les séries
nbannee = graph.Chart.SeriesCollection(1).Points.Count

'affichage toutes les étiquettes
For i = 1 To nbserie
For j = 1 To nbannee
graph.Chart.SeriesCollection(i).Points(j).HasDataLabel = True
Next j
Next i

'calcul total annuel max

total = 0
x = 0
For l = 1 To nbannee
For k = 1 To nbserie
x = x + graph.Chart.SeriesCollection(k).Points(l).DataLabel.Characters.Text
Next k
If x > total Then total = x
x = 0
Next l

'Cells(1, 1).Value = total

'suppression des etiquettes de séries
For m = 1 To nbserie
graph.Chart.SeriesCollection(m).DataLabels.Delete
Next m

'masque ou affichage des étiquettes des séries
For p = 1 To nbserie
For q = 1 To nbannee

graph.Chart.SeriesCollection(p).Points(q).HasDataLabel = True
graph.Chart.SeriesCollection(p).Points(q).DataLabel.Font.Size = "9"
If graph.Chart.SeriesCollection(p).Points(q).DataLabel.Characters.Text < 0.07 * total Then
graph.Chart.SeriesCollection(p).Points(q).HasDataLabel = False
End If
Next q
Next p

End Sub

Qui fonctionnait avant ne fonctionne plus?
Auriez-vous rencontré le même problème?
Cordialement,
 

Misange

XLDnaute Barbatruc
Re : Changement version excel-erreur incompatibilité macro

Bonjour et bienvenue,

1) quelle était ta version antérieure
2) quelle version d'excel as tu installée : la version 32 ou 64 bits ?
3) sur quelle ligne de ton code s'arrête la macro quand elle plante ?
4) si tu as bien lu le message qui s'affiche quand tu as posé ta question, tu as lu qu'il était chaudement conseillé de joindre un petit classeur exemple, qu'on ne voit pas :)
 

Misange

XLDnaute Barbatruc
Re : Changement version excel-erreur incompatibilité macro

C'est cette ligne qu'il faut changer
Code:
For k = 1 To nbserie
   x = x + graph.Chart.SeriesCollection(k).Points(l).characters.text
Next k

par

Code:
For k = 1 To nbserie
   x = x + graph.Chart.SeriesCollection(k).Points(l).DataLabel.Caption
Next k

sinon pour mettre des étiquettes sur un graphique, cet add-in gratuit est fort pratique et puissant :
The XY Chart Labeler Add-in
 

Staple1600

XLDnaute Barbatruc
Re : Changement version excel-erreur incompatibilité macro

Bonsoir à tous_____________________EDITION: Bonsoir Misange ;)


Simplement pour signaler ce "problème" de déclarations de variables
Dim i, j, k, l, m As Integer
Dim p, q As Integer
dervait être normalement

Dim i%, j%, k%, l%, m%
Dim p%, q%
ou aussi
Dim i%, j%, k%, l%, m%, p%, q%

Pour les explications, voir ici
 
Dernière édition:

Misange

XLDnaute Barbatruc
Re : Changement version excel-erreur incompatibilité macro

Chez moi cela fonctionne... avec excel 2013. MAis encore faut-il changer tous les
.characters.text
par
.DataLabel.Caption
Au lieu de te taper de définir des dizaines de noms dynamiques avec la fonction decaler, tu peux faire cela automatiquement en utilisant les tableaux excel
Ce lien n'existe plus
c'est autrement plus pratique !
 

Pièces jointes

  • pbexcel-1.xlsm
    116.9 KB · Affichages: 39

Discussions similaires

Réponses
29
Affichages
955
Réponses
11
Affichages
297

Membres actuellement en ligne

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal