j'ai une liste de service avec du personnel rattaché a chaque service.
Je souhaite qu'à chaque fois qu'il y a un service qui change, qu'une ligne soit insérée entre les 2 services.
voir le fichier joint pour mieux comprendre.
dans l'attente, merci,
en supposant que le tableau à recopier et à trier est beaucoup plus grand que celui qui est présent sur le feuille, il faut remplacer la fin du code par celui-ci:
Code:
For i = Range("G65535").End(xlUp).Row To 8 Step -1
If Cells(i, 7) <> Cells(i - 1, 7) Then
Range(Cells(i, 7), Cells(Range("G65535").End(xlUp).Row, 9)).Select
Selection.Cut Destination:=Cells(i + 1, 7)
End If
Next i
i étant le numéro de la ligne dans laquelle s'effectue le test
à+
Philippe
Edit:
la macro copie les données du tableau gauche dans les colonnes G, H & I
ensuite elle effectue le tri par ordre alpha sur la colonne G et sur la colonne H
le code présenté ci-dessus passe en revue les cellules de la colonne G ( de bas en haut )
lorsqu'il détecte une cellule différente à la ligne i-1 , il sélectionne les données à partir de la ligne i jusqu'en bas et les déplace d'une ligne vers le bas