Trier automatiquement un TCD avec un valeur du pressepapier

Bonjour,

Je suis nouveau sur ce Forum. Cela fait longtemps que je n'avais pas codé, du coup j'ai fait des mélanges pour arriver à ce que je veux et ça ne marche pas forcément bien. Et vu que je ne trouve pas de solution malgré mes recherches je me tourne vers vous.

Malheureusement je ne peux pas fournir le fichier, et je ne peux pas le recréer car les fonctions sont différentes entre Excel 2010 du boulot et Excel 2016 de chez moi. Si cela est bloquant je comprendrai.

Je vous explique mon problème en version rapide :

Je souhaite utiliser une valeur que je copie et colle dans un filtre d'un TCD pour faire un tri automatiquement par rapport à cette valeur, rien de plus compliqué.

Je vous laisse le code avec mes commentaires :

Sub Mamacro()

' Mamacro Macro

Dim celluleacopier As Long

' J'ai une autre macro dans la page qui permet de lancer cette macro quand je double clique sur une cellule d'une colonne donnée. Ensuite je me décale de -19 par rapport à la cellule sur laquelle je viens de cliquer pour récupérer l'information à copier.  

ActiveCell.Offset(0, -19).Select
Application.CutCopyMode = False

'ici je stock la valeur dans la variable que j'ai précédemment déclaré. 
celluleacopier = Selection.Copy

'Je vais sur une autre page de mon Excel 
Sheets("Objet").Select

'J'enleve les filtres de mon Tableau croisé dynamique 
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Part Number") _

        .ClearAllFilters

' Et c'est ici que j'ai le problème. J'ai bien récupéré la valeur que je voulais, car si je la colle dans une cellule c'est bien la bonne. Par contre, je n'arrive pas à filtrer le TCD avec ma valeur de manière automatique. Quelqu'un peut-il m'aider ? 
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Part Number") _

        .CurrentPage = "celluleacopier"

End Sub

En vous remerciant !

J'espère être compréhensible.

Bonjour,

Essaie ainsi :

Public Sub Update_Pivot_Table()
Dim strField As Variant
    strField = ActiveCell.Offset(, -19).Value
    With Worksheets("Objet").PivotTables("Tableau croisé dynamique1").PivotFields("Part Number")
        .ClearAllFilters
        .CurrentPage = strField
    End With
End Sub

Bonjour,

Merci beaucoup, j'essaie ça et je te tiens au courant.

MAJ du 11/09/2017 :

Public Sub Update_Pivot_Table()
Dim strField As Variant
    strField = ActiveCell.Offset(, -19).Value
    With Worksheets("Objet").PivotTables("Tableau croisé dynamique1").PivotFields("Part Number")
        .ClearAllFilters
        .CurrentPage = strField
    End With
End Sub

Alors j'ai essayé avec ton code, cela ne fonctionne pas sur mon Excel.

Du coup, j'ai bidouillé une solution mixte :

Mamacro Macro

    Dim celluleacopier As Variant

    ActiveCell.Offset(0, -19).Select

    Application.CutCopyMode = False

    celluleacopier = Selection.Copy

    Sheets("Lipram").Select

    With Worksheets("Lipram").PivotTables("Tableau croisé dynamique1").PivotFields("Part Number")

        .ClearAllFilters

    On Error Resume Next

    .PivotFields("Part Number").CurrentPage = celluleacopier

    If Err.Number <> 0 Then

        MsgBox "Veuillez coller le P/N du presse papier pour rechercher les Lipram associées"

    End If

    On Error GoTo 0

    End With

En gros, vu que ça ne marche pas, j'ai shunté l'idée par un message. Et l'utilisateur doit le faire à la main. Je t'avoue que j'aimerai bien comprendre pourquoi cela ne fonctionne pas mais en attendant voici ce que j'ai de mieux pour palier au problème.

Je t'ai mis le message d'erreur en P-J. Peut-être que ça peut t'aiguiller.

L'erreur est sur la ligne : .PivotFields("Part Number").CurrentPage = celluleacopier

En te remerciant.

unnamed
Rechercher des sujets similaires à "trier automatiquement tcd valeur pressepapier"