Impression conditionnel de graphique sous excel

incubus20851

XLDnaute Occasionnel
C'est mon premier post ici, donc Bonjour à tout le monde !!

J'vais essayer d'etre clair..

J'ai un tableau de synthèse qui récapitule le chiffre d'affaires de Clients par produits, de ce tableau, est généré automatiquement des graphiques à la file en dessous du tableau de synthèse. Il me faudrait un bouton d'impression avec une macro par exemple qui imprime les graphiques des produits qui ne sont pas à 0. Donc qui ont du chiffre d'affaires. c'est pour éviter d'imprimer des graphiques vierge à chaque fois.

Quelle pourrait être la solution??

J'vous remercie d'avance pour votre réponse
A bientôt
Incubus20851
 

incubus20851

XLDnaute Occasionnel
Re : Impression conditionnel de graphique sous excel

Bonjour,

Dans ton dernier Post tu dis "voici un fichier plus abouti" mais y'a rien en pièce jointe :cool:

Et pour la reponse au post d'avant : "La liste des codes clients doit-elle correspondre à la liste de tous les clients pour tous les produits ou seulement au client pour un produit."
Il y a la meme liste de client dans tout les produits, donc la liste des code clients pour un produit.

Et désolé c'est vrai que j'ai parfois du mal a exprimer mes besoins, mais pas facile, c'est un peu flou dans ma tête, j'attendrai d'y voir plus clair avant de poser la question à l'avenir.

En tout cas merci de ton suivi, c'est très sympa, et j'risque d'avoir encore des questions mon outil est pas fini. J'continuerai ici où dois-je faire un nouveaux post ??

Là j'vais essayer d'adapter la macro d'impression graphique qui sont pas à 0 avec la prise en compte du texte que j'ai au dessus des graphiques.
Tout un programme :)

J'te tient au courant
A bientôt
Incubus
 
G

Guest

Guest
Re : Impression conditionnel de graphique sous excel

Bonjour Incubus:)

Content de te retrouver.;)

Désolé pour le fichier, j'ai du oublié de cliquer sur UpLoad. J'ai une tête de linote parfois....

donc le voici....

Et si tu as des questions sur ce sujet (Impression des graphiques) reste dans le même fil. Sinon relance un autre fil.

A bientôt
 

incubus20851

XLDnaute Occasionnel
Re : Impression conditionnel de graphique sous excel

Bonjour

Je bloque encore sur la macro d'impression graphiques différents de 0.
Il me coupe les graphiques bizzarement.
La structure a un peu changé, il ne faut pas qu'il prenne en compte la colonne A. Et qu'il laisse un graphique par page et y'a 12 lignes de texte au dessus de chaque graphique.

J'ai mis un saut de page pour enlever la colonne A et pour la premiere page qui ne contient pas de graphique, et apres j'ai laissé excel découpé les pages (affichage en pointillé dans "Aperçu des sauts de pages")

J'ai trouvé dans la macro pour lui dire de commencer à partir de la colonne "B" mais ca me detruit tout de même ma mise en page.

Si t'as une solution :)
Merci
A bientôt
 
G

Guest

Guest
Re : Impression conditionnel de graphique sous excel

bonjour Incubus,

Pour inclure les 12 Lignes du dessus:
Trouver la ligne suivante dans la macro et changer le -3 par -12:
Code:
AdrAireImpression = .Range(oChart.TopLeftCell.Offset(-[SIZE=3][COLOR=red][B]12[/B][/COLOR][/SIZE]), oChart.BottomRightCell).Address

A bientôt
 

incubus20851

XLDnaute Occasionnel
Re : Impression conditionnel de graphique sous excel

J'ai essayé avec le deuxieme code macro que tu m'a donné avec le offset -3, je trouve des graphiques à 0. Quand je met offset -12 il m'affiche toute mes lignes de texte, mais il découpe des pages en deux et tout mes graphiques se trouvent donc décalés, au lieu d'etre 1 graphique par page. Et j'ai toujours des graph à 0

Alors qu'avec la première macro il enlevait bien les graphiques à 0 mais je n'avais pas les lignes de texte
 

incubus20851

XLDnaute Occasionnel
Re : Impression conditionnel de graphique sous excel

Mon fichier fait 240 ko et pas moyen de le faire plus petit... :(

Il y'a peut-être une adresse où je peux te l'envoyer ??

En zip il fait 52 ko.... :(
49,5 Ko en mettant 3 zip ensemble l'un dans l'autre
 
Dernière édition:
G

Guest

Guest
Re : Impression conditionnel de graphique sous excel

re,

Voici, dis moi si cela fonctionne. chez moi cela semble fonctionner.

Code:
Sub ImprimerGraphiques()
    Dim nbCharts As Integer, i As Integer, j As Integer, k As Integer
    Dim Valeurs As Variant
    Dim somme
    Dim oChart
    Dim oSerie
    Dim Adr
    nbCharts = Feuil3.ChartObjects.Count
    i = 0
    For i = 1 To nbCharts
        somme = 0
        Set oChart = Feuil3.ChartObjects(i).Chart
        j = 0
        If oChart.SeriesCollection.Count > 0 Then
            For j = 1 To oChart.SeriesCollection.Count
                On Error GoTo FinBoucle
                If IsArray(oChart.SeriesCollection(j).Values) Then
                    Valeurs = oChart.SeriesCollection(j).Values
                    'fait la somme contenue dans les graphique
                    For k = LBound(Valeurs) To UBound(Valeurs)
                        somme = somme + Valeurs(k)
                    Next k
                End If
FinBoucle:
            Next j
        End If
        
        If somme > 0 Then
            Adr = oChart.SeriesCollection(1).Formula
            Adr = Left(Adr, InStr(Adr, ",") - 1)
            Adr = Mid(Adr, InStr(Adr, "!") + 1)
            On Error Resume Next
            Feuil3.PageSetup.PrintArea = _
            Range(oChart.Parent.TopLeftCell.Offset(-12), oChart.Parent.BottomRightCell).Address
            On Error GoTo 0
            Feuil3.PrintPreview
        End If
    Next i

End Sub


A+
 

incubus20851

XLDnaute Occasionnel
Re : Impression conditionnel de graphique sous excel

Merci pour le code.

Cela fonctionne, mais y'a quelques petits soucis..
- Par exemple quand j'appuie sur le bouton, le premier graphique qui vient dans l'aperçu est imprimé 2 fois.
- Le bouton se deplace tout seul après l'avoir utiliser et se met sur l'extreme gauche de la feuille et devient visible à l'impression.
- Et enfin après avoir utiliser le bouton, il flingue l'aperçu. C'est à dire que je ne vois plus tous mes graphiques dans le bouton normal de l'aperçu avant impression, mais juste 1. (C'est ce soucis le plus embetant)

Sur ma feuille j'ai plusieurs macro, avec des boutons,
1 bouton impression du dossier qui imprime d'un clic tout les graphiques et tableau présent sur la feuille y compris un graphique dans un autre onglet

1 bouton aperçu du dossier, où je vois tout mes graphiques plus un graphique sur un autre onglet

1 bouton qui renvoie plus bas dans la feuille au tableau client pour tout les produits.

Si t'as besoin de plus de précision pour voir d'où ça peut venir??

Merci
Incubus
 
G

Guest

Guest
Re : Impression conditionnel de graphique sous excel

bonjour Incubus,

Désolé pour l'attente mais en ce moment je n'ai pas beaucoup de temps.

Pour le point 1:
Je n'ai pas réussit à déterminé pourquoi la collection des graphiques compte 2 'graphique 3' et les imprime. Aussi ai-je fait une gestion d'erreur plus performante qui évitera que le premier graphique s'imprime 2 fois.

Pour le Point 3: En début de procédure j'ai ecrit une ligne qui garde la zone d'impression en cours au moment du lancement des impression:oldPrintArea = Feuil3.PageSetup.PrintArea
Pour rétablir celle-ci en fin de procédure: Feuil3.PageSetup.PrintArea: oldPrintArea

Pour le point 2: je n'ai aucune explication, le problème ne se reproduisant pas chez moi.

Novelle procédure d'impression des graphiques:

Code:
Sub ImprimerGraphiques()
    Dim nbCharts As Integer, i As Integer, j As Integer, k As Integer
    Dim Valeurs As Variant
    Dim somme
    Dim oChart
    Dim oSerie
    Dim Adr
    [COLOR=olive][I]Dim oldPrintArea
    oldPrintArea = Feuil3.PageSetup.PrintArea[/I][/COLOR]
    nbCharts = Feuil3.ChartObjects.Count
    i = 0
    For i = 1 To nbCharts
        somme = 0
        Set oChart = Feuil3.ChartObjects(i).Chart
        j = 0
        If oChart.SeriesCollection.Count > 0 Then
            For j = 1 To oChart.SeriesCollection.Count
                On Error GoTo FinBoucle
                If IsArray(oChart.SeriesCollection(j).Values) Then
                    Valeurs = oChart.SeriesCollection(j).Values
                    'fait la somme contenue dans les graphique
                    For k = LBound(Valeurs) To UBound(Valeurs)
                        somme = somme + Valeurs(k)
                    Next k
                End If
FinBoucle:
                Err.Clear
                On Error GoTo 0
            Next j
        End If
        
        If somme > 0 Then
            Adr = oChart.SeriesCollection(1).Formula
            Adr = Left(Adr, InStr(Adr, ",") - 1)
            Adr = Mid(Adr, InStr(Adr, "!") + 1)
            On Error Resume Next
            Feuil3.PageSetup.PrintArea = _
            Range(oChart.Parent.TopLeftCell.Offset(-12), oChart.Parent.BottomRightCell).Address
            [COLOR=red]If Err[/COLOR] = 0 Then Feuil3.PrintPreview
            Err.Clear
            On Error GoTo 0
        End If
    Next i
[I][COLOR=olive]Feuil3.PageSetup.PrintArea: oldPrintArea[/COLOR]
[/I]End Sub

si tu as a travailler souvent sur des graphiques, je t'invite à examiner cette procédure de plus près pour qu' avec l'aide intégrée à excel tu puisses comprendre comment elle opère. Et de manière plus large comment manipuler les objets ChartObjects (Objets graphiques).

A bientôt
 

incubus20851

XLDnaute Occasionnel
Re : Impression conditionnel de graphique sous excel

Bonjour,

Je te remercie de suivre ce projet avec tant d'attention, j'ai essayé le nouveau code, quand je le fais tourner dans mon fichier il indique une erreur

"Erreur de compilation :
Utilisation incorrecte de la propriété"

Et il surligne tout en haut en jaune dans le Code le "Sub ImprimerGraphiques()"
Et tout en bas le ".PrintArea"

Quelquechose a changer ??
Merci à bientôt
Incubus
 

Discussions similaires

Statistiques des forums

Discussions
313 769
Messages
2 102 234
Membres
108 181
dernier inscrit
Chr1sD