Tri excel

O

Olivier

Guest
Bonjour,

J'utilise un tableau dans excel avec beaucoup de lignes et colonnes.
Après un tri avec clé sur la première colonne, j'aimerais affecter chaque changement dans un onglet différent (par exemple, les 2 premières lignes correspondant à un même nom dans un onglet, les 3 prochaines correspondant à un autre nom dans un onglet différent, etc...)

Existe t'il une fonction simple pour réaliser cette opération ou alors peut on me renseigner pour programmer une macro (je ne connais pas le mode programmation).

Espérant m'être fait comprendre, j'attends vos réponses.

D'avance merci.
 
O

Olivier

Guest
Bonsoir.

Je joins un exemple de ce que je veux faire. Cela sera plus explicite je pense.

Qu'entends tu par filtre avancé?

Je pensais faire des sous-totaux dans la colonne 1 afin de pouvoir scinder les différents noms mais je ne sais pas (ou si c'est possible) envoyer les sous-totaux par nom dans des onglets différents.

Merci d'avance.

Olivier
 

Pièces jointes

  • Exemple.zip
    1.9 KB · Affichages: 21
  • Exemple.zip
    1.9 KB · Affichages: 22
  • Exemple.zip
    1.9 KB · Affichages: 18
O

Olivier

Guest
Merci beaucoup Ti.

Sur l'exemple ca fonctionne impeccablement bien. Je vais l'essayer dans mon application.

Ne connaissant rien aux macros, il me suffit simplement de faire un copier coller de macro, non?

Peux tu aussi me l'expliquer (si c'est simple) et savoir comment on programme (ou tu as peut être des liens expliquant cela)?

En tout cas je te remercie encore!

A bientôt.

Amicalement.

Olivier.
 
O

Olivier

Guest
Rebonjour!

Dans mon tableau qui a 20 colonnes et 283 lignes, la macro ne s'execute pas et me donne erreur 1004. En débogant le message, on trouve cette erreur:
Sub Distribution()
'Ti
Dim Plage As Range, Cel As Range, Ligne As Range
Dim Precedent
Application.ScreenUpdating = False

With Worksheets("Feuil1")
'A4 = première cellule de la colonne A
Set Plage = .Range("A4", .Range("A65536").End(xlUp))
End With

'détermination rapide de la plage à trier. Le tableau
'doit être bien délimité
Plage.CurrentRegion.Sort key1:=Plage.Cells(1, 1) <------ ERREUR
MENTIONNEE ICI.

For Each Cel In Plage
If Cel <> Precedent Then
With ThisWorkbook
With .Worksheets.Add(After:=Worksheets(.Worksheets.Count))
Set Ligne = .[A1]
.Name = Cel
End With
End With
End If

Precedent = Cel
If Cel <> "" Then
Cel.EntireRow.Copy Ligne

Peux tu m'en dire plus?

Merci d'avance.

Olivier
 
O

Olivier

Guest
Ca y est.

En enlevant cette ligne, plus de message d'erreur mais hélas je n'ai pas tout compris à ta macro ni à la facon de la faire fonctionner. J'ai fait des copier-coller dans VBA...

Mais le résultat est là: la répartition s'est faite correctement.

Si tu as des livres ou des sites en référence pour me perfectionner je suis preneur.

Encore un grand merci.

Amicalement

Olivier
 

Discussions similaires

Réponses
59
Affichages
4 K