Mise en forme diagrammes et graphiques avec VBA

Bonjour à tous,

Je vous sollicite car j'ai besoin d'aide sur un fichier déjà travaillé mais qui nécessite quelques retouches.
Il s'agit de notre fichier de suivi benchmark de nos concurrents sur LinkedIn pour l'année 2026.

Le premier onglet "LinkedIn 2026" est à jour et n'a pas besoin de retouches (c'est notre base de données brute).

C'est le second onglet "TCD LinkedIn 2026" qu'il faudrait actualiser.
Quand on clique sur le numéro de semaine (tableau tout à droite de l'onglet), il faut :
- Remettre les bonnes couleurs pour chaque concurrent dans tous les graphiques à chaque fois de façon automatisé (voir codes Hexa en cellule AB du premier onglet)
- Laisser apparaître seulement les valeurs dans les étiquettes de donnés (le diagramme du nombre de posts n'est pas bon, le second pour le nombre de partages est bon dans sa présentation)
- Colorer les étiquettes de données en blanc au lieu de noir pour les deux diagrammes (posts et partages)
- Mettre un rendu légèrement ombré sur le 2e diagramme comme sur le premier

Nous avons déjà fait appel à une personne qui avait travaillé le fichier sous VBA mais plusieurs bugs apparaissent :
"Erreur d'exécution '5' Argument ou appel de procédure incorrect"
Je pense que le fichier a donc besoin d'être repris par une personne à l'aise avec VBA.

Merci par avance de votre aide ! ☺

Lisa

Bonjour,

1. Un premier souci est que vous nommez la feuille Linkedin 2026 alors que votre code renvoie la variable "année" à 2025. Là allez modifier le code dans la feuille

- clic droite sur le nom de l'onglet et choisir "Visualiser le code"
- remplacez 2025 par 2026

2. Essayez votre début de code comme ceci :

Sub TCD(année)
Dim s As String
Dim sp
Dim it As SlicerItem
Dim slcr As SlicerCache
Dim c As Range

Set slcr = ActiveWorkbook.SlicerCaches("Slicer_Numéro_de_semaine1")
For Each it In slcr.SlicerItems
    If it.Selected = True Then s = s & "|" & it.Name
Next it

If Len(s) = 0 Then MsgBox "aucune semaine": Exit Sub
sp = Split(Mid(s, 2), "|")
If UBound(sp) > 0 Then MsgBox "plusieurs semaines sélectionnées": Exit Sub

Set c = Blad8.Range("Mes_Couleurs")
.....

Faites un essai

Dan un bon début, Lisa je n'ai pas analysé

Mais il y avait deux autres pbs sur l'accès au Range("Mes_couleurs") et le renommage du Slicer (Segment qui était suffixé 2005 tout à droite d'une des 2 feuilles LinkedIn)

J'ai ajouté une macro TCD2026 pour les tests

@Scraper

sur l'accès au Range("Mes_couleurs")

Oui effectivement. J'ai omis de le signaler mais Mes couleurs est défini deux fois dans les gestionnaire de noms

@Lisa_Mtp : vous devez supprimer le nom Mes couleurs qui comporte la mention #REF... dans le gestionnaire de noms --> colonne de la rubrique "Fais reférence à"

Rechercher des sujets similaires à "mise forme diagrammes graphiques vba"