Problème macro boucle avec range...

jufabref Messages postés 2 Statut Membre -  
jufabref Messages postés 2 Statut Membre -
Bonjour à tous,

J'ai un petit problème avec une macro, je n'arrive pas à faire de boucle avec la fonction Range.

J'ai la macro suivante (ci-dessous) qui s'applique aux colonnes A et B (je l'ai enregistrée sous Excel). J'aimerais l'automatisée pour quelle me fasse la même chose sur les colonnes de A à AZ... Il faut donc sans doute une boucle for avec une variable..(je ne suis pas arrivé à la faire fonctionnée...)

Sub Tri()
'
' Tri Macro
'
' Touche de raccourci du clavier: Ctrl+i
'
Columns("A:A").Select
ActiveWorkbook.Worksheets("Scheduling").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Scheduling").Sort.SortFields.Add Key:=Range("A1") _
, SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Scheduling").Sort
.SetRange Range("A2:A996")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Columns("B:B").Select
ActiveWorkbook.Worksheets("Scheduling").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Scheduling").Sort.SortFields.Add Key:=Range("B1") _
, SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Scheduling").Sort
.SetRange Range("B2:B996")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub




Je vous remercie d'avance.

Ju
A voir également:

2 réponses

f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 715
 
Bonjour,

'Column("A:A") correspond a Column(1), B=2 ........
'Range("A1") correspond Cells(1,1) , B1---> Cells(1,2)

Sub Tri()
'
' Tri Macro
'
' Touche de raccourci du clavier: Ctrl+i
'
With ActiveWorkbook.Worksheets("Scheduling")
For Colonne = 1 To 52
.Columns(Colonne).Select
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=Cells(1, Colonne), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Scheduling").Sort
.SetRange Range(Cells(2, Colonne), Cells(996, Colonne))
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Next Colonne
End With
End Sub

Cela devrait vous convenir

Bonne suite
1
jufabref Messages postés 2 Statut Membre
 
Je te remercie beaucoup! Ce la fonctionne à la perfection.

Ju
0