Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/09/2011, 09h41   #1
Membre du Club
 
Étudiant
Inscription : juin 2006
Messages : 146
Détails du profil
Informations personnelles :
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2006
Messages : 146
Points : 44
Points : 44
Par défaut enlever valeur null ou zero dans un graph

Bonjour à tous,

Voilà, j'aimerai enlever mes valeurs égales à 0 dans le graph. Ils viennent d'une formule qui mets la cellule à vide si condition non rempli.

Comment faire?

dawaman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 10h11   #2
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Bonjour,

Tu peux utiliser cette macro (en changeant le nom du graphique) :

Code :
1
2
3
4
5
6
7
8
9
Sub test()
Dim Valeurs
With ActiveSheet.ChartObjects("Graphique 1").Chart.SeriesCollection(1)
    Valeurs = .Values
    For i = 1 To .Points.Count
        If Valeurs(i) = 0 Then .Points(i).DataLabel.Text = ""
    Next i
End With
End Sub
... et pour examiner toutes les séries du graphique :

Code :
1
2
3
4
5
6
7
8
9
10
11
Sub test()
    Dim Valeurs, i As Long, j As Long
    For j = 1 To ActiveSheet.ChartObjects("Graphique 1").Chart.SeriesCollection.Count
    With ActiveSheet.ChartObjects("Graphique 1").Chart.SeriesCollection(j)
        Valeurs = .Values
        For i = 1 To .Points.Count
            If Valeurs(i) = 0 Then .Points(i).DataLabel.Text = ""
        Next i
    End With
    Next j
End Sub
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 10h30   #3
Membre du Club
 
Étudiant
Inscription : juin 2006
Messages : 146
Détails du profil
Informations personnelles :
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2006
Messages : 146
Points : 44
Points : 44
je n'y connais pas grand chose en macro. Je les mets ou.
dawaman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 11h17   #4
Membre éprouvé
 
Avatar de Runsh63
 
Homme Duc
Nihiliste
Inscription : mars 2011
Messages : 395
Détails du profil
Informations personnelles :
Nom : Homme Duc
Âge : 31
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Nihiliste
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 395
Points : 419
Points : 419
Salut,

Tu fais Alt+F11 / Insérer / Modules

Tu colles ta macro et voilà !
__________________
Cordialement,

Runsh
Runsh63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 11h25   #5
Membre du Club
 
Étudiant
Inscription : juin 2006
Messages : 146
Détails du profil
Informations personnelles :
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2006
Messages : 146
Points : 44
Points : 44
merci pour tout,

J'ai une erreur maintenant:

erreur execution 1004
Impossible de définir la propriété texte de datalabel
dawaman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 11h34   #6
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Peux-tu joindre un fichier simplifié ?
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 11h38   #7
Membre du Club
 
Étudiant
Inscription : juin 2006
Messages : 146
Détails du profil
Informations personnelles :
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2006
Messages : 146
Points : 44
Points : 44
bien sur

Un fichier source et le fichier "dashboard"
Fichiers attachés
Type de fichier : xls test export WF2.xls (70,0 Ko, 2 affichages)
Type de fichier : xls DashBoard_DDC(V2).xls (54,5 Ko, 4 affichages)
dawaman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 12h10   #8
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Je n'ai pas eu cette erreur, cependant la macro supposait que les séries avaient des étiquettes. J'ai ajouté un test pour éviter de planter quand il n'y en a pas; par contre, faut-il également effacer les légendes d'abscisses quand la valeur des points est égale à 0 ?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub test()
    Dim Valeurs, i As Long, j As Long
    With ActiveSheet.ChartObjects("Graphique 1").Chart
        For j = 1 To .SeriesCollection.Count
            With .SeriesCollection(j)
                Valeurs = .Values
                For i = 1 To .Points.Count
                    If .Points(i).HasDataLabel = True Then
                        If Valeurs(i) = 0 Then .Points(i).DataLabel.Text = ""
                    End If
                Next i
            End With
        Next j
    End With
End Sub
PS. Indique ta version d'Excel, il y a eu pas mal de changements avec XL2007.
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 13h56   #9
Membre du Club
 
Étudiant
Inscription : juin 2006
Messages : 146
Détails du profil
Informations personnelles :
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2006
Messages : 146
Points : 44
Points : 44
J'utilise Excel 2003.

Les légendes d'abscisses s'effacent automatiquement.

J'ai toujours l'erreur. J'avais déjà effectué ce test.
dawaman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 09h21   #10
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Bonjour,

Poste ton classeur avec la macro.
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h55.


 
 
 
 
Partenaires

Hébergement Web