Comment extraire des données d'une feuille pour une autre

Ndenin -  
Gyrus Messages postés 3334 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai des feuilles excels avec la liste des candidats au Bac blanc, les notes par épreuves, les totaux, les moyennes, les Rangs et les Décisions du jury (Admis/Refusé) et enfin les Mentions (Bien,Assez bien, Passable...).
Je voudrais pouvoir extraire uniquement les "Admis" avec toutes les informations les concernant et les envoyer sur une autre feuille de façon automatique.
Je pense me faire comprendre.
Je vous remercie pour votre grande sollicitude.

A voir également:

4 réponses

Gyrus Messages postés 3334 Date d'inscription   Statut Membre Dernière intervention   526
 
Bonjour,

Tu devrais pouvoir faire cela avec un filtre avancé.

Si tu souhaites que t'aidions d'avantage, il faut que tu joignes un fichier à la demande. Ce fichier doit contenir les données utiles (non confidentielles) et doit être accompagné des explications nécessaires.

Pour joindre le fichier, tu peux utiliser https://www.cjoint.com/
Ensuite, reviens coller ici le lien donné par le site.

A+
0
NicolasVBA Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   3
 
Bonjour,

Malgré le peu d'explication, je me suis penché sur ton problème, et le code suivant devrait fonctionner en toute circonstance...

C'est pas des plus optimal, mais ça fonctionne, alors... :)

Sub test()

'Admettons que les données soient stockées sur la feuil1 et qu'on les colles sur Feuil2
'Admettons également que la première ligne contiennent les titres des colonnes

Dim ligne As Integer
ligne = 2

Sheets("Feuil1").Select

Dim derlig As Integer
derlig = Range("A" & Rows.Count).End(xlUp).Row

Dim dercol As Integer
dercol = Cells(1, Columns.Count).End(xlToLeft).Column

Sheets("Feuil1").Range("1:1").Copy
Sheets("Feuil2").Select
Range("A1").Select
ActiveSheet.Paste

Sheets("Feuil1").Select

For i = 2 To derlig
    For j = 1 To dercol

        If Cells(i, j).Value = "Admis" Then
' ou : If Cells(i, j).Value Like "*Admis*" Then

            Cells(i, j).EntireRow.Copy
            Sheets("Feuil2").Select
            Cells(ligne, 1).Select
            ActiveSheet.Paste
            ligne = ligne + 1
            Sheets("Feuil1").Select

        End If
    Next
Next

End Sub


Bonne journée !
Nicolas.

La cuillère n'existe pas !
0
Ndenin
 
La réponse fonctionne très bien du point de vue du transfert des données.
Mais ce ne sont pas tous les données qui doivent être déplacées; c'est seulement les "Admis" qui qui doivent se retrouver sur la feuil2.
Merci de me comprendre; je suis un grand débutant.
0
NicolasVBA
 
Je ne vois pas trop l'intérêt, mais il te suffit de retirer ce bout de code : "EntireRow."
0
Ndenin
 
Bonjour,
bien que j'ai retiré ce bout de code: "EntireRow",la macro continue de prendre toute la feuil1 et de la recopier sur la feuil2.
L'intérêt pour nous est que après un examen (BEPC, BAC,etc...) seule la liste des admis est affichée pour consultation par les intéressés.
Merci beaucoup pour votre sollicitude.
0
NicolasVBA
 
Bizarre. Ça fonctionnait chez moi...
Je pense que ça vient du fichier Excel ou de la version.
Normalement, cette macro permet bien de copier uniquement les lignes pour lesquels "Admis" existe quelque part sur cette même ligne.
J'ai fais un test chez moi, ça fonctionne.
0
Ndenin
 
Bonjour,
Est-ce qu'il ne manque pas une ligne: Else?
If.....Then......Else
0
Maurice
 
Bonjour
Avec un modele de ton fichier ca serait plus facile a comprendre

surtout pour faire une recape de plusieur onglet

A+
Maurice
0
NicolasVBA Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   3
 
Merci Gyrus pour l'astuce !

Voici le fichier de test que j'avais fait pour tester ma macro :
https://www.cjoint.com/c/EHqlOql0P1t

Le code n'est pas optimisé, voir même un peu lourd, mais pour les débutant je préfère des macros simples, quitte à être un peu lente.

Bonne journée !
0
Gyrus Messages postés 3334 Date d'inscription   Statut Membre Dernière intervention   526
 
Bonjour NicolasVBA,

Regarde celui-ci en retour.
Plus simple, ça ferait peur.
https://www.cjoint.com/c/EHqraXr8b1g

A+
0