VBA code tri

Bonjour,

est ce que quelqu'un pourrait m'expliquer quelques trucs sur ce code? j'ai compris qu'il fait un copier coller spécial, mais il le colle où? toujours sur la même feuille ?
le tri qu'il va faire sur feuil1, cette feuille il faut qu'elle existe déjà? et si elle n'existe pas?

Range(ActiveSheet.Cells(8, colonne), ActiveSheet.Cells(10007, colonne)).Select
Selection.Copy
ActiveSheet.Cells(8, colonne + 11).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False - ????
ActiveWorkbook.Worksheets("feuil1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("feuil1").Sort.SortFields.Add Key:=ActiveSheet.Cells(8, colonne + 11), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("feuil1").Sort
.SetRange Range(ActiveSheet.Cells(8, colonne + 11), ActiveSheet.Cells(10007, colonne + 11))
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Next
End Sub

Merci beaucoup !!

1 réponse

  1. Bonjour,

        ' Sélection d'une plage (implicite ActiveSheet) 
        Range(ActiveSheet.Cells(8, colonne), ActiveSheet.Cells(10007, colonne)).Select 
        'ActiveSheet.Range(ActiveSheet.Cells(8, colonne), ActiveSheet.Cells(10007, colonne)).Select 
        ' Copier dans presse-papier 
        Selection.Copy 
        ' Positionnement sur la feuille 
        ActiveSheet.Cells(8, colonne + 11).Select 
        ' Coller sur cette même feuille 
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
            :=False, Transpose:=False 
        ' Désactive le mode copier/coller (voir note 1) 
        Application.CutCopyMode = False 
        ' Enlève tous les filtres 
        ActiveWorkbook.Worksheets("feuil1").Sort.SortFields.Clear 
        ' Création de nouveau filtre 
        ActiveWorkbook.Worksheets("feuil1").Sort.SortFields.Add Key:=ActiveSheet.Cells(8, colonne + 11), _ 
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ 
            xlSortTextAsNumbers 
        ' Tri sur le feuille 
        With ActiveWorkbook.Worksheets("feuil1").Sort 
            .SetRange Range(ActiveSheet.Cells(8, colonne + 11), ActiveSheet.Cells(10007, colonne + 11)) 
            .Header = xlGuess 
            .MatchCase = False 
            .Orientation = xlTopToBottom 
            .SortMethod = xlPinYin 
            .Apply 
        End With 
    
    ' 1 - Lorsque l'on effectue un copier dans excel, la zone est encadré par un pointillé 
    '      si le mode copier/coller n'est pas désactiver cette zone demeure inchangé 
    '      sinon la zone redevient sélectionné mais non encadré de pointillé 
    '           donc un nouveau Selection.Paste ne pourrait être effectué sur cette même zone 
    
    


    Oui la feuille doit exister, sinon il y aura Erreur 1004 ...

    Cdt

    Lupin