Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Extraire les Données d'un Tableau Croisé Dynamique

GiHesse

XLDnaute Nouveau
Bonjour,

je me suis "mis" à excel la semaine dernière et je ne découvre que pas-à-pas ces possibilités.

Je souhaitais effectuer sur mes données (tableau de 30 000 lignes pour l'instant) une transformation qui revenait à faire ce qu'effectue un croisé dynamique. Mon code VBA mettait 1H45 quand Excel fait en fait la même chose en 12 secondes (ça a été un peu frustrant quand j'ai vu ça, après avoir sué sur VBA sang et eau, erreur de novice sans doute). Donc je génère un TCD comme il faut via VBA.

Mais mon problème maintenant est de pouvoir réutiliser les données de mon tableau croisé.
En effet, je voudrais recopier dans une feuille "simple" (non dynamique) les lignes de mon tableau croisé dont toutes les colonnes seraient renseignées (et pas comme dans le TCD qui fait des blocs par groupe de valeur dans des colonnes).

J'aurai voulu parcourir chaque bloc et recopier dans chaque cellule le nom du bloc, mais vu que c'est un TCD, Excel ne veut pas que j'écrive devant. Donc i faudrait sans doute, si il n'y a pas de moyen plus direct, que je recopie le tableau sans copier son côté "dynamique" et qu'ensuite je remplisse les les blancs qui restent.

Connaissez vous un moyen, simple ou moins simple, de faire ça ? J'ai cherché sur le net et sur ce forum sans trouver un début de piste.

Je n'ai peut être pas été très clair, aussi voici en PJ un extrait de ce que je veux faire (la macro sert juste à générer le TCD, aussi elle n'y est pas)

Merci d'avance,
 

Pièces jointes

  • xld.xls
    37 KB · Affichages: 247
  • xld.xls
    37 KB · Affichages: 231
  • xld.xls
    37 KB · Affichages: 231

ArmelleM

XLDnaute Junior
Bonsoir Chris, désolée j'ai eu un soucis. En fait, effectivement, j'ai besoin d'automatiser "le clic droit" de la souris pour créer l'onglet, que je dois renommer avec le nom du client ( colonne de droit) . j'ai plus de 100 lignes donc onglet cela me prend du temps. la macro en exemple dans ce fil semblait le permettre mais tri avec les initiales; voila si tu peux encore m'aider. Merci beaucoup dans tous les cas d'avoir pris du temps.
 

chris

XLDnaute Barbatruc
Bonjour

2 codes : un dans le module Workbook, un dans un module standard.

Pas de classement mais sachant que si on classe le TCD, l'extraction suit le même ordre...
Pas de contrôle de la longueur des noms ni de la syntaxe qui pourrait éventuellement être incompatible avec un nom d'onglet.

Le clic droit dans un champ de valeur (pas étiquette de colonne ni de ligne car sinon le TCD devient difficile à paramétrer) déclenche l'extraction.
 

Pièces jointes

  • Extraction_TCD_fichier.xlsm
    46.2 KB · Affichages: 161

ArmelleM

XLDnaute Junior
Merci c'est exactement ca, en revanche, lje n'ai pas pu la test sur mon fichier réel car le code n'apparait pas dans la macro du fichier, je dois mettre le mode développeur pour retrouver? ( la je passe par affichage macro dans excel pour acceder au developpeur?°
je t'ai merci mais je sais meme pas comment te remercie tellement cette macro va m'aider
 

ArmelleM

XLDnaute Junior
Hello Chris, je me suis débrouillée pour la faire fonctionner sans le développeur mais a priori il y a une limitation de caractère quand même (31) , mais très honnêtement modifier rapidement le nom devient moins important maintenant, je te remercie vivement. Comme tu as pu le constaté je suis pas douée en Excel mais si je peux t'apporter de l'aide un jour tu es le bienvenu! Mille Merci
 

chris

XLDnaute Barbatruc
Bonjour

On peut tronquer le nom dans la macro mais il vérifier si pas de doublons dans ce cas... ou prévoir moins de caractères et prévoir un indice 1, 2 etc pour les doublons

Si cela ta convient je posterai la modif mais sans doute pas aujourd'hui, journée très chargée.
 

Discussions similaires

Réponses
2
Affichages
412
Réponses
2
Affichages
187
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…