Trier des données qui sont sur 2 lignes

Trier des données qui sont sur 2 lignes - VB/VBA/VBS - Programmation

Marsh Posté le 20-08-2006 à 17:09:54    

Bonjour à toutes et à tous,
 
Je vais donner un exemple qui ressemble à mon vrai problème:
 
Disons que j'ai voulu mettre dans une feuille excel le nom de mes contact et que j'ai mis les diverses informations de ces contact sur 2 lignes concécutives. Chaque contact est donc caractérisé par ces 2 lignes.
Et ce que je voudrais rajouter à la fin du code d'une macro, ça serait de trier tous les contacts par orde croissant de date de naissance (par exemple), élément présent dans une des cellules des 2 lignes.
Le problème si on utilise le trie d'Excel, il va séparer les 2 lignes d'un contact.
 
Pensez bien que j'ai essayer de trouver des astuces par moi-même pendant quelques heures, mais comme je ne suis pas informaticien ni programmeur dans l'ame, je n'ai peut etre pas pensé à quelque chose d'évident. Il faut surement passer par une étape de copie intermédiaire dans une autre feuille, faire le trie (je ne sais pas comment), et coller le résultat dans la feuille initiale.
 
Note: oui, il faut bien 2 lignes de données. Et oui j'ai besoin de ça sur Excel et non Access (l'exemple de la bdd de contacts est vraiment un exemple pour comprendre) :)
 
MErci à ceux qui ont même une petite idée ou une piste sur laquelle je pourrai essayer d'avancer de m'aider, et puis je vous avez la solution, n'hésitez pas à partager votre savoir-faire.

Reply

Marsh Posté le 20-08-2006 à 17:09:54   

Reply

Marsh Posté le 20-08-2006 à 19:59:28    

dans excel , le mode de tri avancé ne te convient p as ?

Reply

Marsh Posté le 20-08-2006 à 20:15:56    

bonsoir,
C'est méconnaître profondément le fonctionnement d'Excel !
Si tu as vraiment besoin de plus de 256 colonnes utilise 2 feuilles et un index commun à chaque enregistrement.
 
Dépannage :  
Dans cet exemple nous supposerons que ta base de données commence à la colonne "C" et que tu souhaites trier sur la colonne "D"  
Nous supposons que ta base de données comporte 26 éléments donc 52 lignes (plus une ligne de champ)
Les colonnes A et B nous servirons à quelques calculs intermédiaires
Colonne A (création d'un index commun)  
Une 'tite macro fera celà très bien : La recopie incrémenté ne marche pas...
1
1
2
2
3
3
 
Trier la colonne D  
Chaque deuxième ligne est reportée à la fin dans l'ordre initial
Recopier la colonne D en B
La moitié du bas est vide
 
La première partie triée va donc de A2 à D14 (ou HW14 peu importe)
en B15 mettre cette formule :

Code :
  1. =RECHERCHEV(A18;A$2:D$14;4;0)


et la dupliquer (de B16 à B27) par recopie incrémentée.
Faire un copier/coller spécial valeur de cette même zone sur place pour figer les valeurs.
YAPUKA trier sur la colonne B puis A pour obtenir le résultat escompté.
Supprimer alors les 2 colonnes temporaires.
 
Edit :
salut jp : Tri avancé ?  :heink:  
j'ai bonne mine moi...
ET puis d'abord t'as vu jouer ça ou ?
Je connais le filtre élaboré, mais le tri avancé ?
 :pt1cable:  
A+


Message édité par galopin01 le 21-08-2006 à 07:20:48
Reply

Marsh Posté le 20-08-2006 à 21:26:06    

Ok merci pour l'exemple "Dépannage" ;-)
Je vais essayer cette méthode demain
 
Merci encore pour la rapidité de réponse
 
PS jpcheck : euh c'est quoi le mode de trie avancée ?

Reply

Marsh Posté le 21-08-2006 à 07:22:31    

Attention, il y avait une 'tite coquille : lire  
et la dupliquer (de B16 à B27) par recopie incrémentée.  

Reply

Marsh Posté le 21-08-2006 à 09:37:31    


Citation :


Edit :
salut jp : Tri avancé ?  :heink:  
j'ai bonne mine moi...
ET puis d'abord t'as vu jouer ça ou ?
Je connais le filtre élaboré, mais le tri avancé ?
 :pt1cable:  
A+


ouais bon ca va, j'avais pas le nom exact sur le bout de la langue ^^
Mea maxima culpa

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed