Adapter macro a des couleurs definies dans un graph camenbert
#1
Débutant XLPages

Inscription: 19/11/2007

Messages: 4

Posté le : 19-11-2007 11h41
Bonjour à toutes et tous.

Je viens vers vous car je n’arrive pas a adapter le code de « MDF » sur les couleurs graphiques à mon cas.

Je rentre 1 code produit en BR1 de la feuille « FICHE » qui me rapatrie les données de ce produit en S13 ; U20 de la feuille « récapitulatif ».
La feuille « matricielle » sert à classer les % qui sont rapatriés sur la feuille « recapitulatif » pour le graphique et de n’afficher dans la légende que les valeurs > 0, qui vont alimenter le graphique sur la feuille « FICHE »
Par ailleurs il y a 2 plages définies
Var1 = plage I de la feuille « matricielle »
Var2 = plage H de la feuille « matricielle »

Merci pour votre aide.
Cordialement

DANS LE MODULE DE CODE DE LA FEUILLE

Private Sub Worksheet_Change(ByVal Target As Range)
'myDearFriend! - www.mdf-xlpages.com
Dim Cel As Range
If Target.Count > 1 Then Exit Sub
If Not Application.Intersect(Target, Range("B6:B30")) Is Nothing Then
Set Cel = Sheets("Corresp.Couleurs").Columns(1).Find(Target.Value, LookIn:=xlValues)
If Not Cel Is Nothing Then
Target.Offset(0, -1).Interior.Color = Cel.Interior.Color
ActiveSheet.ChartObjects("Graphique 1").Chart.SeriesCollection(1) _
.Points(Target.Row - 5).Interior.Color = Cel.Interior.Color
End If
End If
End Sub
Pièce jointe:
xls FICHE.xls   [ Taille: 60.00 Ko - Téléchargements: 337 ]
Hors Ligne
Rapport   Haut 

Re: Adapter macro a des couleurs definies dans un graph camenbert
#2
Accro XLPages

Inscription: 23/05/2007
De Chamrousse

Messages: 309

Système d'exploitation:
PC
Version Excel utilisée:
2013
Posté le : 19-11-2007 18h59
Bonjour à tous,
Bienvenue à Papi73

Tu as deux
Private Sub Worksheet_Change(ByVal Target As Range)

sur la même feuille : Pas Glop

Tu as bien modifié le code de mDF dans ton fichier

Ne t'inquiètes pas le boss va passer sous peu

Au plaisir de lire


Cordialement
Hors Ligne
Rapport   Haut 

Re: Adapter macro a des couleurs definies dans un graph camenbert
#3
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1486

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016
Posté le : 19-11-2007 19h22
Bonsoir papi73, le Forum,

En premier lieu, soit le bienvenu dans ce forum.

Ensuite, il va falloir que tu développes un peu tes explications papi73... Il manque certains éléments qui me paraissent indispensables pour comprendre et trouver une solution à ton problème.

Si j'ai bien analysé la situation, voici le déroulement des opérations tel que j'ai cru le comprendre :
[list=1]
[*]Tu saisis des données manuellement en feuille Fiche, dans une cellule ou une plage BR(?)
Première interrogation pour moi : tu parles de BR1 dans ton post et ton code VBA semble cibler la cellule $BR$12. Qu'en est-il exactement ?
[*]Cette saisie déclenche la macro "ImporterWordVersExcel" qui, sauf erreur de ma part, va rapatrier des données en feuille Récapitulatif. C'est bien ça ?
Comment sont rapatriées les données ? Quelle est la plage - exacte - mise à jour ? Et à quoi ressemble cette procédure "ImporterWordVersExcel" ?
[*]Le graphe s'adapte donc ensuite aux données rapatriées et tu souhaites imposer des couleurs prédéterminées aux séries.
[/list]
Je puis déjà te faire part d'une grosse anomalie dans le code que tu as laissé dans le module de code de la feuille "Fiche" :
tu ne peux avoir la présence de 2 procédures évènementielles "Worksheet_Change()" dans un même module de code de feuille. C'est une situation non gérable par VBA. Il faut en laisser une seule dans laquelle tu dois rassembler l'ensemble des instructions nécessaires aux différents traitements.

Par ailleurs, pour la ligne suivante :
If Not Application.Intersect(TargetSheets("Matricielle;B2:B9")) Is Nothing Then

La syntaxe n'est pas bonne. Il aurait fallu saisir :
If Not Application.Intersect(TargetSheets("Matricielle").Range("B2:B9")) Is Nothing Then
bien que je ne sois pas vraiment convaincu que la plage ciblée soit la bonne pour ce traitement...

Dans l'attente d'éclaircissements complémentaires...

Cordialement,

EDITION : Salut JCGL, pardon je ne t'avais pas vu arriver...

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Adapter macro a des couleurs definies dans un graph camenbert
#4
Débutant XLPages

Inscription: 19/11/2007

Messages: 4

Posté le : 19-11-2007 19h40
Bonsoir a toutes et tous,

J'indique en BR12, un numero de code qui me rapatrie des données de Word et Excel. Seuls quelques données Excel (celles qui figurent sur l'onglet recapitulatif et matricielle) servent pour le graphique camenbert. Tout le reste a été effacé ( autre graph(graphique100), données word etc...)qui ne servent pas à ce graphique, mais qui completent ma feuille excel.
Le seul problèeme qui me reste est ce graphique avec les couleurs.
J'ai essayé plusieurs modifs, mais je ne m'en sors pas avec les couleurs pour ce graph.
Je pars d'une formule matricielle pour le graph, et les couleurs des "types"ne sont pas toujours les memes car c'est excel qui decide des couleurs.

Merci pour votre aide.
Hors Ligne
Rapport   Haut 

Re: Adapter macro a des couleurs definies dans un graph camenbert
#5
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1486

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016
Posté le : 19-11-2007 21h54
Re,

Tu trouveras ci-joint une unique tentative de réponse au vu des seuls éléments que tu veux bien nous fournir... :bof:

Compte tenu du mode d'insertion des valeurs séries de ton graph (par macro "inconnue"), j'en déduis que le code que tu as récupéré pour imposer les couleurs du graphique "à la volée" ne convient pas à ton projet. Il convient de voir les choses autrement...

J'efface donc tout et je te propose l'unique procédure ci-dessous à mettre dans le module de code de la feuille "Fiche".

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range
Dim T 
As String
Dim L 
As Long

If Target.Address "$BR$12" Then

    Application
.ScreenUpdating False
    
'   On Error Resume Next
    ImporterWordVersExcel (Target.Value)
    '   
On Error GoTo 0
    Application
.ScreenUpdating True
    
    With Sheets
("matricielle")
        For 
2 To .Range("H65536").End(xlUp).Row
            T 
= .Cells(L8).Text
            
If <> "" Then
                Set Cel 
= .Columns(2).Find(TLookIn:=xlValues)
                If 
Not Cel Is Nothing Then
                    ActiveSheet
.ChartObjects(1).Chart.Legend.LegendEntries(1). _
                            LegendKey
.Interior.Color Cel.Interior.Color
                End 
If
            
End If
        
Next L
    End With
    
End 
If
End Sub

L'onglet "Corresp. couleurs" n'a plus lieu d'être, la correspondance des couleurs prédéterminées se fait ici en colonne B de l'onglet "matricielle".

Par ailleurs, j'ai écrit une énormité dans mon post précédent :
If Not Application.Intersect(TargetSheets("Matricielle").Range("B2:B9")) Is Nothing Then
est une.... infâmie !
En effet, vouloir définir l'intersection entre une cellule de la feuille "Fiche" (= Target) et une plage de la feuille "Matricielle" n'a aucun sens... Mea Culpa !

Espérant que le fichier joint puisse te servir de base pour faire avancer ton projet.

Cordialement,
Pièce jointe:
zip PourPapi73.zip   [ Taille: 19.30 Ko - Téléchargements: 321 ]

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Adapter macro a des couleurs definies dans un graph camenbert
#6
Débutant XLPages

Inscription: 19/11/2007

Messages: 4

Posté le : 20-11-2007 11h01
Bonjour a toutes et tous,

J'ai encore besoin d'un coup de main car j'ai un bug sur cette ligne de code :

ActiveSheet.ChartObjects(1).Chart.Legend.LegendEntries(L - 1). _
LegendKey.Interior.Color = Cel.Interior.Color

Merci pour votre aide.
Cordialement
Hors Ligne
Rapport   Haut 

Re: Adapter macro a des couleurs definies dans un graph camenbert
#7
Débutant XLPages

Inscription: 19/11/2007

Messages: 4

Posté le : 20-11-2007 17h16
Bonsoir,

J'ai encore une question,
Dans le fichier exemple que tu as joint, le graph ne respecte pas les couleurs definies dans "Matricielle" sur le graph.
Y a t il une explication due a une mauvaise manip de ma part ?

Encore merci.
Hors Ligne
Rapport   Haut 

Re: Adapter macro a des couleurs definies dans un graph camenbert
#8
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1486

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016
Posté le : 21-11-2007 00h38
Bonsoir papi73,

Citation :

papi73 a écrit:
Bonjour a toutes et tous,

J'ai encore besoin d'un coup de main car j'ai un bug sur cette ligne de code :

ActiveSheet.ChartObjects(1).Chart.Legend.LegendEntries(L - 1). _
LegendKey.Interior.Color = Cel.Interior.Color

Merci pour votre aide.
Cordialement
Si tu as plusieurs graphiques sur ta feuille, il te faut adapter l'indice dans ChartObjects(1) par le numéro de ton graphique.
Tu peux aussi l'appeler par son "nom" : par exemple, dans ton classeur, il s'agit de ChartObjects("Graphique 108")

Citation :
J'ai encore une question,
Dans le fichier exemple que tu as joint, le graph ne respecte pas les couleurs definies dans "Matricielle" sur le graph.
Y a t il une explication due a une mauvaise manip de ma part ?
Là, j'ai un petit souci car pour moi, les couleurs semblent correspondre dans le classeur que j'ai joint... :bof:

Cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes