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

Comment maintenir le segment du tableau croisé dynamique en mouvement avec le défilement de la feuille de calcul dans Excel?

Lorsque vous travaillez avec le tableau croisé dynamique, vous pouvez insérer des segments pour filtrer visuellement les données de la table. Cet article parle de garder le segment du tableau croisé dynamique toujours visible lors du défilement de la feuille de calcul.

Gardez le segment du tableau croisé dynamique en mouvement avec le défilement de la feuille de calcul avec le code VBA


Gardez le segment du tableau croisé dynamique en mouvement avec le défilement de la feuille de calcul avec le code VBA


Le script VBA suivant peut vous aider à maintenir le segment du tableau croisé dynamique en mouvement avec la feuille de calcul. Veuillez faire comme suit.

1. appuie sur le autre + F11 touches simultanément pour ouvrir le Microsoft Visual Basic pour applications fenêtre.

2. dans le Microsoft Visual Basic pour applications fenêtre, double-cliquez Ce classeur dans le volet Projet de gauche, puis copiez et collez le code VBA ci-dessous dans le Ce classeur (code) la fenêtre. Voir la capture d'écran:

Code VBA: Gardez le segment du tableau croisé dynamique en mouvement avec le défilement de la feuille de calcul

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Dim ShF As Shape
    Dim ShM As Shape
    'specify a slicer
    Application.ScreenUpdating = False
    Set ShF = ActiveSheet.Shapes("Column1")
    Set ShM = ActiveSheet.Shapes("Column2")
    'change position of the slicer
    With Windows(1).VisibleRange.Cells(1, 1)
        ShF.Top = .Top
        ShF.Left = .Left + 300
        ShM.Top = .Top
        ShM.Left = .Left + 100
    End With
    Application.ScreenUpdating = True
End Sub

Notes:

1). Dans le code, Colonne1 et Colonne2 sont les noms des segments.

2). Vous pouvez spécifier la position des segments lors du défilement de la feuille de calcul dans le code.

3). Et vous pouvez ajouter plus de segments dans le code ou en supprimer selon vos besoins.

3. appuie sur le autre + Q touches pour fermer le Microsoft Visual Basic pour applications boîte de dialogue de la fenêtre.

À partir de maintenant, les segments spécifiés seront déplacés avec la cellule active lors du défilement de la feuille de calcul. Voir la capture d'écran:


Articles connexes:


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 (10)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
Hi,
Merci pour ce VBA.

Je n'ai absolument aucune idée de VBA et d'où ma question.

J'ai utilisé ce VBA et j'ai eu une question.
Comment puis-je modifier ce VBA pour qu'il ne fonctionne que pour une feuille.

En ce moment, j'ai 8 feuilles et chaque fois que je passe à une autre feuille, cela échoue et me demande de terminer ou de déboguer.
J'ai fait exactement le chemin comme indiqué ci-dessus.


Ceci est mon VBA ici ..
Private Sub Workbook_SheetSelectionChange (ByVal Sh As Object, ByVal Target As Range)
Dim ShF comme forme
Dim ShM comme forme
'spécifier un slicer
Application.ScreenUpdating = Faux
Définir ShF = ActiveSheet.Shapes("Client 1")
Set ShM = ActiveSheet.Shapes("Rappel 1")
'changer la position de la trancheuse
Avec Windows(1).VisibleRange.Cells(1, 1)
ShF.Haut = .Haut + 2
ShF.Gauche = .Gauche + 475
ShM.Haut = .Haut + 180
ShM.Gauche = .Gauche + 475
Terminer par
Application.ScreenUpdating = True
End Sub


S'il vous plaît aider.
Ce commentaire a été minimisé par le modérateur sur le site
Hi,
Merci pour ce VBA.

Je n'ai absolument aucune idée de VBA et d'où ma question.

J'ai utilisé ce VBA et j'ai eu une question.
Comment puis-je modifier ce VBA pour qu'il ne fonctionne que pour une feuille.

En ce moment, j'ai 8 feuilles et chaque fois que je passe à une autre feuille, cela échoue et me demande de terminer ou de déboguer.
J'ai fait exactement le chemin comme indiqué ci-dessus.


Ceci est mon VBA ici ..
Private Sub Workbook_SheetSelectionChange (ByVal Sh As Object, ByVal Target As Range)
Dim ShF comme forme
Dim ShM comme forme
'spécifier un slicer
Application.ScreenUpdating = Faux
Définir ShF = ActiveSheet.Shapes("Client 1")
Set ShM = ActiveSheet.Shapes("Rappel 1")
'changer la position de la trancheuse
Avec Windows(1).VisibleRange.Cells(1, 1)
ShF.Haut = .Haut + 2
ShF.Gauche = .Gauche + 475
ShM.Haut = .Haut + 180
ShM.Gauche = .Gauche + 475
Terminer par
Application.ScreenUpdating = True
End Sub


S'il vous plaît aider.
Ce commentaire a été minimisé par le modérateur sur le site
Cher John,
Passez à la feuille de calcul pour laquelle vous souhaitez que le code VBA fonctionne uniquement, puis cliquez avec le bouton droit sur l'onglet Feuille et sélectionnez Afficher le code dans le menu contextuel.
Ensuite, copiez et collez le code VBA ci-dessous dans la fenêtre de code d'ouverture. Voir capture d'écran ci-dessous :

Private Sub Worksheet_SelectionChange (Cible ByVal en tant que plage)
Dim ShF comme forme
Dim ShM comme forme
'spécifier un slicer
Application.ScreenUpdating = Faux
Set ShF = ActiveSheet.Shapes("Fruit")
Set ShM = ActiveSheet.Shapes("Sale")
'changer la position de la trancheuse
Avec Windows(1).VisibleRange.Cells(1, 1)
ShF.Haut = .Haut
ShF.Gauche = .Gauche + 300
ShM.Haut = .Haut
ShM.Gauche = .Gauche + 100
Terminer par
Application.ScreenUpdating = True
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Chère Cristal,

Merci beaucoup pour le code.
J'ai fait exactement ce que vous avez dit et cela fonctionne comme un charme.

J'apprécie beaucoup.
À votre santé :)
Ce commentaire a été minimisé par le modérateur sur le site
Salut, j'ai mis à jour mon code comme vous l'avez indiqué. Le slicer ne défile plus avec la fenêtre, mais si je clique dans une nouvelle cellule, le slicer se déplacera. Est-ce le bon comportement ?
Ce commentaire a été minimisé par le modérateur sur le site
Qu'est-ce que la première ligne indique et comment pouvons-nous la personnaliser en fonction de notre trancheuse ?
Je suis très confus à ce sujet sur pratiquement chaque ligne.
Ce commentaire a été minimisé par le modérateur sur le site
Chère Katie
Je ne sais pas si je comprends totalement votre question.
Comme je l'ai mentionné dans les notes ci-dessus, vous devez remplacer Column1 et Column2 par les noms de vos slicers dans le code afin de maintenir le défilement de votre slicer avec la feuille de calcul.
Ce commentaire a été minimisé par le modérateur sur le site
J'ai 4 trancheuses qui ont été regroupées en sélectionnant les 4 et en cliquant avec le bouton droit pour utiliser la commande de groupe.

Est-il possible d'assigner ce VBA par un groupe ? Comment étiquetez-vous le groupe et écrivez-vous le VBA pour le reconnaître comme un seul ?
Ce commentaire a été minimisé par le modérateur sur le site
Salut michael,
Désolé, je ne peux pas vous aider. Merci pour votre commentaire.
Ce commentaire a été minimisé par le modérateur sur le site
D'accord, donc le titre dit "Comment faire en sorte que la trancheuse du tableau croisé dynamique se déplace avec la feuille de calcul Défilement Dans Excel?", mais ce code VBA ne le fait que pour la cellule actuellement sélectionnée, comment pouvons-nous le faire pour le défilement du classeur, et pas seulement de la cellule sélectionnée ?
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