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

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