BrianLux
Messages postés24Date d'inscriptionjeudi 3 juillet 2008StatutMembreDernière intervention 2 septembre 2008
-
5 août 2008 à 10:01
BrianLux
Messages postés24Date d'inscriptionjeudi 3 juillet 2008StatutMembreDernière intervention 2 septembre 2008
-
6 août 2008 à 15:24
Bonjour à tous,
voilà mon problème j'ai deux colonne, elles ont par moment les mêmes données mais desfois elles diffèrent. je dois trier ces colonnes de façon à ce que les données egaux soit l'une en face de l'autre petite explication :
A B C D E
b b 1 b 1
l l 1 l 1
v v 31 s 1 s s 1 v 31
Legende:
- A,B.C.D.E sont les colonnes d'excel
- en minuscule mes valeurs
A,B et C vont ensemble et provienne d'un fichiers externe
ils en va de même pour D et E
j'aurais bien aimer savoir comment effectuer un tri et obtenir " v v 31 " en face de " v 31 " (pareil pour " s " )
j'ai essayer le tri alphabétique (qui marche) mais qui ne fonctionne plu quand il y a plus de données dans A B C ou dans D et E ( et donc des cases vides dans l'une ou dans l'autre ). Alors j'ai chercher ..chercher ...et chercher , et j'en suis arriver à la conclusion d'utiliser (peut-être) un filtre qui me permetrai (et même si il y a des cases vides ) de trier mes données ( et par la suite les copiers dans une autre sheet). La encore je cherche ...recherche ... et a force de recherche, d'une très grande patience et bcp de temps utilisés pour presque rien, je me suis dit " allons voir nos experts en la matière " alors me voici venus à vous à l'écoute de toute proposition. peut-être existe t - il un tri avec condition ou un tri avec des caractéristiques bien défini (ayant essayé le tri personnalisé d'excel il ne convient pas très bien étant débutant je l'utilise peut-être mal). je bloque sur ce problème et sans ceci mn programme serais terminer :-s
informations complémentaires: je travail sous excel 2003, c'est mon premier programme vba(ou du moins l'un des premiers).
BrianLux
Messages postés24Date d'inscriptionjeudi 3 juillet 2008StatutMembreDernière intervention 2 septembre 2008 6 août 2008 à 15:24
je te remercie pour ton aide meme si c'est encore fastidieux comme la manière que j'avais trouver il me semble impossible de faire le tri avec une fonction " toute faite " cependant mon programme mets dans l'ordre alphabétique et quand une lettre n'existe pas il mets des cases vides c'est un peu mieux dsl de pas etre venu te le dire avant j'ai trouver sa ce matin ( enfin trouver .. je l'ai écrit ce matin et il me rest un peu de bug donc .. )
merci de t'être intérsser a mon problème en tout cas ;)
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 5 août 2008 à 13:45
Fais une recherche sur ce forum avec les mots de ton propre titre ("svp de l'aide")...
Je suis certain de ce que tu vas trouver ainsi des quantités de questions et réponses ...
Laquelle de ces discussions de conviendra est bien évidemment une toute autre paire de manches, n'est-ce pas ?
Te répondre (ou tenter de le faire ici) aboutirait à une situation parfaitement identique...
Conclusion ? (devine).
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 5 août 2008 à 13:54
Salut,
Tu commences d' abord par résoudre le problème de la non
corresponadance.
Pour celà :
1° Si tu compares B C avec D E, commences d' abord par intervertire les colonnes de la première liste.Ce qui te donneras
B C A.
2° Tu copies la colonne A dans la 2ième liste.
3° Tu parcours ta première liste et tu compares chaque élément
avec ceux de la 2ième.
Quant tu trouves pas, tu ajoutes en dernier, mais tu le marque.
4° Tu fais de même en comparant la 2ième liste avec la 1ière.
ce qui te donnes en somme:
B C A D E A
b 1 b b 1 b
l 1 i l 1 l
v 31 v s 1 s
s 1 s v 31 v
f r 2 m n
B C A D E A
b 1 b b 1 b
l 1 i l 1 l
v 31 v s 1 s
s 1 s v 31 v
f r 2 m n
m n f r 2
5° Tu tries les deux listes sur le même critère. B C A D E A
b 1 b b 1 b
l 1 i l 1 l
v 31 v s 1 s
s 1 s v 31 v
f r 2 f r 2
m n m n
6° Maintenant tu réordonner la liste A et supprimer la colonne en plus dans la 2ième liste.
A+
<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
Vous n’avez pas trouvé la réponse que vous recherchez ?
BrianLux
Messages postés24Date d'inscriptionjeudi 3 juillet 2008StatutMembreDernière intervention 2 septembre 2008 5 août 2008 à 15:34
je n'ai pas tout compris a ce que tu as dit LIBRE_MAX mais sais deja pas mal de m'avoir repondu dsl je continue a chercher j'ai trouver une solution très fastidieuse et très peu orthodoxes et (elle n'a que des inconvénients) qui pourrais etre très longue. je crée une fonction de tri : Filter_tri ( ) qui va me trier mes colonnes par ordre alphabétique puis je crée une autre fonction filter_booking qui prends la colonne qui m'interesse dans A B C donc B et je compare sa valeur avec la colonne qui m'interresse donc D :
si égale ---> du code
si <> -------> du code
si B index < D index ------> du code
si B index > D index ------> du code
mais le problème c'est qu'avec tout ce code sa risque de tourner très lentement je ne l'ai pas encore ecrit mais sa devrais marcher (je n'ai fait que filter_tri( ) pour l'instant) si vous avez besoin de plus d'informations n'hésiter pas je suis a votre dispo parce que la je m'en sort pas surtout que c'est sur la ligne droite quoi ...
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 5 août 2008 à 16:12
je ne sais ce que tu mets comme code
si B < D ou si B <> D, toujours est - il que puisque tu tries
sur la deuxième colonne du fichier un, l' idée était de permuter
les colonnes. Au lieu de A B C, on obtienderait B C A.
Si tu tries par la suite par ordre alphabétique tu obtiens:
B C A
b 1 b
l 1 l
s 1 s
v 31 v
Pour ton deuxième fichier ça sera
D E
b 1
l 1
s 1
v 31
B correspond bien à D et C à E.
Reste à savoir quoi faire si des lignes éxistent dans le premier fixchieret pas dans le second et inversement.Il y' aura toujours un décalage.
<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
BrianLux
Messages postés24Date d'inscriptionjeudi 3 juillet 2008StatutMembreDernière intervention 2 septembre 2008 5 août 2008 à 17:47
j'obtiens deja le tri par ordre alphabétique sans permuter donc beh je m'embete pas je tri direct nan le problème c'est quand j'essaie de trier et qu'il n'y a pas de données dans l'un ou dans l'autre et ces aléatoire (donc une macro qui reconnaisse, qui n'as pas de donner ) j'ai réfléchi dans tout les sens et avec mon niveau actuel beh je suis bloqué ... même si vous me donner pas le code c'est pas grave mais metté moi sur la voie par exemple en me parlant des filtres tri (les diferentes fonction quelque chose qui puisse me mettre dans la constructuin d'une macro rapide ou de vitesse normal ^^ je vous remercie
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 5 août 2008 à 18:33
3° Tu parcours ta première liste et tu compares chaque élément
avec ceux de la 2ième.
Quant tu trouves pas, tu ajoutes en dernier, mais tule marques.
4° Tu fais de même en comparant la 2ième liste avec la 1ière.
Listes de départ
B C A
b 1 b
l 1 l
r 2h q
s 1 s
v 31 v
D E
b 1
c p
l 1
s 1
v 31
r h q se trouve en premier et pas en second
c p se trouve en second et pas en premier
-Ajout en fin de liste
B C A
b 1 b
l 1 l
r 2h q
s 1 s
v 31 v
c p/
D E
b 1
c p
l 1
s 1
v 31
r 2h/
-Tri
B C A
b 1 b
c p/
l 1 l
r 2h q
s 1 s
v 31 v
D E
b 1
c p
l 1
r 2h/
s 1
v 31
Maintenant tu peux remplacer les valeurs marquées par une chaine vide ou autre.
B C A
b 1 b
l 1 l
r 2h q
s 1 s
v 31 v
D E
b 1
c p
l 1
s 1
v 31
Les valeurs égalent restent l' une en face de l' autre.
Quand au code, en ce qui me concerne, n' y compte pas trop.Pour la seule raison que je suis pas en bonne terme avec VBA.
<hr />... Y'en a même qui disent qu'ils l'ont vu voler.