Insérer un segment par VBA dans un Excel personnel

Bonjour,

Je cherche à créer une commande VBA me permettant d'introduire un segment sur un tableau.

Mon code fonctionne lorsqu'il est enregistré dans VBA Project, il ressemble assez classiquement à ceci :

Sub THM()
Range("H13").Select
' Segment Macro
'
ActiveWorkbook.SlicerCaches.Add2(ActiveSheet.ListObjects("Tableau1"), _
"CHANTIER").Slicers.Add ActiveSheet, , "CHANTIER", "CHANTIER", 159, 708.75, 144 _
, 198.75
ActiveWorkbook.SlicerCaches.Add2(ActiveSheet.ListObjects("Tableau1"), _
"NUMERO BL").Slicers.Add ActiveSheet, , "NUMERO BL", "NUMERO BL", 196.5, 746.25 _
, 144, 198.75
ActiveWorkbook.SlicerCaches.Add2(ActiveSheet.ListObjects("Tableau1"), _
"SOUS FAMILLE").Slicers.Add ActiveSheet, , "SOUS FAMILLE", "SOUS FAMILLE", 234 _
, 783.75, 144, 198.75
ActiveWorkbook.SlicerCaches.Add2(ActiveSheet.ListObjects("Tableau1"), "TACHE"). _
Slicers.Add ActiveSheet, , "TACHE", "TACHE", 271.5, 821.25, 144, 198.75
ActiveSheet.Shapes.Range(Array("TACHE")).Select

End Sub

Edit modo : merci de mettre le code entre balise avec le bouton </>

Mais donc lorsque je recopie ce même code dans le module de VBAProject(PERSONAL.XLSB), il ne fonctionne plus, avec erreur d'éxecution 9.,

Sauriez-vous régler le problème?

Merci beaucoup!

Bonjour

tu ne précises pas la ligne générant l'erreur mais sans doute la 1ère à supprimer

Il n'y a pas d'erreur dans mon code il me semble, puisqu'il fonctionne lorsqu'il est enregistré dans VBA Project. Je cherche simplement à le faire fonctionner dans VBAProject(Personal) afin de de pouvoir l'appliquer à n'importe quelle feuille excel.

La première ligne me permet seulement de sélectionner une case du tableau afin de pouvoir segmenter

Bonjour

Sérieusement,

ThisWorkbook et Range référence Personal.xlsb et certainement pas des données dans un classeur déporté

Il faut utilisé un accès en donnant le nom du classeur ouvert ou l'ouvrir directement dans la macro incluse dans Personal.xlsb

Bonjour,

Merci de la réponse, mais je n'ai pas tout compris.

Est-ce que ça veut dire que ce n'est pas réalisable?

Dans l'histoire j'ai simplement une macro qui met en forme une base de donnée exportée, de manière récurrente. Donc je voudrais que ma macro soit toujours disponible, sans avoir à recopier le code à chaque fois sur la nouvelle base de donnée. Je pensais qu'il fallait pour ça rédiger le code sur Personal.xslb

C'est une erreur de ma part?

Bonjour à tous

Mais donc lorsque je recopie ce même code dans le module de VBAProject(PERSONAL.XLSB), il ne fonctionne plus, avec erreur d'éxecution 9.,

Il n'y a pas d'erreur dans mon code il me semble, puisqu'il fonctionne lorsqu'il est enregistré dans VBA Project

Très logique tout cela !

L'erreur 9 se produit bien sur une ligne de code !

Comme dit, dès la 1ère ligne, cela ne peut pas fonctionner

Range("H13").Select

Outre que les select ne doivent pas être utilisés en VBA, aucun range n'est sélectionnable dans le personnal.xlb auquel tu ne dis pas dans quel classeur et quel onglet est le range...

Ok c'est très clair, j'ai bien compris!

Merci beaucoup de l'information

Rechercher des sujets similaires à "inserer segment vba personnel"