Macro pour pivot table (tableau dynamique)

  • Initiateur de la discussion Initiateur de la discussion piloupilou
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

piloupilou

XLDnaute Nouveau
🙁

J'aimerais creer la macro suivante (je fais appel a vous car moi je surchauffe):

avant de lancer la macro un tableau aura etait selectionner avec la methode suivante: Cellule active en A1,CTRL+SHIFT+FLECHEBAS puis CTRL+SHIFT+FLECHEDROIT.

En fait le nombre de colonnes et de lignes sont inconnus. mais l intitule des 3 premieres colonnes sont connus. et c est par rapport a ces 3 intitules que je veux creer la base de mon pivot table. ensuite si l utilisateur veut rentrer d autre intitule(variable), je lui laisse le choix.

ensuite je vais chercher pivot table dans le menu tool... il reconnait automatiquement la zone preselectionnee.

Le probleme quand j essaye d automatiser tout ca avec ma macro, les champs qui determine la plage du tableau sont fixes(donnees du premier tableau traite):

ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
' ''Liste Piece'!R1C1: R114C4').CreatePivotTable TableDestination:=Range('J2'), _

J ai essaye de passer par donner un nom au tableau qui m interresse mais je me suis heurte au meme probleme:

Range('A1').Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
ActiveWorkbook.Names.Add Name:='List', RefersToR1C1:= _
'='Liste Piece'!R1C1:R114C4'

En fait j aimerais rentrer la valeur du tableau dans une variable.

Merci d avance

Desole pour le manque d accent, QWERTY oblige!
 
bonjour piloupilou

je ne suis pas doué en graphique mais je tenterais quelque chose comme

Dim x As Integer
Dim y As Integer
Dim m As Integer
Dim n As Integer
Dim tableau As String

'definir x,y m,n

tableau = '='Liste Piece'!R' & x & 'C' & y & ':R' & m & 'C' & n

ActiveWorkbook.Names.Add Name:='List', RefersToR1C1:=tableau
 
bonsoir Pilou,PierreJean
insertion,nom,définir
dans la fenêtre intitulée 'nom dans le classeur'
tu entres un nom exemple MaBase

dans la fenêtre du bas intitulée 'fait référence à'
tu entres la formule suivante
=DECALER($A$1;;;NBVAL($A:$A);NBVAL($A$1:$C$1))
$A$1 début
NBVAL($A:$A) nombre de lignes
NBVAL($A$1:$C$1) nombre de colonnes
entêtes de colonne comprises
à adapter à ton cas
à bientôt
 
Bonsoir,

Pour définir ton tableau place cette instruction au début de ta macro :

Code:
Set Plage = sheets('nom de la feuille contenant le tableau').range('A1').currentregion

Clique sur ce lien dans lequel j'ai laissé un code qui devrait t'aider --> Lien supprimé.

Sinon place ton fichier ou ta macro que je la voie.

Si pb n'hésite pas

😉
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Programme trop lent
Réponses
12
Affichages
975
Retour