Copie de lignes dans différentes feuilles

Bonjour,

Suite à des changements d'entête de colonne, mon fichier ne fonctionne plus.

Le but est de copier les lignes dans les diverses feuilles en fonction du code postal.

Merci d'avance de votre aide !

Bonjour

Vous fonctionnez comment ?

  • Clique sur le bouton extraction pour exécuter la macro Suppression vide
  • Vous vérifiez avec le filtre auto que les vides ou 0 dans la colonne 33 --> Colonne AG ??? --> cela concerne les prénoms cela

Cordialement

Bonjour,

Je crois que j'ai compris où se situe le problème.

Dans la feuille paramètre en C2, cela pointe sur la mauvaise colonne. Cela devrait être ceci :

=ET(lecture_all_simple!O2>=Param!$B$1;lecture_all_simple!O2<=Param!$B$2)

Le O remplace le J. Mais j'ai beau changé, le J revient systématiquement.

Avez-vous une idée ?

Re

Cette formule est générée par le code "Suppression_Vide_Zero" et sert à vérifier que O2 est supérieure à la cellule B1 de la feuille "Param".

Le O remplace le J. Mais j'ai beau changé, le J revient systématiquement.

Oui c'est le code qui vous renvoie cela. Ssi vous voulez utiliser la colonne O, changez les 7 par 12 dans la formule --> "ActiveCell.FormulaR1C1 = AND...."

A quoi sert cette formule ??

Par contre vous ne répondez pas à la question que je vous ai posée.

Crdlt

Je vous ai ajouté un ancien fichier qui fonctionnait et qui permet de voir comment cela fonctionne.

En cliquant sur la macro "Extraction", les lignes , en fonction du Code postal, sont réparties dans les différentes feuilles.

Selon vos indications, j'ai changé la colonne mais cela plante toujours.

2old-extraction.zip (364.15 Ko)

re

Ok par rapport à votre fichier OLD, les changements apportés sont

  • Colonne J devient O.
  • La colonne 33 (AG - NombrePlaces) dans l'ancien fichier devient la colonne 51 (AY - Nbre_Places_Libres)

Sur cette base le code pourrait être ceci :

Sub Suppression_Vide_Zero()
'
' Suppression_Vide_Zero Macro
' Suppression des lignes comportant un zéro colonne AG NombrePlaces Colonne No 33

With ActiveSheet
    .Range("A1").AutoFilter
    .Range("$A$1:$BF$" & .Range("A" & .Rows.Count).End(xlUp).Row).AutoFilter Field:=51, Criteria1:="=0", Operator:=xlOr, Criteria2:="="
    .Range(.Rows("2:3"), .Rows("2:3").End(xlDown)).Delete Shift:=xlUp
    .Range("$A$1:$BF$" & .Range("A" & .Rows.Count).End(xlUp).Row).AutoFilter Field:=51
    .Range("A1").AutoFilter
End With

With Sheets("Param")
    .Unprotect
    .Range("C2").FormulaR1C1 = _
        "=AND(lecture_all_simple!RC[12]>=Param!R1C2,lecture_all_simple!RC[12]<=Param!R2C2)"
    .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End With

Sheets("lecture_all_simple").Select

End Sub

A voir sur votre fichier si c'est cela qui est cherché pour le résultat de cette macro

Après on peut regarder la macro extraction

Crdlt

Pour le test, j'ai ajouté des lignes avec 0 dans la colonne Nbre_Places_Attribuees. Elles ont bien été supprimées. Merci !

Alors volontiers, si on peut regarder la macro Extraction.

Re

Dans votre feuille Paramètres, il y a un "code postal formation", cela correspond bien à la colonne AC dans la feuille "Lecture all simple" ?

Cette question car je suppose que l'on peut se baser sur ce code pour copier les données de la feuille "Lecture all simple" vers les feuilles BASE, OUEST, ....

Oui, c'est correct

re

Ok mais je ne vois pas la référence des feuilles dans la feuille "Lecture...."

Exemple : 1110 est sur la ville Morges (ligne 6 dans la feuille "lecture simple"). Les données de cette ligne vont dans quelle feuille ?

Cela ne devrait pas être VENOGE en H1 de la feuille "Param" au lieu de MORGES ??

Vous avez raison, VENOGE remplace MORGES et OUEST remplace NYON.

Il faut prendre le Code_postale_Formation de la feuille lecture_all_simple pour aller chercher dans la feuille Param où se trouve ce Code_Postal_Formation. Une fois trouvé, par exemple 1110, on sait que cette ligne doit être mise dans la feuille VENOGE.

Re

Ok pour cette précision

Avant de vous envoyez le fichier terminé, vous confirmez que vous vous basez sur que les lignes de la colonne Nbre_Places_Libres (colonne AY) qui doivent être différente de 0 ?? Si 0, on supprime la ligne. Juste ?

Crdlt

Oui , c'est bien cela.

Re

Votre fichier en retour.

Il vous suffit de cliquer sur le bouton Extraction sur la feuille Liste_all_simple

Crdlt

Le lien -->

MERCI !

A première vue, cela m'a l'air OK. Il y a quelques colonnes qui sont vides alors que dans le fichier d'origine, elles sont remplies (Ex : Date_MiseAJour), mais je vais voir si j'arrive à me débrouiller tout seul.

Merci encore

Bonjour

Il y a quelques colonnes qui sont vides alors que dans le fichier d'origine,

Effectivement, je viens de voir.

Dans la macro extraction, remplacez ces quelques lignes entre .Range("AC" & cel.Row & ":AD" & cel.Row .... et COL=0

Sheets(ville).Range("L" & dlg) = .Range("AK" & cel.Row)
Sheets(ville).Range("M" & dlg) = .Range("AY" & cel.Row)
Sheets(ville).Range("N" & dlg) = .Range("BA" & cel.Row)
.Range("BE" & cel.Row).Copy Sheets(ville).Range("P" & dlg)
Sheets(ville).Range("O" & dlg) = .Range("AW" & cel.Row)

A noter que les données en colonnes A, B, C ne servent plus

Je regarde un peu aussi pour votre fichier qui est trop lourd pour ce que vous avez comme données

Crdlt

Edit : Ok pour le fichier lourd, je viens de voir. Faites ceci : Supprimer la feuille BASE ensuit vous en recréez une en dupliquant la feuille EST ou LAUSANNE par exemple. Du coup votre fichier passe de 2.5Mo à 55k !!

Rechercher des sujets similaires à "copie lignes differentes feuilles"