Problème TCD et VBA

Bonjour à tous,

Je reviens vers vous avec une autre question J'ai un TCD (fichier joint) où il y a certains totaux supérieurs à 15 dans la colonne Purchase (Total B et Total X).

J'ai besoin de créer une macro sous CommandButton_Click pour qu'elle analyse le TCD et à chaque fois qu'il y a un Total Purchase supérieur à 15, elle exporte toutes les données dans une nouvelle feuille, comme sous ShowDetail.

Mon problème est dans la condition du Total, je ne sais pas comment la définir, sachant que les Totaux ne sont pas des cellules figées et que leur emplacement peut varier en fonction du nombre de données dans le tableau source.

Merci encore pour votre aide!

Bonne journée.

5test-copie.xlsx (17.92 Ko)

Bonjour

Multipost

Tu as déjà des réponses ailleurs

J'ai supprimé mon post initial et l'ai remis, car je n'ai pas eu de réponses du tout.

RE

J'ai supprimé mon post initial et l'ai remis, car je n'ai pas eu de réponses du tout.

https://www.excel-downloads.com/threads/taux-de-reussite.20045145/#post-20331294

Mauvaise foi ou alzheimer ?

Tu en avais bien une même si ce n'est pas celle attendu et il est apprécié que le multiposte soit signalé et fait seulement s'il se justifie...

Bonjour,

Une proposition.

Cdlt.

2test-copie-1.xlsm (30.57 Ko)
Option Explicit

Public Sub Create_Worksheets()
Dim wb As Workbook, ws As Worksheet
Dim pt As PivotTable
Dim rng As Range, cell As Range
Dim sheetName As String
Const X As Long = 15

    With Application
        .DisplayAlerts = False
        .ScreenUpdating = False
    End With

    Set wb = ActiveWorkbook

    For Each ws In wb.Worksheets
        Select Case ws.Name
            Case "Data", "PT":
            Case Else: ws.Delete
        End Select
    Next ws

    Application.DisplayAlerts = True

    Set ws = wb.Worksheets("PT")
    Set pt = ws.PivotTables(1)
    pt.PivotCache.Refresh
    Set rng = pt.DataBodyRange

    For Each cell In rng
        If cell > X Then
            sheetName = cell.Offset(, -1).Value
            cell.ShowDetail = True
            ActiveWindow.DisplayGridlines = False
            With ActiveSheet
                .Name = sheetName
                .Move After:=wb.Worksheets(wb.Worksheets.Count)
            End With
        End If
    Next cell

End Sub

@jean eric : multipost sur au moins 3 forums avec les pseudos Victoria_F, Ironclad5519, Raphael9541, anastasia

N'a même pas la politesse de revenir lire et commenter les réponses...

Re,

Bonjour 78chris,

J'ai bien vu tes remarques, mais j'avais préparé la réponse hier, et je me suis décidé à poster.

Cdlt.

Merci Jean-Eric, cela marche très bien.

Bonne journée

Rechercher des sujets similaires à "probleme tcd vba"