Extraction de données filtrées vers d'autres feuilles avec macro

Militaire29900

XLDnaute Nouveau
Bonjour, je travaille comme AED dans un collège et je prépare un fichier pour la rentrée prochaine. Celui-ci est fait à partir d'une extraction de la liste global du collège, comportant les noms, prénoms, statuts, option, groupes, etc..., et pour laquelle je souhaite extraire les données par classes et de copier coller toutes les informations sur une nouvelle feuille "classe". Pour information il y a 15 classes dans le collège. J'ai réussi tant bien que mal à filtrer, extraire toutes les informations pour une première classe (même si je n'ai plus les traits de mes lignes et colonnes), mais cela ne fonctionne pas pour la seconde et sur la feuille globale, la liste reste filtrée et les pointillés verts clignote (dû au copier-coller. J'essaie tant que je peux me débrouiller avec VBA mais cela n'est pas chose facile.
Je vous joint le fichier en pièce jointe.
Merci à qui pourra ou pourrait m'aider.
Très cordialement
 

BrunoM45

XLDnaute Barbatruc
Bonjour,
Et en tant qu'AED, tu n'as pas le temps de faire ton copier/coller pour les 15 classes !?
 

zebanx

XLDnaute Accro
Bonjour Militaire 29900, brunoM45;)

Un essai mais qui est surement trop long dans son traitement (je n'ai extrait que la base pour le code sinon sur le fichier de départ, le temps de traitement était plus long x 2 au moins).
Il n'y a qu'une macro dans la feuille à lancer par ALT + F8.

XL-ment
zebanx
 

Staple1600

XLDnaute Barbatruc
Bonjour

Juste pour info (extrait de la charte d' XLD)
Pour tous

1 - Conformité RGPD
Tout message ou fichier déposé sur ce site ne doit pas comporter de données à caractère personnel (DCP).
Il convient d’anonymiser toutes les données permettant d’identifier directement ou indirectement une personne.
XLD ne saurait être tenu responsable au cas où un visiteur du site posterait des données non conformes à la législation en vigueur.
Si vous détectez une non conformité, merci d'alerter le webmaster de ce site : webmaster@excel-downloads.com, nous supprimerons les données dans les plus brefs délais.
XLD passe en Xenforo2 mais cela n'influe pas sur les mauvaises habitudes ;)

PS: Salutations aux "anciens" d'XLD présents dans ce fil.
 

zebanx

XLDnaute Accro
Bonjour Staple1600, JB

@JB
Merci bcp!
Beaucoup plus rapide comme ça avec le "filtre élaboré" car le premier code bouclait sur chaque valeur donc... :eek:
J'utilisais ce code pour déconsolider de manière habituelle mais il est vraiment valable sur de toutes petites BD.

Bref, je remets un deuxième fichier avec une présentation plus conforme à l'attendu du #1
Et un tri par ordre des feuilles de présentation.

@Staple1600
Content de te revoir après ce long pèlerinage loin de XLD.:cool:

@+
zebanx
 

Staple1600

XLDnaute Barbatruc
Bonjour zebank ;)

Quid de ma citation de mon précédent message?
On laisse David se dépatouiller avec la RGPD tout seul si le hasard veut qu'il passe dans le fil?
 

BOISGONTIER

XLDnaute Barbatruc
Avec le filtre élaboré, en utilisant un modèle (le fichier est anonymisé ).

VB:
Sub Extrait()
  Set f = Sheets("BD")
  Application.DisplayAlerts = False
  Application.ScreenUpdating = False
  f.[L1] = f.[E1]     ' colonne critère (adapter)
  '--- Liste des ID
  f.[A1].CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=f.[L1], Unique:=True
  For Each c In f.Range("L2:L" & f.[L65000].End(xlUp).Row)   ' pour chaque service
     f.[L2] = c.Value
     On Error Resume Next
     Sheets(CStr(c.Value)).Delete
     On Error GoTo 0
     Sheets("Modèle").Copy After:=Sheets(Sheets.Count)   ' création
     ActiveSheet.Name = CStr(c.Value)
     '-- extraction
     f.[A1].CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=f.[L1:L2], CopyToRange:=[A4:E4]
     [A1] = "Classe " & Left(c.Value, 1)
     [A2] = c.Value
   Next c
   f.Select
End Sub
Boisgontier
 

Fichiers joints

Dernière édition:
Bonjour,
J’ai supprimé toutes les pièces jointes car les données n’etaient pas anonymisées.
Merci à tous (demandeurs comme répondeurs) de bien faire attention à cela.
Je compte sur vous. ;)
Bonne journee
Davis
 

Militaire29900

XLDnaute Nouveau
Bonsoir à tous et tout d'abord je m'excuse pour ne pas avoir anonymisé la liste. Deuxièmement merci à tous pour votre aide. Pour BOISGONTIER, peux tu juste me dire comment modifier le "modèle" dans la macro afin de rajouter une ligne entre la ligne 3 et 4. Et encore merci.
 

BOISGONTIER

XLDnaute Barbatruc
Nv version en PJ

VB:
Sub Extrait()
  Set f = Sheets("BD")
  Application.DisplayAlerts = False
  Application.ScreenUpdating = False
  f.[L1] = f.[E1]     ' colonne critère (adapter)
  '--- Liste des ID
  f.[A1].CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=f.[L1], Unique:=True
  For Each c In f.Range("L2:L" & f.[L65000].End(xlUp).Row)   ' pour chaque service
     f.[L2] = c.Value
     On Error Resume Next
     Sheets(CStr(c.Value)).Delete
     On Error GoTo 0
     Sheets("Modèle").Copy After:=Sheets(Sheets.Count)   ' création
     ActiveSheet.Name = CStr(c.Value)
     '-- extraction
     f.[A1].CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=f.[L1:L2], CopyToRange:=[A5:E5]
     [A1] = "Classe " & Left(c.Value, 1) & "eme"
     [A2] = c.Value
   Next c
   f.Select
End Sub
PS: l'utilisation d'un modèle permet à l'utilisateur de modifier la présentation sans l'intervention d'un programmeur et simplifie la programmation VBA.

Boisgontier
 

Fichiers joints

Dernière édition:

Militaire29900

XLDnaute Nouveau
Bonsoir et encore merci pour votre excellent travail à JB et à toi, juste une petite chose "ZEBANX", j'ai simplement besoin que dans ton fichier "FiltreModèle", sur mes feuilles et donc sur le modèle, les colonnes soit après Nom_Prénom dans l'ordre suivant, Statut, Latin, Option et groupe de maths. Peux-tu me remettre cela dans l'ordre ? Je pense que c'est dans la formule de la macro.
Cordialement et merci.
 

zebanx

XLDnaute Accro
Bonjour à tous,

Les colonnes ont été mis dans l'ordre souhaité sur le fichier ci-joint.
Les macros n'ont pas eu besoin d'être modifiées.

@JB
Merci pour ces différentes propositions. Formidable boulot, je ne me rappelais pas que le filtre élaboré permettait directement de choisir les colonnes avec le titre, c'est super!

Bonne journée
 

Fichiers joints

Discussions similaires


Haut Bas