Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Erreur lors d'une exécution de macro d'excelabo

9 réponses
Avatar
cowboy
Bonjour à tous,

Je voudrais utiliser la macro du site qui permet de colorer les
étiquettes de données d'un graph en fonction de la couleur de la courbe.
Pour rappel le code est le suivant :
Sub coulEtiquettes()
' formate la couleur de police des étiquettes de séries
' (pour les graphiques type Courbes ou Histogrammes,
' sous-type par défaut)
' par la couleur - personnalisée - de la série rattachée.
Dim cO As ChartObject
Application.ScreenUpdating = False
Set aC = ActiveCell
For Each cO In ActiveSheet.ChartObjects
cO.Activate
Set nbcoL = ActiveChart.SeriesCollection
For i = 1 To nbcoL.Count
If nbcoL(i).HasDataLabels Then
nbcoL(i).DataLabels.Select
With Selection
.Interior.ColorIndex = xlNone
If cO.Chart.ChartType = xlLineMarkers Then _
.Font.ColorIndex = nbcoL(i).Border.ColorIndex
If cO.Chart.ChartType = xlColumnClustered Then _
.Font.ColorIndex = nbcoL(i).Interior.ColorIndex
End With
End If
Next i
Next cO
aC.Select
Set nbcoL = Nothing
Set aC = Nothing
End Sub


Lorsque je lance la macro, excel me lance une erreur d'application 91,
et me dit variable objet ou variable de bloc With non définie.
Le débogueur me renvoie sur la 4ème ligne avant la fin du code : aC.select

Je ne vois pas d'où peut venir l'erreur....
Merci d'avance de votre aide précieuse ;-)

9 réponses

Avatar
ChrisV
Bonjour cowboy,

Ajoute, sous la ligne: Application.ScreenUpdating = False
On Error Resume Next


ChrisV


"cowboy" a écrit dans le message de news:

Bonjour à tous,

Je voudrais utiliser la macro du site qui permet de colorer les étiquettes
de données d'un graph en fonction de la couleur de la courbe.
Pour rappel le code est le suivant :
Sub coulEtiquettes()
' formate la couleur de police des étiquettes de séries
' (pour les graphiques type Courbes ou Histogrammes,
' sous-type par défaut)
' par la couleur - personnalisée - de la série rattachée.
Dim cO As ChartObject
Application.ScreenUpdating = False
Set aC = ActiveCell
For Each cO In ActiveSheet.ChartObjects
cO.Activate
Set nbcoL = ActiveChart.SeriesCollection
For i = 1 To nbcoL.Count
If nbcoL(i).HasDataLabels Then
nbcoL(i).DataLabels.Select
With Selection
.Interior.ColorIndex = xlNone
If cO.Chart.ChartType = xlLineMarkers Then _
.Font.ColorIndex = nbcoL(i).Border.ColorIndex
If cO.Chart.ChartType = xlColumnClustered Then _
.Font.ColorIndex = nbcoL(i).Interior.ColorIndex
End With
End If
Next i
Next cO
aC.Select
Set nbcoL = Nothing
Set aC = Nothing
End Sub


Lorsque je lance la macro, excel me lance une erreur d'application 91, et
me dit variable objet ou variable de bloc With non définie.
Le débogueur me renvoie sur la 4ème ligne avant la fin du code : aC.select

Je ne vois pas d'où peut venir l'erreur....
Merci d'avance de votre aide précieuse ;-)


Avatar
cowboy
Merci ChrisV
J'ai testé et malheureusement l'erreur apparait toujours.
Est ce que ce pourrait être un problème de version car j'ai excel 2002
alors que le code a semble t'il était créé pour excel 2000 d'après le site.

Bonjour cowboy,

Ajoute, sous la ligne: Application.ScreenUpdating = False
On Error Resume Next


ChrisV


"cowboy" a écrit dans le message de news:


Bonjour à tous,

Je voudrais utiliser la macro du site qui permet de colorer les étiquettes
de données d'un graph en fonction de la couleur de la courbe.
Pour rappel le code est le suivant :
Sub coulEtiquettes()
' formate la couleur de police des étiquettes de séries
' (pour les graphiques type Courbes ou Histogrammes,
' sous-type par défaut)
' par la couleur - personnalisée - de la série rattachée.
Dim cO As ChartObject
Application.ScreenUpdating = False
Set aC = ActiveCell
For Each cO In ActiveSheet.ChartObjects
cO.Activate
Set nbcoL = ActiveChart.SeriesCollection
For i = 1 To nbcoL.Count
If nbcoL(i).HasDataLabels Then
nbcoL(i).DataLabels.Select
With Selection
.Interior.ColorIndex = xlNone
If cO.Chart.ChartType = xlLineMarkers Then _
.Font.ColorIndex = nbcoL(i).Border.ColorIndex
If cO.Chart.ChartType = xlColumnClustered Then _
.Font.ColorIndex = nbcoL(i).Interior.ColorIndex
End With
End If
Next i
Next cO
aC.Select
Set nbcoL = Nothing
Set aC = Nothing
End Sub


Lorsque je lance la macro, excel me lance une erreur d'application 91, et
me dit variable objet ou variable de bloc With non définie.
Le débogueur me renvoie sur la 4ème ligne avant la fin du code : aC.select

Je ne vois pas d'où peut venir l'erreur....
Merci d'avance de votre aide précieuse ;-)







Avatar
ChrisV
Est ce que ce pourrait être un problème de version car j'ai excel 2002
Non, le demandeur de l'époque bosser effectivement sous Excel2000, mais il

me semble avoir fait cette proc sous XP ou 2003... j'sais plus...

Tu peux me transmettre le fichier directement en bal perso...?


ChrisV


"cowboy" a écrit dans le message de news:

Merci ChrisV
J'ai testé et malheureusement l'erreur apparait toujours.

alors que le code a semble t'il était créé pour excel 2000 d'après le
site.

Bonjour cowboy,

Ajoute, sous la ligne: Application.ScreenUpdating = False
On Error Resume Next


ChrisV


"cowboy" a écrit dans le message de
news:

Bonjour à tous,

Je voudrais utiliser la macro du site qui permet de colorer les
étiquettes de données d'un graph en fonction de la couleur de la courbe.
Pour rappel le code est le suivant :
Sub coulEtiquettes()
' formate la couleur de police des étiquettes de séries
' (pour les graphiques type Courbes ou Histogrammes,
' sous-type par défaut)
' par la couleur - personnalisée - de la série rattachée.
Dim cO As ChartObject
Application.ScreenUpdating = False
Set aC = ActiveCell
For Each cO In ActiveSheet.ChartObjects
cO.Activate
Set nbcoL = ActiveChart.SeriesCollection
For i = 1 To nbcoL.Count
If nbcoL(i).HasDataLabels Then
nbcoL(i).DataLabels.Select
With Selection
.Interior.ColorIndex = xlNone
If cO.Chart.ChartType = xlLineMarkers Then _
.Font.ColorIndex = nbcoL(i).Border.ColorIndex
If cO.Chart.ChartType = xlColumnClustered Then _
.Font.ColorIndex = nbcoL(i).Interior.ColorIndex
End With
End If
Next i
Next cO
aC.Select
Set nbcoL = Nothing
Set aC = Nothing
End Sub


Lorsque je lance la macro, excel me lance une erreur d'application 91, et
me dit variable objet ou variable de bloc With non définie.
Le débogueur me renvoie sur la 4ème ligne avant la fin du code :
aC.select

Je ne vois pas d'où peut venir l'erreur....
Merci d'avance de votre aide précieuse ;-)








Avatar
JpPradier
Bonjour cowboy

J'ai le meme message que toi si je lance la macro alors que le graphique est sélectionné. Si une
cellule est sélectionnée : No Problemo ;-)

j-p
Avatar
cowboy
Bonjour Jp,

Effectivement le message d'erreur n'apparait plus mais par contre la
mise en forme ne se fait pas... les étiquettes restent inchangées...
Bizarre, bizarre...

Bonjour cowboy

J'ai le meme message que toi si je lance la macro alors que le graphique est sélectionné. Si une
cellule est sélectionnée : No Problemo ;-)

j-p



Avatar
JpPradier
Re

Il faut aussi que ton graphique soit du type courbe ou Histogramme.

j-p
Avatar
ChrisV
Bein oui mais...
la gestion d'erreur (On Error...) aurait dû corriger le problème...?


ChrisV


"JpPradier" a écrit dans le message
de news: eMH3%
Bonjour cowboy

J'ai le meme message que toi si je lance la macro alors que le graphique
est sélectionné. Si une
cellule est sélectionnée : No Problemo ;-)

j-p



Avatar
JpPradier
Bonjour ChrisV

Bein oui aussi ;-)
Ca corrige effectivement chez moi. Je n'avais pas fait attention à ta réponse.

j-p
Avatar
ChrisV
Re,

Et ainsi...?

Sub coulEtiquettes()
' formate la couleur de police des étiquettes de séries
' (pour les graphiques type Courbes ou Histogrammes,
' sous-type par défaut)
' par la couleur - personnalisée - de la série rattachée.
Dim cO As ChartObject
Application.ScreenUpdating = False
On Error Resume Next
Set aC = ActiveCell
For Each cO In ActiveSheet.ChartObjects
cO.Activate
Set nbcoL = ActiveChart.SeriesCollection
For i = 1 To nbcoL.Count
If nbcoL(i).HasDataLabels Then
nbcoL(i).DataLabels.Select
With Selection
.Interior.ColorIndex = xlNone
If cO.Chart.ChartType = xlLineMarkers Then _
.Font.Color = nbcoL(i).Border.Color
If cO.Chart.ChartType = xlColumnClustered Then _
.Font.Color = nbcoL(i).Interior.Color
End With
End If
Next i
Next cO
aC.Select
Application.ScreenUpdating = False
On Error Resume Next
Set nbcoL = Nothing
Set aC = Nothing
End Sub


ChrisV


"cowboy" a écrit dans le message de news:

Bonjour Jp,

Effectivement le message d'erreur n'apparait plus mais par contre la mise
en forme ne se fait pas... les étiquettes restent inchangées...
Bizarre, bizarre...

Bonjour cowboy

J'ai le meme message que toi si je lance la macro alors que le graphique
est sélectionné. Si une
cellule est sélectionnée : No Problemo ;-)

j-p