VBA - Trier colonne
Bonjour
J'ai un onglet qui contient 2 tableaux (non définis comme tableau pour éviter les noms), et 4 graphiques.
Les 2 premiers graphiques se construisent via le premier tableau, et les 2 suivants via la second.
Le second tableau n'est qu'un copier/coller du premier avec un tri du plus grand au plus petit sur la première colonne.
Le problème est le suivant :
Le code ci-dessous fonctionne très bien. Il est renseigné dans un module. Il fonctionne sur l'onglet "Courbe V1". Je souhaite pouvoir créer si j'en ai besoin plusieurs onglets de ce type, "Courbe V2", "Courbe V3"... Comment adapter la syntaxe de ce module pour qu'il reste applicable dans chacun des onglets contenant le bouton déclencheur ?
Sub MAJ_Graphique()
Application.ScreenUpdating = False
Range("C4:H368").Copy
Range("J4").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("J3:O3").AutoFilter 'Active le filtre
ActiveWorkbook.Worksheets("Courbe V1").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Courbe V1").AutoFilter.Sort.SortFields.Add Key:= _
Range("J3"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Courbe V1").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Selection.AutoFilter 'Désactive le filtre
Range("A1").Select
End Subbonjour,
essaie ceci
Sub MAJ_Graphique()
With ActiveSheet
Application.ScreenUpdating = False
.Range("C4:H368").Copy
.Range("J4").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
.Range("J3:O3").AutoFilter 'Active le filtre
With .AutoFilter.Sort
.SortFields.Clear
.SortFields.Add Key:= _
.Range("J3"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Selection.AutoFilter 'Désactive le filtre
.Range("A1").Select
End With
End SubBonjour h2so4,
J'obtiens erreur 438 avec ce code surligné :
.SortFields.Add Key:= _
.Range("J3"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormalRésolu en remplaçant :
.SortFields.Add Key:= _
.Range("J3"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormalPar :
.SortFields.Add Key:=Range("J3"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormalMerci encore une fois h2so4