XL 2010 [Résolu] Index Equiv en VBA

Spinzi

XLDnaute Impliqué
Bonjour à tous,

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.

Pourriez vous m'aiguiller ? Je suis nul en VBA.

Merci d'avance,
Spinzi
 

Pièces jointes

  • VBA IP.xlsx
    18.5 KB · Affichages: 46

Spinzi

XLDnaute Impliqué
Bonjour Bebere,

j'ai une erreur de compilation au niveau de cette ligne :
Code:
Ws1.ListObjects.Add(xlSrcRange, Range("A1:AP" & Range("A65000").End(xlUp).Row), , xlYes).Name = "Base"

Est-ce que ça peut venir du fait que mon tableau excel sur lequel repose mon TCD porte le même nom ?

De plus, votre macro ne remonte pas les bonnes informations (avec la version précédente) si j'ajoute une nouvelle ligne (voir PJ-ligne en orange).

Merci d'avance,

Spinzi
 

Pièces jointes

  • VBA IPv4 erreur.xlsm
    51.4 KB · Affichages: 20
Dernière édition:

Spinzi

XLDnaute Impliqué
Bonjour,

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.

Merci d'avance,

Spinzi
 

Pièces jointes

  • Copie de VBA IPv4 testV1.xlsm
    58 KB · Affichages: 22

Spinzi

XLDnaute Impliqué
Bebere,

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
...

Merci d'avance,

Spinzi
 

Pièces jointes

  • Copie de VBA IPv5.xlsm
    58.4 KB · Affichages: 22

Spinzi

XLDnaute Impliqué
Bonjour,

merci pour le code Bebere.
Il fonctionne bien mais est un petit peu long ...

J'avais une question concernant un bout de code que je ne comprends pas :
Code:
Set pvt = Ws.PivotTables("Budget")
  pvt.RefreshTable

Car je remets à jour manuellement le TCD des que je modifie mes sélections.

Merci d'avance,

Spinzi
 

Bebere

XLDnaute Barbatruc
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
 

Spinzi

XLDnaute Impliqué
Bonjour,

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.

Spinzi
 

Pièces jointes

  • VBA IPv6.xlsm
    4.5 MB · Affichages: 20
Dernière édition:

Spinzi

XLDnaute Impliqué
Bonjour à tous,

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,

Spinzi
 

Spinzi

XLDnaute Impliqué
Bonjour Bebere,

je vois que tu ne laches rien =)

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.

Si tu souhaites m'aider, j'ai rouvert un sujet car j'essaie de copier coller des onglets d'un classeur dans un nouveau classeur et j'ai quelques soucis :
https://www.excel-downloads.com/thr...eau-classeur-puis-copie-onglets-vba.20019415/

Spinzi
 

Discussions similaires

Réponses
3
Affichages
314

Statistiques des forums

Discussions
312 115
Messages
2 085 456
Membres
102 891
dernier inscrit
cocowild