Tcd vba

Nimbus

XLDnaute Occasionnel
Bonjour à tous!

Je souhaiterai savoir comment créer un TCD avec un programme VBA!
Dans mon TCD, je veux qu'il y ai la somme des qté initiale, somme des qté NC, Type de défaut et la date!

J'ai essayé en rentrant un programme, mais rien ne se produit...
Je vous met en pièce jointe mon document pour mieux comprendre.

Si quelqu'un a une petite idée se serai super!!

Merci d'avance pour votre aide

Nimbus
 

Pièces jointes

  • MC_vide.xlsm
    97.6 KB · Affichages: 54

Dugenou

XLDnaute Barbatruc
Re : Tcd vba

Bonjour,
Nous avions un spécialiste de cette question, mais ça fait bien longtemps que je ne l'ai pas croisé sur le forum.
Recherche les message de Dan (la panthère rose) et tu y trouvera ton bonheur je pense, à condition d'^tre un peu patient ou d'affiner ta recherche , car j'ai 90 pages de résultats.
Cordialement
 

Chefredo

XLDnaute Junior
Re : Tcd vba

Bonsoir,

Au risque de choquer les puristes, le plus simple dans ton cas (si tu es aussi bon que moi en VBA :) serait :
  • démarrer l'enregistreur de macros
  • créer ton TCD comme tu le souhaites
  • stopper l'enregisgtrement de macros
  • si nécessaire, "bricoler" le code généré (voir ci-dessous)

On peut assez facilement améliorer le code ensuite si nécessaire.
Voir Ce lien n'existe plus par exemple
ou Ce lien n'existe plus
bon courage
 

chris

XLDnaute Barbatruc
Re : Tcd vba

Bonjour

Chefredo : de façon générale je suis d'accord avec toi mais sur les TCD, l'enregistreur génère souvent un code non utilisable.
un exemple ici [XL-2007] Créer un TCD à destinations variables - Forum du club des développeurs et IT Pro

Nimbus : pourquoi ne pas créer dès le départ la structure du TCD plutôt que par VBA ?
 

Nimbus

XLDnaute Occasionnel
Re : Tcd vba

Bonjour à tous,

Merci pour vos réponses!
Chris: En créant mon TCD manuellement, les données enregistrées à chaque nouvelle saisie ne s'actualise pas dans le tableau alors je pensais qu'en le faisant depuis VBA, l'actualisation se ferai automatiquement!?
A moins qu'il existe une astuce pour que le TCD manuel s'actualise automatiquement?
Je ne connais vraiment pas grand chose en VBA donc j'avoue que je suis un peu perdue...

Si qq1 pouvait me donner un exemple se serait super!

Merci d'avance
 

Dugenou

XLDnaute Barbatruc
Re : Tcd vba

Bonjour Nimbus, salut à tous
Si ce n'est qu'une affaire d'actualisation il y a plus simple !
1) déclarer tes données en tableau (2007 et+) ou en plage (2003) éviter d'avoir à mettre à jour la zone de données
2) créer un bouton sur lequele tu met la macro enregistrée lors d'une simple actualisation ou basée sur le code suivant :
Dim pt As PivotTable
Dim ws As WorksheetFor Each ws In ActiveWorkbook.Worksheets
For Each pt In ws.PivotTables
pt.PivotCache.Refresh
Next pt
 

Dugenou

XLDnaute Barbatruc
Re : Tcd vba

Bonjour,
c'est parce que la boucle n'est pas complète
voici un exemple simple et sans boucle à partir de ton fichier
on doit pouvoir inclure la mise à jour dans la macro qui intègre les données du userform mais alors il y aura mise à jour à chaque saisie, ce que tu ne souhaite peut être pas
Cordialement
Pour la boucle et dans un esprit didactique
Code:
Dim pt As PivotTable
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
For Each pt In ws.PivotTables
pt.PivotCache.Refresh
Next pt
Next ws
 

Pièces jointes

  • Nimbus 1.xlsm
    110.4 KB · Affichages: 62

Nimbus

XLDnaute Occasionnel
Re : Tcd vba

Merci beaucoup cela fonctionne super bien!

Par contre, je viens de m'apercevoir que quand je supprime toutes les lignes et que je fais une nouvelle saisie, le nouvelle ligne ne se met pas sur la première ligne mais sur la seconde...

Sais tu pourquoi?

Merci
 

Dugenou

XLDnaute Barbatruc
Re : Tcd vba

Bonjour,
Je pense que c'est lié à la déclaration du tableau qui crée une ligne vide sous les titres. (si tu supprimes les contenus sans supprimer les lignes et que tu fais une nouvelle saisie elle vient se mettre sous les autres lignes vides).
Tu devrais demander à celui/celle qui t'a fait la macro du userform ou bien tu supprimes la déclaration en tableau.
Cordialement
 

Nimbus

XLDnaute Occasionnel
Re : Tcd vba

Ok merci beaucoup.
On vient de me demander de créer un mot de passe pour que tout le monde ne puisse pas ouvrir la feuille excel.
J'ai essayé pas mal de chose mais ne se produit quand je réouvre le fichier...

Quelqu'un aurai une idée?

Merci
 

chris

XLDnaute Barbatruc
Re : Tcd vba

Bonjour
Coucou Dugenou :)

Si c'est l'accès à tout le classeur qui doit être verrouillé, le plus simple, est de mettre la protection au niveau du fichier : enregistrer-sous, outils, options générales, Mot de passe pour la lecture.

Si tu remplis ton tableau par VBA, c'est ton code qui ne calcule pas bien où est la 1ère ligne disponible ou, comme le suggère Dugenou, une ligne non réellement vide.

Sachant qu'un tableau doit toujours contenir au moins une ligne de données...
 
Dernière édition:

Discussions similaires

  • Question
Microsoft 365 vba
Réponses
9
Affichages
802

Statistiques des forums

Discussions
312 644
Messages
2 090 447
Membres
104 537
dernier inscrit
POTDGEL