Supprimer ligne si contenu est vide + Données source Graph

matiousky

XLDnaute Junior
Bonjour à tous,

J'ai 6 lignes dont le contenu se rempli sous conditions.
Cette zone est la source d'un graphique de type Secteurs (camembert).

Je voudrai que si une de ces lignessoit vide alors la cellule soit supprimée en étant décalée vers le haut. Mon but est qu'il n'y ai pas d'espace entre les lignes remplies.

D'autre part j'ai une seconde question, toujours dans ce même cas de figure, comment faire pour que si une ligne est égale à 0, alors cela n'apparaisse pas dans le graphique.

J'ai mis un exemple en pièce jointe.

Je vous remercie pour votre aide,
Mat
 

Pièces jointes

  • Classeur1.xls
    16.5 KB · Affichages: 117
  • Classeur1.xls
    16.5 KB · Affichages: 116
  • Classeur1.xls
    16.5 KB · Affichages: 118

gbinforme

XLDnaute Impliqué
Re : Supprimer ligne si contenu est vide + Données source Graph

Bonsoir,

J'ai rajouté le code dans une macro événementielle,

en double cliquant sur la cellule, elle est supprimée,

si c'est bien ce que tu veux, on peux le faire autrement, selon ton souhait,

par la même occasion, le zéro est supprimé.
 

Pièces jointes

  • Classeur_matiousky.xls
    25.5 KB · Affichages: 174

JYLL

Nous a quitté
Repose en paix
Re : Supprimer ligne si contenu est vide + Données source Graph

Bonjour Matiousky, Gbinforme et le Forum,

Si la colonne"A" est une colonne type, tu peux masquer les lignes qui sont égales à 0% et de ce fait ces lignes n'apparaissent pas dans le graphique;

Bon test.
 

matiousky

XLDnaute Junior
Re : Supprimer ligne si contenu est vide + Données source Graph

Bonjour à tous,

Merci pour votre aide.
gbinforme, ton fichier est super, seulement l'utilisateur de mon fichier n'aura pas accès à cette feuille (le schéma généré est imprimé). Ainsi on ne peut donc pas cliquer dessus.

Je m'oriente plus vers une solution de type de celle de JYLL.
Pouvez-vous m'aider sur le code pour masquer automatiquement les lignes qui sont égales à 0% ?

Merci à vous,
Mat
 

gbinforme

XLDnaute Impliqué
Re : Supprimer ligne si contenu est vide + Données source Graph

matiousky à dit:
Pouvez-vous m'aider sur le code pour masquer automatiquement les lignes qui sont égales à 0% ?

Je te propose de mettre dans ta feuille cette macro évenementielle :

Private Sub Worksheet_Change(ByVal sel As Range)
If Not Intersect(sel, Range("b:b")) Is Nothing Then
If sel = 0 Then
sel.EntireRow.Hidden = True
Else
sel.EntireRow.Hidden = False
End If
End If
End Sub


J'ai choisis la colonne B où tu avais le zéro mais tu peux adapter avec la bonne colonne : cela répond aussi à la suppression du zéro sur le graphe.

Comme ta colonne est alimentée, si elle n'est plus à zéro, elle redevient active, visible et présente sur le graphe.

En espérant avoir bien compris cette fois...
 

JYLL

Nous a quitté
Repose en paix
Re : Supprimer ligne si contenu est vide + Données source Graph

Bonsoir matiousky et le Forum,

Voici ton classeur modifié avec deux petites macros, une qui masque les lignes comportant un 0% dans la colonne "B" et l'autre qui affiche toutes les lignes.

Bon test.
 

Pièces jointes

  • Classeur1.xls
    28 KB · Affichages: 148
  • Classeur1.xls
    28 KB · Affichages: 152
  • Classeur1.xls
    28 KB · Affichages: 155

matiousky

XLDnaute Junior
Re : Supprimer ligne si contenu est vide + Données source Graph

Bonjour à tous,

Encore merci pour votre aide si précieuse, cependant je suis si mauvais que j'ai besoin de détails pour adapter vos solutions à mon fichier.

gbinforme: la zone à vérifier n'est ps une colonne mais la zone G4:H9.
J'ai essayé de la rentrer à la place de ("b:b ») mais ca ne marche pas.
D'autre part, ce code sera intégré dans un autre (cf ci-dessous)


JYLL
J'ai essayé d'utiliser ta formule, cependant je n'ai pas réussi.
Peux tu me préciser les paramètres des la fonctions?
Dans ta formule que veux dire I = 3, dois-je mettre mon range Range("G4:H9) ?
Que veux dire If Cells(I, 2) = 0 ?
D'autre part, ce code sera intégré dans un autre (cf ci-dessous)


Sub ImprimerClient()
Dim ok As Boolean
ok = True
If Range("D170") <> Range("N4") Then MsgBox "Attention ": ok = False
If Range("M12").Value <> 1 Then MsgBox "100%": ok = False
If ok Then
(je veux placer le code ici)
Application.ScreenUpdating = False
Sheets("Synthèse client").Visible = True
Sheets("Synthèse client").PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
Sheets("Synthèse client").Select
Range("G11:I36").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
End With
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Range("F10:H36").Select
Selection.NumberFormat = "#,##0"
With Selection
.HorizontalAlignment = xlCenter
End With
Range("A7").Select
End If
Application.ScreenUpdating = True
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 677
Messages
2 090 817
Membres
104 673
dernier inscrit
lautard