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 :

Erreur 91 : "Object variable or With block variable not set" VBA


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 9
    Points : 3
    Points
    3
    Par défaut Erreur 91 : "Object variable or With block variable not set" VBA
    Bonjour,

    J'utilisais la formule ci-dessous mais depuis que j'ai changé des choses dans mon classeur elle ne fonctionne plus. Je l'utilisais pour changer la couleur de mon graphique en fontion des résultats. Qu'en pensez vous ?

    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
     Sub FormatConditionnelGraphique()
     'Compte le nombre de séries
     For c = 1 To ActiveChart.SeriesCollection.Count
     'compte le nombre de points
     For d = 1 To ActiveChart.SeriesCollection(c).Points.Count
     'teste la présente des étiquettes sur le graphs
     If ActiveChart.SeriesCollection(c).Points(d).HasDataLabel = False Then Test = 1
     'affiche les étiquettes
     ActiveChart.SeriesCollection(c).Points(d).HasDataLabel = True
     'récupère les informations des étiquettes
     rep = ActiveChart.SeriesCollection(c).Points(d).DataLabel.Text
     'convertit l'étiquette en nombre et fais le test
     If CDbl(rep) > 7 Then
     'suivant le résultat, change la couleur
     ActiveChart.SeriesCollection(c).Points(d).Interior.ColorIndex = 43
     Else
     ActiveChart.SeriesCollection(c).Points(d).Interior.ColorIndex = 3
     End If
     'remets dans l'état initial le graphique
     If Test = 1 Then ActiveChart.SeriesCollection(c).Points(d).HasDataLabel = False
     Next d
     Next c
     End Sub
    Merci à tous

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    J'ai un peu modifié ton code et l'a rendu paramétré
    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
    Private Sub FormatConditionnelGraphique(ByVal Ch As Chart)
    Dim Ns As Integer, i As Integer
    Dim Test As Boolean
    Dim Pt As Point
     
    With Ch
        'nombre de séries
        Ns = .SeriesCollection.Count
        For i = 1 To Ns
            'parcourts tous les points
            For Each Pt In .SeriesCollection(i).Points
                'teste la présente des étiquettes sur le graphs
                Test = Pt.HasDataLabel
                'affiche les étiquettes
                Pt.HasDataLabel = True
                'récupère les informations des étiquettes
                'convertit l'étiquette en nombre et fais le test
                'suivant le résultat, change la couleur
                Pt.Interior.ColorIndex = IIf(CDbl(Pt.DataLabel.Text) > 7, 43, 3)
                'remets dans l'état initial le graphique
                Pt.HasDataLabel = Test
            Next Pt
        Next i
    End With
    End Sub
    On l'applique à l'objet graphique inséré dans la feuille Feuil1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Test1()
     
    FormatConditionnelGraphique Worksheets("Feuil1").ChartObjects(1).Chart
    End Sub
    Ou à la feuille graphique nommée Graph1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Test2()
     
    FormatConditionnelGraphique Sheets("Graph1")
    End Sub

Discussions similaires

  1. Run time error 91 in vb:object variable or with block variable not set
    Par azzouz90 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 09/09/2011, 01h40
  2. Réponses: 4
    Dernier message: 14/04/2011, 16h32
  3. Erreur (object variable or with block variable not set), Aide ADODB
    Par Louis.Gruhn dans le forum Général VBA
    Réponses: 6
    Dernier message: 21/12/2010, 10h21
  4. Error 91 :object variable or with block variable not set
    Par Eausport dans le forum Installation, Déploiement et Sécurité
    Réponses: 13
    Dernier message: 06/06/2009, 04h09
  5. [VBA-E] Erreur "Object variable or With block variable not set"
    Par @lex(is) dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 08/06/2006, 12h39

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