Dans le TCD ci-joint, je voudrais pouvoir trouver en VBA la valeur Max en colonne C et qu'une fouis la valeur trouvée, une nouvelle feuille s'ouvre avec les lignes correspondant à ce nombre max
Quelqu'un a une idée SVP?
Merci
Super merci
Petit besoin supplémentaire, j'aimerais que la feuille ou sont copiées mes données soit renommée avec le nom de l'item MAX, en l'occurrence :
W76P062.$w$
Possible?
Merci
With ActiveSheet.PivotTables(1).DataBodyRange
y = .Rows.Count + .Cells(1, 1).Row - 2
Nom = ActiveSheet.Cells(y, .Column).Offset(0, -.Columns.Count).Value
ActiveSheet.Cells(y, .Column).ShowDetail = True
End With
ActiveSheet.Name = Nom
A noter qu'il faudrait sans doute tester que le feuille n'existe pas avant... car sinon le renommage va planter...
Suite à des modif dans mon fichier, je ne parviens plus à utiliser cette macro
Dans le premier TCD du fichier joint, je souhaite trouver dans la colonne B l'item qui a la plus grosse valeur dans la colonne C à savoir W76P058.$w$
Et ensuite qu'une fois cette valeur trouvée, une nouvelle feuille s'ouvre avec tous les items associés soit 85 lignes
Peux-tu adapter le code ci-dessous en conséquence?
Sub Max()
Sheets("TCD").Select
With ActiveSheet.PivotTables("Tableau croisé dynamique3").DataBodyRange
y = .Rows.Count + .Cells(1, 1).Row - 2
Nom = ActiveSheet.Cells(y, .Column).Offset(0, -.Columns.Count).Value
ActiveSheet.Cells(y, .Column).ShowDetail = True
End With
ActiveSheet.Name = Nom
Selection.AutoFilter
End Sub
Que veux tu dire par "inverse le classement"?
Je fais juste un tri du plus grand au plus petit
Donc le code est : y = .Rows.Count + .Cells(1, 1).Row?
Merci
merci chris
mais la macro plante sur la ligne en rouge...
Sub Max()
Sheets("TCD").Select
With ActiveSheet.PivotTables("Tableau croisé dynamique3").DataBodyRange
'y = .Rows.Count + .Cells(1, 1).Row - 2
y = .Rows.Count + .Cells(1, 1).Row
Nom = ActiveSheet.Cells(y, .Column).Offset(0, -.Columns.Count).Value ActiveSheet.Cells(y, .Column).ShowDetail = True
End With
ActiveSheet.Name = Nom
Selection.AutoFilter
End Sub
Bonjour le forum, Chris
Par contre chris, j'ai besoin d'une dernière évolution
Je voudrais que lorsque je ferme mon classeur principal, cette feuille qui a été nommée automatiquement ActiveSheet.Name = Nom
soit supprimée à la fermeture
Aurais tu une idée stp??
Merci
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Nom = "" Then Exit Sub
Application.DisplayAlerts = False
Worksheets(Nom).Delete
Application.DisplayAlerts = True
End Sub
Voir s'il faut enregistrer au cas où une sauvegarde aurait été faite pendant que la feuille existait.