je recherche à calculer une partie de mon tableau non pas à l'aide de formule mais via VBA.
Mon tableau (onglet "Synthèse") est composé d'une partie TCD et d'une autre partie manuelle (je n'utilise pas le TCD pour toutes mes données car j'ai bcp plus d'informations dans mon fichier original et le TCD est vraiment lent). Les formules et le TCD reposent sur l'onglet "Base".
Je souhaiterais, grace à un bouton, pouvoir lancer une macro qui me remonte (comme le fait actuellement ma formule index equiv) les informations de l'onglet "base" (sous forme de tableau excel) en fonction des ordres (lignes) et des entetes de colonnes de mon onglet synthèse.
effectivement je n'ai plus le message d'erreur, merci.
Cependant toujours le même problème : la macro ne remonte pas les bonnes informations.
Ci joint le document après l'ajout de 2 lignes (en orange dans le fichier).
On dirait que la macro s'emmêle les pinceaux et ne se base pas sur le code budgétaire pour l'indexation.
toujours quelques problèmes, voir fichier ci joint.
Dans l'onglet budget :
_la ligne de l'ordre 11X11 ramène les info de la ligne 11X10
_la ligne de l'ordre 11X10 ramène les infos de la ligne 11X08
_la ligne de l'ordre 11X06 ramène les infos de la ligne 11X11
...
c'est aux données en face du TCD de s'adapter.
Peu importe l'ordre, il faut que les données soient cohérentes. Il faut donc que la macro ramène les bonnes informations.
bonjour
Spinzi
'il faut consulter l'aide(touche fonction F1)
Set pvt = Ws.PivotTables("Budget")'pvt est le tcd
pvt.RefreshTable'actualise
tu peux mettre application.screenupdating=false en début de code
et à la fin application.screenupdating=true
oui j'ai bien compris que cela actualisait le TCD, ma question porte plutôt sur l'intérêt de cette commande, sachant que je l'actualise manuellement. Après si cette procédure n'est pas gourmande en ressource je peux la laisser mais sinon est-ce que je peux la supprimer ?
Quels sont les risques ?
edit : j'ai essayé d'adapter la macro à mon fichier original. J'ai un arrêt sur cette commande :
Code:
Sub déListe()
Ws1.ListObjects("Base en cours").Unlist
Ci joint mon format original.
_Normalement l'onglet "base en cours" est dynamique grâce à Power Query. Les colonnes de cet onglet varient
_Dans l'onglet "Budget", il faut me rapatrier les données de K16 à BW16 puis jusqu'à la dernière ligne.
J'ai également défini des noms (via gestionnaire de nom) pour édfinir des plages de données dynamique. Vous pouvez peut etre vous en servir dans la macro.
bonjour
Spinzi une question sur colonne code budgétaire
exemple:je lis 11CA001,le code lis 1100A01002.Tu m'expliques
j'ai installé power query,je vais voir si c'est possible de faire un code avec
désolé ton message est passé totalement à la trappe !
Depuis mon fichier à bien évolué et au final je vais laisser tomber cette partie en VBA qui est trop compliquée pour mes faibles connaissances (donc à maintenir également).
Je te remercie pour le temps passé sur mon problème,
bonjour Spinzi
pour moi abandonner n'est pas une solution.C'est bien mieux de trouver une solution
mon avis,cela vient de power query
si tu m'en dis un peu plus,j'essayerai de trouver une solution
J'ai besoin de Power Query pour mettre à jour mes informations (liaisons entre tables sans besoin de les ouvrir).
Et dans tous les cas je ne suis pas fan du VBA : ne le maitrisant pas, si jamais j'ai un souci sur le fichier je serai bien embêté !
J'ai juste un fichier légèrement plus lourd mais il se calcule relativement rapidement dans l'ensemble.