Je suis un peu une recrue dans vba et je suis bloqué sur quelque chose qui devrait être relativement facile: J'ai un marco en spécifiant le numéro de colonne des noms d'en-têtes:VBA, codant une plage dynamique (colonne) pour le tri des données
Dim onomata As Integer
'find column named Name of ship
Set acell = rows(1).Find(What:="Name of ship", LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If Not acell Is Nothing Then
onomata = acell.Column
End If
maintenant, je veux trier mes données en fonction de cette colonne:
Cells.Select
ActiveWorkbook.ActiveSheet.Sort.SortFields.Clear
ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range(*this is where I want to introduce the column*), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortTextAsNumbers
With ActiveWorkbook.ActiveSheet.Sort
.SetRange Range("A1:AR100000")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Cependant, ma variable est un entier alors que les demandes de commande d'une valeur de plage. Quelqu'un peut-il m'aider dans la façon de le coder?
Merci beaucoup! Cela fonctionne parfaitement! –
@ e-gnacio vous êtes les bienvenus –
Et si je veux trier par plus de 1 critère? comme premier tri par colonne A puis par colonne B ??? –