Excel Downloads
Forum

Précédent   Excel Downloads Forums > Archives > Forum Excel Downloads - Archives

Advertisement

 
 
LinkBack Outils de la discussion
Vieux 19/01/2005, 19h10   #1 (permalink)
lionel
Guest
 
Messages: n/a
Par défaut tri evolué

Salut,

J'ai créer un tableau de 10 lignes et de 20 colonnes. la deuxieme colonne contient des lettres A , B , C, ... . J'aimerais faire un tri et que lorsque, par exemple, excel lit la lettre A sur une ligne, il copie cette ligne sur la feuille 2, lorsque excel lit B sur une autre ligne, il la copie sur la feuille 3, etc... . Est ce que cela est possible? Si oui, comment faire?

Merci par avance.
 
ANNONCES
Vieux 20/01/2005, 02h33   #2 (permalink)
myDearFriend
Guest
 
Messages: n/a
Par défaut Re: tri evolué

Bonsoir lionel,


En pièce jointe, un exemple pour t'aider à résoudre ton problème :

Public Sub Traitement()
Dim TabTemp As Variant
Dim F As Byte, L As Long, C As Byte
   Application.ScreenUpdating = False
   'Charge les données dans un tableau variant temporaire
   With Sheets("Tableau")
      TabTemp = .Range(.Cells(1, 1), .Cells(10, 20)).Value
   End With
   'Pour chaque ligne
   For F = 1 To 10
      'Active ou crée la feuille cible
      ActFeuille TabTemp(F, 2)
      With ActiveSheet
        &n bsp;'Détermine la première ligne vide et y copie les données
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;L = IIf(.Range("B1") <> "", .Range("B65536").End(xlUp).Row + 1, 1)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;For C = 1 To 20
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;.Cells(L, C).Value = TabTemp(F, C)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;Next C
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End With
&nbsp;&nbsp;&nbsp;Next F
&nbsp;&nbsp;&nbsp;Application.ScreenUpdating = True
End Sub

Private Function ActFeuille(ByVal T As String) As Worksheet
'Active la feuille de destination et la crée si n'existe pas
&nbsp;&nbsp;&nbsp;With ThisWorkbook
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;On Error Resume Next
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set ActFeuille = .Sheets(T)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;On Error GoTo 0
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If ActFeuille Is Nothing Then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;.Sheets.Add after:=.Sheets(Sheets.Count)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;.ActiveSheet.Name = T
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;Set ActFeuille = .ActiveSheet
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ActFeuille.Act ivate
&nbsp;&nbsp;&nbsp;End With
End Function


Cordialement.

Didier_mDF
Fichiers attachés
Type de fichier : zip PourLionel.zip (16,4 Ko, 1 affichages)
 
Vieux 20/01/2005, 18h10   #3 (permalink)
lionel
Guest
 
Messages: n/a
Par défaut Re: tri evolué

Salut MyDearFriend,

Je te remercie pour cette aide, mais ce code ne gère le cas ou la lettre A, B, ou C n'est écrit qu'une seule fois. Je te mets en pièce jointe le cas que j'ai à traiter. Dans ce cas, il faut que je classe les lignes du tableau suivant la colonne D. Par exemple, quand excel lit CE1 G, il crée une feuille CE1 G ou il met toutes les lignes où dans la colonne D, il y a CE1 G. De même pour les autres cas.
Cependant, est il possible de créer un code pour que excel gère ce genre de cas suivant un nombre inconnu de lignes et de colonnes (enfin le nombre est connu mais j'aimerais qu'il le gère en ne rentrant pas dans le code un nombre fini de lignes, seul excel peut le savoir suivant leur nombre entré).

Je te remercie par avance de ton aide et good bye my Dear Friend.
 
Vieux 20/01/2005, 18h13   #4 (permalink)
lionel
Guest
 
Messages: n/a
Par défaut Re: tri evolué

Salut MyDearFriend,

je te réexpédie la pièce jointe car elle n'est pas partie la première fois et je te réexplique mon cas.
Dans ce cas, il faut que je classe les lignes du tableau suivant la colonne D. Par exemple, quand excel lit CE1 G, il crée une feuille CE1 G ou il met toutes les lignes où dans la colonne D, il y a CE1 G. De même pour les autres cas.
Cependant, est il possible de créer un code pour que excel gère ce genre de cas suivant un nombre inconnu de lignes et de colonnes (enfin le nombre est connu mais j'aimerais qu'il le gère en ne rentrant pas dans le code un nombre fini de lignes, seul excel peut le savoir suivant leur nombre entré).

Je te remercie par avance de ton aide et good bye my Dear Friend.
Fichiers attachés
Type de fichier : zip ListingInscriptionsJanv2005.zip (14,9 Ko, 1 affichages)
 
Vieux 20/01/2005, 20h17   #5 (permalink)
myDearFriend
Guest
 
Messages: n/a
Par défaut Re: tri evolué

Bonsoir Lionel, le Forum.


"mais ce code ne gère que le cas ou la lettre A, B, ou C n'est écrit qu'une seule fois"

Heu... visiblement, tu n'as pas vraiment observé l'exemple que j'avais joint, car, bien que tu ne l'aies même pas suggéré dans ta question, la gestion d'une telle situation était prévue et, si tu prends la peine de rouvrir ce précédent classeur, tu verras que la lettre D apparaît 3 fois dans la colonne, et qu'après lancement de la macro, la feuille D contient 3 lignes !

Concernant ta deuxième question, si tu me dis que tu as un tableau qui fait 10 lignes sur 20 colonnnes, alors je fais mon possible pour te monter un exemple avec 10 lignes et 20 colonnes, maintenant si tu me dis qu'en fait le nombre de lignes devraient être variable, alors c'est à mon tour de te poser une question : pourquoi ne pas le dire depuis le début ?

Ne le prends pas mal lionel, mais il y a des fois où ça devient difficile de faire, de défaire puis de refaire un morceau de code tout simplement parce que le problème n'est pas vraiment défini au départ...

Enfin, peut-être que l'incompréhension vient de ma part et que tu n'y es pour rien... et pour te prouver que je ne t'en veux pas pour autant, tu trouveras ci-joint ton fichier modifié selon tes souhaits...


Cordialement.

Didier_mDF
Fichiers attachés
Type de fichier : zip ListingInscriptionsJanv2005.zip (17,6 Ko, 1 affichages)
 
Vieux 21/01/2005, 13h36   #6 (permalink)
lionel
Guest
 
Messages: n/a
Par défaut Re: tri evolué

Salut MyDearFriend,

Peut être me suis je mal exprimé, mais en tout cas, je tiens à te remercier pour la rapidité de la réponse et pour ta sympathie.
Encore mille mercis.

Lionel.
 
ANNONCES
 

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +2. Il est actuellement 07h53.


(C) 2006 Excel Downloads