Bonjour à tous,
J'ai fais des recherches auprès de notre ami google. Mais je n'arrive pas ou je n'utilise pas les bons mots clés pour trouver une réponse à ma question.
Ma question étant :
- Si j'ai un bout de code VBA écrit dans une cellule, est-ce que je peux récupérer la valeur (donc le bout de code VBA) et l’exécuter sur ma macro ?
Je m'explique. Je réalise une macro qui centralise des données (la macro sera exécuter toutes les semaines). Et je réalise avec toutes ses données, plusieurs TCDs. J'ai essayé de réfléchir aux différentes interfaces pour laisser l'utilisateur créer de nouveaux TCDs dans le futur et les automatiser. Mais je n'y arrive pas, il y a trop de détails, trop de choix, trop de complexités. Si je fais au plus simple, cela manquera de souplesse. Si je fais plus souple, cela sera trop complexe pour l'utilisateur. Et je veux éviter que l'utilisateur aille dans la macro.
Par conséquent j'ai pensé à l'enregistreur de macro. Si l'utilisateur veut ajouter un nouveau TCD, dans le futur. Il fait une première fois son TCD pour déterminer ce qu'il veut. Puis il active l'enregistreur et il refait son TCD. Enfin il suffira qu'il copie-colle le bout de code dans une cellule. Et puis je fais le reste dans ma macro principale Main().
Plus concrètement, ce que je souhaiterais avoir c'est que cellule A1 ait un bout de code VBA, ce qui donnerais par exemple :
Et dans ma macro Main(), je voudrais exécuter le code situé dans ActiveSheet.Range("A1").Value comme s'il était écrit dans ma macro
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 ActiveSheet.Range("A1").Value=" With ActiveWorkbook.PivotCaches.Create(xlDatabase, "BaseDonnée", xlPivotTableVersion12) .CreatePivotTable TableDestination:=ActiveCell, TableName:="TCD1" End With With ActiveSheet.PivotTables("TCD1").PivotFields("Sillon") .Orientation = xlPageField .Position = 1 End With With ActiveSheet.PivotTables("TCD1").PivotFields("TER") .Orientation = xlRowField .Position = 1 End With"
P.S.: Je suppose que ce que je demande est possible. Néanmoins je n'en suis pas certain.
J'espère que vous avez réussi à comprendre ce que j'ai écrit.
Merci à tous ceux qui aurons lu jusqu'ici.
Et merci encore plus à ceux qui apporteraient une aide ou une solution.![]()
Partager