Note: The other languages of the website are Google-translated. Back to English
Se connecter  \/ 
x
or
x
INSCRIPTION  \/ 
x

or

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ée...
  • 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 gammes...
  • 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 cellules...
  • 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 PDF...
  • 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
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Jacob · 1 years ago
    Okay, so the title says "How To Keep Slicer Of Pivot Table Moving With Worksheet Scrolling In Excel?", but this VBA code only does it for the current selected cell, how can we do it for the scrolling of the workbook, and not just the selected cell?
  • To post as a guest, your comment is unpublished.
    MICHAEL · 3 years ago
    I have 4 slicers which have been grouped together by selecting all 4 and the right clicking to use the group command.

    Is it possible to assign this VBA by a group? How do you label the group and write the VBA to recognize it as one?
    • To post as a guest, your comment is unpublished.
      crystal · 3 years ago
      Hi Michael,
      Sorry can't help with this. Thanks for your comment.
  • To post as a guest, your comment is unpublished.
    Katie · 3 years ago
    What does the first row indicate and how do we customize it to suit our slicer?
    I'm very confused about that on basically every line.
    • To post as a guest, your comment is unpublished.
      crystal · 3 years ago
      Dear Katie
      I don't know if I totally understand your question.
      As I mentioned in above Notes, you need to replace Column1 and Column2 with the names of your slicers in the code in order to keep your slicer scrolling with the worksheet.
  • To post as a guest, your comment is unpublished.
    deepak.s3mini@gmail.com · 4 years ago
    Hi,
    Thank you for this VBA.

    I have absolutely no idea about VBA and hence my question.

    I used this VBA and I had a question.
    How can i alter this VBA so that it works only for one sheet.

    Right now, I have 8 sheets and every time i go to another sheet, it fails and asks me to end or debug.
    I have done exactly the way as shown above.


    This is my VBA here..
    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("Client 1")
    Set ShM = ActiveSheet.Shapes("Reminder 1")
    'change position of the slicer
    With Windows(1).VisibleRange.Cells(1, 1)
    ShF.Top = .Top + 2
    ShF.Left = .Left + 475
    ShM.Top = .Top + 180
    ShM.Left = .Left + 475
    End With
    Application.ScreenUpdating = True
    End Sub


    Please help.
    • To post as a guest, your comment is unpublished.
      crystal · 4 years ago
      Dear John,
      Shift to the worksheet you want the VBA code only work for, then right click the Sheet tab and select View Code from the context menu.
      And then copy and paste below VBA code into the opening Code window. See below screenshot:

      Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      Dim ShF As Shape
      Dim ShM As Shape
      'specify a slicer
      Application.ScreenUpdating = False
      Set ShF = ActiveSheet.Shapes("Fruit")
      Set ShM = ActiveSheet.Shapes("Sale")
      '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
      • To post as a guest, your comment is unpublished.
        Doug · 1 years ago
        Hi,
        I have updated my code as you have indicated. The slicer no longer scrolls along with the window however if I click in a new cell then the slicer will move. Is this the correct behavior?
      • To post as a guest, your comment is unpublished.
        John · 4 years ago
        Dear Crystal,

        Thank you so very much for the code.
        I did exactly as you said and it works like a charm.

        Really appreciate it.
        Cheers :)
  • To post as a guest, your comment is unpublished.
    John · 4 years ago
    Hi,
    Thank you for this VBA.

    I have absolutely no idea about VBA and hence my question.

    I used this VBA and I had a question.
    How can i alter this VBA so that it works only for one sheet.

    Right now, I have 8 sheets and every time i go to another sheet, it fails and asks me to end or debug.
    I have done exactly the way as shown above.


    This is my VBA here..
    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("Client 1")
    Set ShM = ActiveSheet.Shapes("Reminder 1")
    'change position of the slicer
    With Windows(1).VisibleRange.Cells(1, 1)
    ShF.Top = .Top + 2
    ShF.Left = .Left + 475
    ShM.Top = .Top + 180
    ShM.Left = .Left + 475
    End With
    Application.ScreenUpdating = True
    End Sub


    Please help.