Bonjour Mat, Bbil, bonjour le forum,
Pas bien compris ton code... Surtout cette ligne :
Worksheets("Clients").Range(Range("BC4"), Range("BC4").Offset(nombre_client, 0)).Select
que j'aurais écrite :
Worksheets("Clients").Range("BC4").Offset(nombre_client, 0).Select
Peut-être comme ça :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| Sub Coucou()
Dim C As Object 'déclare la variable C (onglet Clients)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim PL As Range 'déclare la variable PL (PLage)
Dim NC As Integer 'déclare la variable NC (Nombre de clients)
On Error GoTo errHandler
Set C = Sheets("Clients") 'définit l'onglet C
DL = C.Cells(Application.Rows.Count, 2).End(xlUp).Row 'définit la dernière ligne éditée Dl de la colonne 2 (=B) de l'onglet C
Set PL = C.Range("B4:B" & DL) 'définit la plage PL
NC = PL.Cells.Count 'définit le nombre de clients NC
PL.Offset(0, 2).Copy C.Range("BB4") 'copie la plage PL décalée de deux colonnes à droite (=colonne D) et la colle dans la cellule BB4
Worksheets("Clients").Sort.SortFields.Clear
Worksheets("Clients").Sort.SortFields.Add Key:=C.Range("BC4"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With Worksheets("Clients").Sort
.SetRange C.Range("BB4").Offset(NC, 2) 'pourquoi 2 ?
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Exit Sub
errHandler:
MsgBox "Une erreur est survenue CmdeClt, Ligne: " & Erl() & _
vbCrLf & "Numéro d'erreur: " & Err.Number & vbCrLf & Err.Description
End Sub |
Partager