Couper x lignes dès que la ligne commence par le mot "Lieux" en Ai ?

beoper

XLDnaute Junior
Bonjour à tous,

J'aimerais créer une macro qui ferait la chose suivante :

En commençant par le bas : Couper x lignes dès que la ligne commence par le mot "Lieux" en Ai.
Puis coller ces x lignes dans le bon onglet "1", ou "2"... si la ligne i est égale à la ligne 1,2.. de l'onglet "Liste_entetes".

Merci d'avance ;)

ps: ci-joint le fichier avant le tri : "avant_tri.xls" et le fichier avec les résultats souhaités "apres_tri"
 

Pièces jointes

  • avant_tri.xls
    43.5 KB · Affichages: 35
  • apres_tri.xls
    41 KB · Affichages: 40

Efgé

XLDnaute Barbatruc
Re : Couper x lignes dès que la ligne commence par le mot "Lieux" en Ai ?

Bonjour beoper _ une proposition a tester _ Il faut que le champ lcf8 soit toujours rempli si il existe _ Cordialement
 

Pièces jointes

  • Tri(2).xls
    50 KB · Affichages: 40
  • Tri(2).xls
    50 KB · Affichages: 41
  • Tri(2).xls
    50 KB · Affichages: 39

beoper

XLDnaute Junior
Re : Couper x lignes dès que la ligne commence par le mot "Lieux" en Ai ?

Bonjour Efgé,

Merci beaucoup pour votre réponse. çà fonctionne nickel pour l'exemple que j'ai donné. ;)

Mais en fait ce que je n'ai pas précisé (je m'en excuse) c'est que :
- j'ai 20 onglets avec à chaque fois une entête différente et on pas 2.
- Et que j'ai également plus de 10000 lignes.

nb: Au maximum il y a dans l'onglet "atrier" 12 colonnes au total et au minimum 4 colonnes.
[Et au maximum il y a 51 lignes pour chaque ligne commençant par "Lieux" (ligne "Lieux" incluse).]

J'arrive à modifier le début de votre macro comme suit mais pour la reste je suis bloqué.

Code:
Sub atest()
Dim i&
Dim FDest As Worksheet
Dim EnTete
Sheets("Liste_entetes").Rows(1).Copy Sheets("[B]1[/B]").Cells(1, 1)
Sheets("Liste_entetes").Rows(2).Copy Sheets("[B]2[/B]").Cells(1, 1)
Sheets("Liste_entetes").Rows(2).Copy Sheets("[B]3[/B]").Cells(1, 1)
Sheets("Liste_entetes").Rows(2).Copy Sheets("[B]4[/B]").Cells(1, 1)
...etc...
Sheets("Liste_entetes").Rows(2).Copy Sheets("[B]20[/B]").Cells(1, 1)
With Sheets("atrier")


Merci d'avance ;)
Bien cordialement
 

Efgé

XLDnaute Barbatruc
Re : Couper x lignes dès que la ligne commence par le mot "Lieux" en Ai ?

Re_ Sur quoi peut on s'appuyer pour faire la différence de destination des lignes ? _ Mets un fichier avec les différents types d'enregistrements à copier et leurs destinations _ D'autre part, vu ta macro du post précédent, il semble que toutes les feuilles aient le même en tête saur la première _ A te re lire _ Cordialement
 

beoper

XLDnaute Junior
Re : Couper x lignes dès que la ligne commence par le mot "Lieux" en Ai ?

Re,

Re_ Sur quoi peut on s'appuyer pour faire la différence de destination des lignes ? _ Mets un fichier avec les différents types d'enregistrements à copier et leurs destinations _

Voilà j'ai rajouté des couleurs pour que cela soit plus clair (enfin j'espère !) : en vert les 3 cellules d'entête qui se répètent de partout [donc on peut s'appuyer sur la cellule "Lieux" en A(i)].
Et j'ai rajouté un onglet (oui je ne suis pas encore à 20 mais l'idée est là amha car il y a le nombre min et max de chaque colonne - toutefois merci de me dire si cela ne suffit pas et je corrigerais).


D'autre part, vu ta macro du post précédent, il semble que toutes les feuilles aient le même en tête saur la première _ A te re lire _ Cordialement

Oups! erreurs de ma part ! J'essaie de corriger mais je ne suis pas sûr de ce que je fais !

Sub atest()
Dim i&
Dim FDest As Worksheet
Dim EnTete
Sheets("Liste_entetes").Rows(1).Copy Sheets("1").Cells(1, 1)
Sheets("Liste_entetes").Rows(2).Copy Sheets("2").Cells(1, 1)
Sheets("Liste_entetes").Rows(3).Copy Sheets("3").Cells(1, 1)
Sheets("Liste_entetes").Rows(4).Copy Sheets("4").Cells(1, 1)
...etc...
Sheets("Liste_entetes").Rows(20).Copy Sheets("20").Cells(1, 1)
With Sheets("atrier")

Merci d'avance,
Cordialement
 

Pièces jointes

  • apres_tri01.xls
    72 KB · Affichages: 40
  • avant_tri01.xls
    55 KB · Affichages: 114

Efgé

XLDnaute Barbatruc
Re : Couper x lignes dès que la ligne commence par le mot "Lieux" en Ai ?

Re_ je change tout _ Création des feuilles au fur et à mesure avec les en têtes qui se trouvent dans la feuille à trier quelque soit le nombre de feuilles final et même si les tableaux ne sont pas dans le bon ordre _ Après je ne sais plus... Cordialement
 

Pièces jointes

  • apres_tri01(3).xls
    51.5 KB · Affichages: 55

beoper

XLDnaute Junior
Re : Couper x lignes dès que la ligne commence par le mot "Lieux" en Ai ?

Re,
Merci beaucoup .;)

Désolé mais je vois que mon exemple n'était pas encore fidèle ! ;(
En effet j'ai également des lignes d’entêtes qui ont le même nombre de colonnes.
J'ai rajouté des données dans l'onglet "atrier" à partir de la ligne 94 et de la ligne 218 (un nouvel entête cf. couleur rose).

Encore avec mes excuses et merci d'avance ;)
Cordialement
 

Pièces jointes

  • avant_tri02.xls
    75.5 KB · Affichages: 31
  • apres_tri02.xls
    103.5 KB · Affichages: 39

Efgé

XLDnaute Barbatruc
Re : Couper x lignes dès que la ligne commence par le mot "Lieux" en Ai ?

Re_ Désolé du retard, réunion.... _ Une nouvelle mouture, qui crée les feuilles avec le nom du quatrième champs de chaque tableau_ Avec une fonction (d'Isabelle, que je salut) qui supprime les caractères interdits dans les noms de feuilles (au cas ou...) _ Cordialement
 

Pièces jointes

  • Tri(4).xls
    66.5 KB · Affichages: 42
  • Tri(4).xls
    66.5 KB · Affichages: 52

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 333
Membres
103 519
dernier inscrit
Thomas_grc11