Utiliser une macro

Bonjour, j’ai créé une macro pour qu’elle sélectionne mon tableau et qu’elle en fasse un tableau croisé dynamique.
Mais ça ne marche pas, ça me met ce message d’erreur : Erreur de syntaxe BASIC. Attendu : Sub.
je ne sais donc pas quoi faire …
bonne journée

Bonjour @Sylar

Ta procédure doit commencer par une instruction sub suvi du nom de la procédure et terminer par end sub. Par exemple :

Sub CreerTCD
End sub

Le message indique qu’il manque la ligne avec Sub. Cela peut être lié à une autre procédure du même module qui ne serait pas correctement “appariée” (sub avec end sub, with sans end with, if sans end if, etc.)

[Ajout 01-04-20 10:00]

J’ai mis en forme ta macro mais elle ne peut générer le message d’erreur que tu indiques. Comme je l’écrivais ci-dessus l’erreur doit être ailleurs dans ton module.

De toute façon il n’est pas possible de générer une table dynamique par une macro enregistrée. Il faut recourir à l’API de programmation et c’est un exemple assez complexe pour débuter (voir ici et ).

Je peux donner un exemple mais il te faudra l’adapter à tes données et cela supposera de maîtriser un peu…

Cordialement

Je ne connais absolument rien à tout ça donc je vais tenter d’autres choses, cependant comment je fais pour règler mon problème de module ? parce que je viens de me rendre compte que je ne peux pas faire de macro non plus juste pour mettre du texte en rouge par exemple … Le même message d’erreuur s’affiche

@Sylar le mieux est de supprimer tout ce qu’il y a dans le module ou, si tu veux garder des procédures dont tu es sûr du fonctionnement, tu crées un nouveau module (clic droit sur l’onglet du Module1▸InsertionModule Basic et tu copies-colles ce dont tu es sûr.

d’accord merci beaucoup !

Le problème c’est que c’est libreoffice qui l’a faite tout seul :

sub table_dyna_inventaire
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SelectData", "", 0, Array())

rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:DataDataPilotRun", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:DataPilotExec", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:NumberFormatIncDecimals", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:NumberFormatDecDecimals", "", 0, Array())

rem ----------------------------------------------------------------------
dim args6(0) as new com.sun.star.beans.PropertyValue
args6(0).Name = "ToPoint"
args6(0).Value = "$H$6"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args6())


end sub

désolé il ne veut pas mettre les lignes à la ligne