VBA code tri

Brooke -  
 Utilisateur anonyme -
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. Utilisateur anonyme
     
    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
    0