Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/11/2011, 19h04   #1
Invité de passage
 
Inscription : novembre 2011
Messages : 13
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : novembre 2011
Messages : 13
Points : 0
Points : 0
Par défaut VBA Xl 2k7 - Plage de données d'un TCD

Bonjour à tous,

Quelqu'un connaîtrait-il la ligne de code VBA qui permet de corriger la plage de données source d'un tableau croisé dynamique ?

C'est pour une macro qui corrige une table, ajoute et enlève des colonnes, à la fin il faudrait re- paramétrer la source de données du tableau croisé qui va chercher dans cette table.

Merci beaucoup par avance à toutes les réponses
..ooooOö.. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 19h39   #2
Membre régulier
 
Homme
Developpeur
Inscription : novembre 2011
Messages : 83
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire (Rhône Alpes)

Informations professionnelles :
Activité : Developpeur
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2011
Messages : 83
Points : 87
Points : 87
Par défaut sdispro

Salut OoooO,

Si j'ai bien compris tu souhaite simplement supprimer des lignes et des colonnes (qui restent toujours les mêmes) et ensuite reactualiser les données liées à ton TCD?
sdispro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 21h01   #3
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 199
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 199
Points : 14 398
Points : 14 398
Envoyer un message via Skype™ à Pierre Fauconnier
Salut.

Travaille avec un outil Tableau... Tu n'auras pas besoin de VBA.
  1. sélectionner la plage source de base ;
  2. convertir en tableau (Insertion > Tableaux > Tableau) ;
  3. nomme ton tableau (par défaut, Excel nomme tableau1, tableau2, ...) via le ruban Outils de tableau > Création > Propriétés > Nom du tableau ;
  4. Crée ton TCD sur base de ce tableau (clique n'importe où dans le tableau puis Insertion > Tableaux > TblCroiséDynamique) ;
  5. le TCD est créé sur base du tableau.

Le TCD s'adaptera à tout ajout ou suppression de lignes ou de colonnes au tableau lors de l'actualisation du tableau (clic droit dans le tableau > Actualiser). Pour ajouter une ligne/colonne au tableau, il suffit de la coller à la suite (en bas ou à droite) de la dernière ligne/colonne.
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 09h25   #4
Invité de passage
 
Inscription : novembre 2011
Messages : 13
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : novembre 2011
Messages : 13
Points : 0
Points : 0
Bonjour,

Oui c'est cela, nous utilisons des extractions SAP qui n'ont pas toutes l'info dont nous avons besoin.

Ensuite nous créons des colonnes avec des RECHERCHEV() qui complètent l'info manquante et nous les figeons par un copier / coller spécial valeurs.

Ensuite nous rendons les données lisibles à l'aide d'un tableau croisé dynamique.

Nous utilisons tous les mois les mêmes fichiers, nous ne faisons qu'actualiser les données en faisant une nouvelle extraction de SAP, et ensuite nous utilisons une macro qui refait les colonnes avec les RECHERCHEV, en plus d'autres traitements.

Le truc c'est qu'à la fin la plage en mémoire dans le tableau croisée est décalée, si un novice l'actualise cela perd des champs, il faut reconstruire le tableau à chaque fois.

Je pensais qu'il existerait une ligne VBA permettant de corriger la plage de données du tableau croisé, mais peut-être cela n'existe pas ?

Cdt
..ooooOö.. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 09h48   #5
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 199
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 199
Points : 14 398
Points : 14 398
Envoyer un message via Skype™ à Pierre Fauconnier
Cela est possible avec VBA.

Mais si tu procèdes comme je l'ai expliqué, tu n'auras pas besoin de VBA.
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 10h24   #6
Invité de passage
 
Inscription : novembre 2011
Messages : 13
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : novembre 2011
Messages : 13
Points : 0
Points : 0
Bonjour,

Ben comme dit dans un premier message, il s'agit de corriger à la fin d'une macro.

Pour l'instant nous corrigeons manuellement après l'exécution de la macro.

Par contre ton astuce que tu m'as donnée est super, je m'en servirai dans d'autres cas.
..ooooOö.. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 10h46   #7
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 199
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 199
Points : 14 398
Points : 14 398
Envoyer un message via Skype™ à Pierre Fauconnier
Citation:
Envoyé par Ma signature
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
Applique mon "astuce" en VBA. Ainsi, si un novice actualise, tu n'auras aucun problème.

Sinon, tu n'as effectivement pas d'autre choix que de "recalculer" la plage et de modifier la source du TCD, avec les risques de pertes ou de décalage de données que tu cites toi-même.
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 13h21   #8
Rédacteur
 
Avatar de Ormonth
 
Homme Didier GONARD
Formateur Développeur Office - indépendant
Inscription : février 2008
Messages : 2 353
Détails du profil
Informations personnelles :
Nom : Homme Didier GONARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Formateur Développeur Office - indépendant

Informations forums :
Inscription : février 2008
Messages : 2 353
Points : 4 685
Points : 4 685
Bonjour,

Ce que te dis Pierre est d'utiliser comme source un nom de plage et non pas des coordonnées absolues.

A partir de là, tu peux créer une plage nommée dynamique et non statique cf image jointe (là les colonnes sont fixes), c'est ce que fais Excel de façon automatique depuis 2007 avec les tableaux intelligents.

Cordialement,

Ps : si le côté technique de la réponse = OK ou pas => pensez à cliquer sur les pouces et quand question résolue à la taguer résolue, et chaque action vous rapporte des points

Didier
Images attachées
Type de fichier : jpg Ormonth TCD Dyn.jpg (46,1 Ko, 2 affichages)
__________________
Didier Gonard

Ps :
Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite !
Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP
N'oubliez pas de mettre : ..quand c'est le cas !
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h47.


 
 
 
 
Partenaires

Hébergement Web