IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Bug macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 51
    Par défaut Bug macro
    Bonjour à tous,

    Je reprends actuellement un poste et je me retrouve face à une " panne" de macro....
    La macro est plutôt ancienne, elle a été crée en 2004.
    Cette macro sert sur une page qui permet d'afficher des graphiques de suivis de production.
    elle affiche les mois m-3,m-2,m-1 et m en terme de réalisation.
    Le mois m-3 est ensuite archivé...
    Quand je lance le programme, il s'arrête sur la ligne en jaune mais je ne sais pas pourquoi... ( voir image si dessous)
    Nom : Capture.PNG
Affichages : 720
Taille : 164,8 Ko

    Erreur d'exécution '-2147467259 (80004005)':
    La méthode 'Select' de l'objet 'DataLabel' a échoué
    merci d'avance pour votre aide

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2010
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 194
    Par défaut
    essais de remplacer la ligne surlignée en jaune par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With ActiveChart.SeriesCollection(i)
        .HasDataLabels = True
        .Points(.Points.Count).DataLabel.Select
    End With

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 51
    Par défaut
    Je te remercie pour l'aide que tu essaies de m'apporter mais cela ne fonctionne pas
    devient Jaune....

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2010
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 194
    Par défaut
    Donc à priori le label n'existe pas ! la aussi quel est le message d'erreur ?

    Bon c'est compliqué de travailler comme cela... il faudrait que tu postes le code de la sub Etiquette pour que je puisse le copier coller pour tester !

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 51
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Sub Etiquettes()
    '
    ' Etiquette Macro
    ' Macro enregistrée le 06/12/2002 par Bruno FACHE
    '
    Dim i As Byte
    Dim NumGraph As Byte
     
    ' affiche les étiquettes des courbes bleu et rouge
        Sheets("Graphiques").Select
        For NumGraph = 1 To 3
            If NumGraph = 3 Then NumGraph = 5
            ActiveSheet.ChartObjects("Graphique " & NumGraph).Activate
            For i = 2 To 3
                On Error Resume Next
                ActiveChart.SeriesCollection(i).DataLabels.Delete
                On Error GoTo 0
                ActiveChart.SeriesCollection(i).Points(ActiveChart.SeriesCollection(i).Points.Count).ApplyDataLabels _
                Type:=xlDataLabelsShowValue, AutoText:=True, LegendKey:=False
    '            ActiveChart.SeriesCollection(i).DataLabels.Select
               ' ActiveChart.SeriesCollection(i).Points(ActiveChart.SeriesCollection(i).Points.Count).DataLabel.Select
                With ActiveChart.SeriesCollection(i)
                .HasDataLabels = True
                .Points(.Points.Count).DataLabel.Select
                End With
     
                Selection.AutoScaleFont = False
                With Selection.Font
                    .Name = "Arial"
                    .Size = 8
                    .Background = xlAutomatic
                    .Bold = True
                    If i = 2 Then
                        .ColorIndex = 5
                    Else
                        .ColorIndex = 3
                    End If
                End With
                Selection.NumberFormat = "#,##0 [$€-1]"
            Next i
        Next NumGraph
    End Sub

    voici le code complet

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2010
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 194
    Par défaut
    La ligne suivante me gène un peu !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveChart.SeriesCollection(i).Points(ActiveChart.SeriesCollection(i).Points.Count).ApplyDataLabels _
                Type:=xlDataLabelsShowValue, AutoText:=True, LegendKey:=False
    normalement "ApplyDataLabels" s'applique à une serie or ici ton code cherche à l'appliquer à un point en particulier qui est le dernier de la série... c'est peut être pas ça le problème...

    la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveChart.SeriesCollection(i).DataLabels.Delete
    supprime bien tous les labels de la serie

    et j'ai verifié la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveChart.SeriesCollection(i).Points(ActiveChart.SeriesCollection(i).Points.Count).ApplyDataLabels _
                Type:=xlDataLabelsShowValue, AutoText:=True, LegendKey:=False
    recrée tous les labels même si "ApplyDataLabels" n'est appliqué qu' a un point !!!

    donc pour moi ".Points(ActiveChart.SeriesCollection(i).Points.Count)" ne sert à rien !!!

    la bonne syntaxe devrait être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveChart.SeriesCollection(i).ApplyDataLabels Type:=xlDataLabelsShowValue, AutoText:=True, LegendKey:=False

    voila essai déjà ça !

    Édit : et d’ailleurs si certain type de graphique d'excel accepte qu'un seul point d'une série ai un label, alors il faudrait n'activer que le labelle de ce point ce qui expliquerait l'erreur

    Réédite : bon c'est effectivement ce qui est fait dans ton code d'origine et j'ai testé cela fonctionne de mon coté donc je ne comprend toujours pas pour quoi ce la plante chez toi !

Discussions similaires

  1. Bug macro sur réseau d'entreprise
    Par garfield26 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/03/2011, 11h28
  2. Bug Macro VBA, Selection=erreur 2036
    Par scorecard dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/03/2011, 11h21
  3. Bug macro affectée à forme automatique Excel2007
    Par Montor dans le forum Contribuez
    Réponses: 0
    Dernier message: 25/12/2008, 15h15
  4. [BUG] Macros "imbriquées"
    Par ML0808 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 07/04/2008, 14h52
  5. [VBA-E] Bug macro bouton commande
    Par allergique dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/08/2006, 23h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo