pascal21
XLDnaute Barbatruc
bonjour le forum
j'ai réalisé avec l'enregistreur de macro une macro pour faire un tri alphanumérique sur les colonnes B et C
(colonne C à trier)
les données de ses colonnes sont évolutives en nombre (actuellement de la ligne 1 a 100)
j'ai donc choisi une zone B1:c117 mais les cellules vides se mettent en haut de la feuille
quel code permet de sélectionner que la zone où les cellules de la colonne B(C contient une formule) sont renseignées
merci
je vous mets le code (non épuré de l'enregistreur)
	
	
	
	
	
		
je ne peux pas bettement masquer les lignes vides car j'ai d'autres tris dans d'autres colonnes
edit fichier simplifié transmis
	
		
			
		
		
	
				
			j'ai réalisé avec l'enregistreur de macro une macro pour faire un tri alphanumérique sur les colonnes B et C
(colonne C à trier)
les données de ses colonnes sont évolutives en nombre (actuellement de la ligne 1 a 100)
j'ai donc choisi une zone B1:c117 mais les cellules vides se mettent en haut de la feuille
quel code permet de sélectionner que la zone où les cellules de la colonne B(C contient une formule) sont renseignées
merci
je vous mets le code (non épuré de l'enregistreur)
		Code:
	
	
	Sub tri_numerique()'
' tri_numerique Macro
'
'
    Range("B1:C117").Select
    ActiveWorkbook.Worksheets("Syntèse").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Syntèse").Sort.SortFields.Add Key:=Range("C1:C117" _
        ), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Syntèse").Sort
        .SetRange Range("B1:C117")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    ActiveWindow.ScrollRow = 96
    ActiveWindow.ScrollRow = 77
    ActiveWindow.ScrollRow = 13
    ActiveWindow.ScrollRow = 7
    ActiveWindow.ScrollRow = 2
    Range("I2:J37").Select
    ActiveWorkbook.Worksheets("Syntèse").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Syntèse").Sort.SortFields.Add Key:=Range("J2:J37") _
        , SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Syntèse").Sort
        .SetRange Range("I2:J37")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
 
End Sub
	edit fichier simplifié transmis
Pièces jointes
			
				Dernière édition: