Note: The other languages of the website are Google-translated. Back to English

Comment ajouter plusieurs champs dans le tableau croisé dynamique?

Lorsque nous créons un tableau croisé dynamique, nous devons faire glisser les champs dans les étiquettes de ligne ou les valeurs manuellement un par un. Si nous avons une longue liste de champs, nous pouvons ajouter rapidement quelques étiquettes de ligne, mais les champs restants doivent être ajoutés à la zone Valeur. Existe-t-il des méthodes rapides pour ajouter tous les autres champs dans la zone Valeur en un seul clic dans le tableau croisé dynamique?

Ajouter plusieurs champs dans la zone de valeur du tableau croisé dynamique avec le code VBA

Onglet Office Activez la modification et la navigation par onglets dans Office et simplifiez considérablement votre travail ...
Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%
  • Réutiliser n'importe quoi: Ajoutez les formules, les graphiques et tout autre élément les plus utilisés ou les plus complexes à vos favoris et réutilisez-les rapidement à l'avenir.
  • Plus de 20 fonctionnalités de texte: Extraire le numéro de la chaîne de texte; Extraire ou supprimer une partie des textes; Convertissez les nombres et les devises en mots anglais.
  • Outils de fusion: Plusieurs classeurs et feuilles en un seul; Fusionner plusieurs cellules / lignes / colonnes sans perdre de données; Fusionner les lignes en double et la somme.
  • Outils de fractionnement: Diviser les données en plusieurs feuilles en fonction de la valeur; Un classeur vers plusieurs fichiers Excel, PDF ou CSV; Une colonne à plusieurs colonnes.
  • Coller sauter Lignes cachées / filtrées; Compte et somme par couleur d'arrière-plan; Envoyez des e-mails personnalisés à plusieurs destinataires en masse.
  • Super filtre: Créez des schémas de filtres avancés et appliquez-les à toutes les feuilles; Sort par semaine, jour, fréquence et plus encore; Filtre par gras, formules, commentaire ...
  • Plus de 300 fonctionnalités puissantes; Fonctionne avec Office 2007-2019 et 365; Prend en charge toutes les langues; Déploiement facile dans votre entreprise ou organisation.

flèche bleue bulle droite Ajouter plusieurs champs dans la zone de valeur du tableau croisé dynamique avec le code VBA


Malheureusement, il n'y a pas de case à cocher pour que nous puissions vérifier rapidement tous les champs de la liste des champs du tableau croisé dynamique en un seul clic, mais, avec le code VBA suivant, il peut vous aider à ajouter les champs restants à la zone Valeurs à la fois. Veuillez procéder comme suit:

1. Après avoir créé le tableau croisé dynamique, vous devez tout d'abord ajouter les champs d'étiquette de ligne selon vos besoins et laisser les champs de valeur dans le Choisissez les champs à ajouter au rapport liste, voir capture d'écran: </ p>

doc-ajouter-champs-multiples-1

2. Maintenez le ALT + F11 clés pour ouvrir le Fenêtre Microsoft Visual Basic pour Applications.

3Cliquez sur insérer > Moduleet collez le code suivant dans le Fenêtre du module.

Code VBA: ajoutez plusieurs champs dans la zone Valeur des tableaux croisés dynamiques dans la feuille de calcul active

Sub AddAllFieldsValues()
'Update 20141112
    Dim pt As PivotTable
    Dim I As Long
    For Each pt In ActiveSheet.PivotTables
        For I = 1 To pt.PivotFields.Count
            With pt.PivotFields(I)
              If .Orientation = 0 Then .Orientation = xlDataField
            End With
        Next
    Next
End Sub

4. Puis appuyez F5 clé pour exécuter ce code, tous les champs restants ont été ajoutés à la zone Valeurs en même temps, voir capture d'écran:

doc-ajouter-champs-multiples-1

Notes: Ce code VBA est appliqué à tous les tableaux croisés dynamiques de la feuille de calcul active.


Articles Liés:

Comment répertorier tous les tableaux croisés dynamiques d'un classeur?

Comment vérifier si un tableau croisé dynamique existe dans un classeur?


Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtréeplus
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammesplus
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellulesplus
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDFplus
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2019 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!
bas de cabine

 

Commentaires (23)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
Macro vraiment sympa et utile. Cependant, j'avais déjà ajouté la moitié de mes champs dans les valeurs et lorsque j'ai exécuté cette macro, elle a de nouveau ajouté tous les mêmes champs. Une idée pourquoi?
Ce commentaire a été minimisé par le modérateur sur le site
Ouah. Cela fonctionne très très bien. Merci beaucoup! Néanmoins, je suis un peu étonné que Microsoft n'ait pas de fonctionnalité intégrée pour une tâche plutôt simple...
Ce commentaire a été minimisé par le modérateur sur le site
C'est fantastique. La macro peut-elle être modifiée pour ajouter tout aux étiquettes de ligne au lieu des valeurs ?
Ce commentaire a été minimisé par le modérateur sur le site
Existe-t-il un moyen de l'exécuter uniquement pour les champs exclus, de sorte que lorsque je l'exécute, je ne me retrouve pas avec des champs en double ? c'est à dire. "Champ" et "Champ_2"
Ce commentaire a été minimisé par le modérateur sur le site
[quote]Existe-t-il un moyen de l'exécuter uniquement pour les champs exclus, de sorte que lorsque je l'exécute, je ne me retrouve pas avec des champs en double ? c'est à dire. "Champ" et "Champ_2"Par Shaun[/quote] Oui - deux exemples Utilisez ceci pour ajouter tous les éléments non cochés restants à ROWS Sub AddAllFieldsRow() Dim pt As PivotTable Dim iCol As Long Dim iColEnd As Long Set pt = ActiveSheet.PivotTables(1) With pt iCol = 1 iColEnd = .PivotFields.Count For iCol = 1 To iColEnd With .PivotFields(iCol) If .Orientation = 0 Then .Orientation = xlRowField End If End With Next iCol End With End Sub Utilisez ceci pour ajouter un élément non coché restant à VALUES Sub AddAllFieldsValues() Dim pt As PivotTable Dim iCol As Long Dim iColEnd As Long Set pt = ActiveSheet.PivotTables(1) With pt iCol = 1 PivotFields.Count For iCol = 1 To iColEnd With .PivotFields(iCol) If .Orientation = 0 Then .Orientation = xlDataField End If End With Next iCol End With End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Existe-t-il un moyen de n'ajouter que quelques champs ekstra, pas les autres ou tous, mais juste une paire de ceux qui ne sont pas déjà cochés? :)
Ce commentaire a été minimisé par le modérateur sur le site
Oui, pour faire écho à Markus, existe-t-il un moyen de modifier le code pour n'ajouter que des champs non cochés qui ont certainement des étiquettes de champ (comme avec une fonction if contains) ? Par exemple, j'ai une question qui contient en fait 50 valeurs oui/non par sujet et j'aimerais déplacer toutes ces valeurs dans le champ des valeurs. Ils commencent tous par le même libellé de question q9_[sujet de question spécifique].
Ce commentaire a été minimisé par le modérateur sur le site
Y a-t-il de toute façon si nous voulons ajouter des colonnes sélectionnées à partir du fichier de base au lieu de toutes. ?
Ce commentaire a été minimisé par le modérateur sur le site
Sa valeur de prise de compte. comment puis-je convertir tout compte en somme
Ce commentaire a été minimisé par le modérateur sur le site
Vous pouvez cliquer sur votre champ (dans la zone où vous faites glisser vos champs dans : étiquettes de colonne, étiquettes de ligne, etc.) puis cliquer sur "Paramètre de champ de valeur" puis vous obtiendrez une liste déroulante à partir de laquelle vous pourrez choisir "Somme" !
A     El
Ce commentaire a été minimisé par le modérateur sur le site
Code VBA: modifier plusieurs paramètres de champ dans le tableau croisé dynamique
https://www.extendoffice.com/documents/excel/2354-excel-pivot-table-change-multiple-field-settings.html
Ce commentaire a été minimisé par le modérateur sur le site
C'est bien! Merci.
Ce commentaire a été minimisé par le modérateur sur le site
"xlDataField" ne fonctionne-t-il pas avec PowerPivot ? J'ai le code ci-dessous, qui est utilisé pour ajouter toutes les mesures au tableau croisé dynamique. Cela fonctionne avec "xlColumnField" et "xlRowField". Des idées comment faire ce travail?

Sous AddAllFieldsValues()
Dim pt comme tableau croisé dynamique
Dim iCol aussi longtemps
Dim iColEnd As Long

Définissez pt = ActiveSheet.PivotTables (1)

Avec pt

iCol = 1
iColFin = .CubeFields.Count

Pour iCol = 1 Vers iColFin
Avec .CubeFields(iCol)
Si .Orientation = xlCaché Alors
.Orientation = xlChampDonnées
Si fin
Terminer par
iCol suivant

Terminer par

End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Salut.

Cela me donne une erreur de compilation lorsque je clique sur Exécuter

S'il vous plaît aider
Ce commentaire a été minimisé par le modérateur sur le site
Fonctionne comme un charme. Merci
Ce commentaire a été minimisé par le modérateur sur le site
Merci, m'a beaucoup aidé
Ce commentaire a été minimisé par le modérateur sur le site
MERCI BEAUCOUP!!!
Ce commentaire a été minimisé par le modérateur sur le site
Remarque : le message d'erreur de Che :




Sous AddAllFieldsValues()




'Mise à jour 20141112



Faible
pt comme tableau croisé dynamique





Dim I As
longs





Pour chaque
pt dans ActiveSheet.PivotTables





Pour les
I = 1 To pt.PivotFields.Count





Terminer par







Suivant



Suivant




End Sub










Remarque : Che essaie d'ajouter ce qui suit
champs/instantané- "Somme de OTHER Différence, Somme de 4096
Différence" sur 80 champs à être
ajoutée







AUTRE Différence



4096 Différence



4016 Différence
Ce commentaire a été minimisé par le modérateur sur le site
Si "Les valeurs sont
"0" ou "Null" comment supprimer les valeurs de ligne de l'affichage

(ex. Somme de 2743 Différence)





Pivot "Lignes"
Pivot "Valeurs"





Étiquettes de ligne





NP9 - Total non dépensé
Crédits





Somme de la différence AUTRE 1,045,355,165.31 XNUMX XNUMX XNUMX




Somme de 3200 Différence
0.00




Somme de 0108 Différence
12,873,630.29



Somme de 4586 Différence
(33,024,706.93)



Somme de 0148 Différence
(72,046,783.14)



Somme de 0129 Différence
(5,583,891.98)



Somme de 4598 Différence
(929,574.56)



Somme de 2743 Différence



Somme de 4041 Différence
0.00



Somme de 2799 Différence
Ce commentaire a été minimisé par le modérateur sur le site
Existe-t-il un moyen de modifier la macro qui enverrait les champs dans l'étiquette des lignes au lieu des valeurs ?
Ce commentaire a été minimisé par le modérateur sur le site
Задача же не Всегда стоит В полчении° сécuve, хочется до démare. Можете реализовать?
Ce commentaire a été minimisé par le modérateur sur le site
Salut, y a-t-il un moyen d'ajouter uniquement les colonnes non sélectionnées ? Merci. 
Ce commentaire a été minimisé par le modérateur sur le site
J'exécute ce code. Combien de temps faut-il pour terminer? Cela fait maintenant 45 minutes qu'il tourne toujours. Aidez-moi, s'il vous plaît. Au fait, mon total de colonnes de champs est de 3600.
Il n'y a pas encore de commentaires postés ici
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés