Excel VBA : Trier les lignes

Résolu/Fermé
Signaler
-
Messages postés
10197
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
14 janvier 2022
-
Bonjour à tous!!

Je cherche à trier les lignes d'un fichier afin de les regrouper par "pays":

J'ai besoin que les lignes du fichier soient réunies en fonction de la colonne B qui contient les numéros de dossier (8 caractères en tout) dont les 4 premiers caractères déterminent le pays, en fonction de la liste ci dessous:

Pour chaque série de 4 premiers caractères, il peut y avoir plusieurs lignes avec des dossiers différents (les 4 derniers chiffres changent), donc à regrouper.

On veut ensemble tout ce qui Commence par:
L8CA
L8ZA
SKCA
SKZA

puis ensemble tout ce qui Commence par:
M5CA
M5ZA

puis ensemble tout ce qui Commence par:
D9CA
D9ZA
CYCA
CYZA

puis ensemble tout ce qui Commence par:
BGCA
BGZA

puis ensemble tout ce qui Commence par:
ROCA
ROZA

puis ensemble tout ce qui Commence par:
74CA
74ZA

puis ensemble tout ce qui Commence par:
A3CA
A3ZA

puis ensemble tout ce qui Commence par:
A1CA
A1ZA
A7CA
A7ZA
MTCA
MTZA
LTCA
LTZA
LVCA
LVZA
EECA
EEZA
SICA
SIZA

puis ensemble tout ce qui Commence par:
79CA
79ZA

puis ensemble tout ce qui Commence par:
EGCA
EGZA
KWCA
KWZA
AECA
AEZA
A5CA
A5ZA

Faire bouger donc toutes la ligne à chaque fois pour regrouper par pays en fonction de la colonne B (ça commence ligne 2 car la ligne 1 est pour les titres.)

(Il peut y avoir beaucoup de lignes)

N'hésitez pas à me poser des questions s'il y a des choses qui ne sont pas claires.

Merci beaucoup beaucoup d'avance pour votre aide précieuse car j'ai essayé mais je ne réussi pas !!

.

11 réponses

Commence par mettre ton fichier en ligne via cjoint.com et de nous donner le lien ici... merci ;)
0
Coucou !!

Voici un exemple d'un fichier type (si ce n'est qu'il peut y avoir beaucoup + de lignes

http://www.cijoint.fr/cjlink.php?file=cj201109/cijfccsgnT.xls

Donc il faut trier par les 4 premiers caractères contenus colonne B
(PS je me suis trompé ci dessus, les dossier (colonne B contiennent en tout 10 caractère: les 4 premiers qui nous interressent correspondent au pays et les 6 dernier au dossier dans le pays).

Merci beaucoup!
0
Messages postés
10197
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
14 janvier 2022
2 275
bonjour

avec macro,
est ce que ça correpond?

https://www.cjoint.com/?0IDrGcLK09d

RQ1. adaptes la feuille criteres
RQ2. modifies les constantes

bonne suite
0
Bonjour CCM81 et merci beaucoup !!

Alors ça fonctionne parfaitement sur un poste avec excel 2007!! Merci pour ça !!


Mais j'ai un problème sur mon poste utilisant excel 2003:
lorsque je le lance "macro3" (ou clique sur ok)
ça me met :
erreur d'execution "1004"
Erreur définie par l'application ou l'objet

et quand je clique sur débogage ça me me surligne en rouge toute la partie suivante de la première macro:

Selection.Sort Key1:=Range("N2"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal



Et du coup ça ne me met pas les numéros dans la colonne N et donc ne trie pas..

Merci beaucoup encore par avance! !!
0
Messages postés
10197
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
14 janvier 2022
2 275
bonjour Aude,

la macro3 n'a pas a être lancée en fait tu peux supprimer ce module 2 (une scorie que j'ai oublié d'effacer)
comment as tu implanté le code du module 1 et de la feuille Ise dans ton application?
c'est le clic sur le bouton OK qui active la procedure Trier du module 1
en principe quand les données ont ete indexées (numero en colonne N) , un message box te demande si tu veux trier, tu réponds oui et ça doit fonctionner (mon poste est sous excel 2003)

a+
0
En fait voila un exemple pour que ça soit plus parlant !:

http://www.cijoint.fr/cjlink.php?file=cj201109/cijn5bdKF9.xls

J'ai mis des données et lorsque je clique sur OK, ça me met une erreur de compilation variable (uniquement sous excel 2003, sous 2007 ça fonctionne!!)

Est ce que tu reproduis l'erreur sur ton poste ?

Merci beaucoup a toi !!! :)
0
J'ai cliquez sur OK et ça fonctionne ... (je suis sous 2003)
0
C'est moi et mes yeux, le pc sur lequel ça ne fonctionne pas est sous excel 2000 pardon !!

et voila l'erreur:

http://www.cijoint.fr/cjlink.php?file=cj201109/cija34xV54.jpg

Une idée ? :)
0
Messages postés
10197
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
14 janvier 2022
2 275
re

chez moi ça fonctionne (excel 2003)
cette erreur de compilation, où est elle ?

a+
0
Messages postés
10197
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
14 janvier 2022
2 275
RQ.

dans le code il y a un commentaire mal approprié (une scorie de ma 1° idée)
remplacer
' ventiler ....
par
' indexer colonne N feuille Ise
ça fera plus propre
0
Messages postés
10197
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
14 janvier 2022
2 275
re

tentes d'enlever ce dernier paramètre DataOption1 ....
ça fonctionne sans sous excel 2003
0
Comme ça (en enlevant dataoption1) ça fonctionne partout !!!!!!


MERCIIIIII CCM81, vraiment grand merci ;))
0
Messages postés
10197
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
14 janvier 2022
2 275
re

il ne te reste qu'à mettre le problème à résolu

bonne suite
0