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

Fermé
Ndenin - 14 août 2015 à 13:44
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 - 16 août 2015 à 19:02
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 samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
14 août 2015 à 15:30
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 vendredi 14 août 2015 Statut Membre Dernière intervention 4 septembre 2015 3
Modifié par NicolasVBA le 14/08/2015 à 15:37
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
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
Je ne vois pas trop l'intérêt, mais il te suffit de retirer ce bout de code : "EntireRow."
0
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
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
Bonjour,
Est-ce qu'il ne manque pas une ligne: Else?
If.....Then......Else
0
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 vendredi 14 août 2015 Statut Membre Dernière intervention 4 septembre 2015 3
16 août 2015 à 13:41
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 samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
16 août 2015 à 19:02
Bonjour NicolasVBA,

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

A+
0