IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

trier et copier des données sur une autre feuille excel


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 11
    Points : 5
    Points
    5
    Par défaut trier et copier des données sur une autre feuille excel
    Bonjour,


    Voilà j'ai beau chercher à trouver une solution pour mon cas mais je n'ai rien trouvé donc je me retourne vers vous pour me donner un coup de main.

    J'ai un tableau dans une feuille excel 2002 qui contient plusieurs cellules j'aimerais creer un macro une fois appuyer sur le bouton "TRIER" pour copier toutes les lignes qui contient au moins une croix dans la plage données de la colonne E à AK dans une autre feuille en gardant la meme structure du tableau dans l'autre feuille. "en gros trier avant de copier"

    Comme c'est dur à expliquer je joint un exemple et le fichier en question !
    Dans mon tableau il y a une croix dans les case F7 et H7 donc je veux avoir toute la ligne 7 sur l'autre feuille et pareil pour la ligne 8 car il y a une croix dans la case G8.

    Toutes suggestions seront les bienvenues !

    Merci d'avance
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 907
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 907
    Points : 28 882
    Points
    28 882
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pour le tri, regarde cette procédure de tri, je pense que cela devrait t'aider
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bonjour,

    Je ne comprends pas ce que entends par "trier".

    Sinon, la copie se fait comme ceci, à moins qu'il faille copier les lignes d'entête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub tri()
        Dim Plage As Range, Ligne As Long, Ctr As Long
        Ctr = 0
        With Sheets("Feuil1")
            Ligne = .[E:AK].Find("*", , , , xlByRows, xlPrevious).Row
            For i = 6 To Ligne
                If Application.CountIf(.Rows(i), "X") > 0 Then
                    Ctr = Ctr + 1
                    .Rows(i).Copy Sheets("Feuil2").Cells(Ctr, 1)
                End If
            Next i
        End With
    End Sub
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Merci bc c'est vraiment gentil de votre part.
    Daniel, je veux garder les entêtes aussi avec leur couleurs s'il vous plaît. En gros je veux garder la meme structure de la feuil1 dans la feuil2 sauf que la feuil2 est remplie par les lignes avec des croix.

    Merci d'avance.

  5. #5
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Alors :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub tri()
        Dim Plage As Range, Ligne As Long, Ctr As Long
        Ctr = 5
        With Sheets("Feuil1")
            .[A1:AK5].Copy Sheets("Feuil2").Cells(1, 1)
            Ligne = .[E:AK].Find("*", , , , xlByRows, xlPrevious).Row
            For i = 6 To Ligne
                If Application.CountIf(.Rows(i), "X") > 0 Then
                    Ctr = Ctr + 1
                    .Rows(i).Copy Sheets("Feuil2").Cells(Ctr, 1)
                End If
            Next i
        End With
    End Sub
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Merci bc, ça marche tres bien. une petite dernière question s'il vous plaît, est ce que c est possible de ne pas copier le bouton dans la feuil2 ?

    Comment faire pour effacer la feuil2 automatiquement quand j'appuye sur le bouton Trier avant de copier les lignes en question, comme ça, ça se met à jour automatiquement car sur un gros fichier, il m'a garder les autres lignes aussi et il m a mis les lignes avec des croix en premier ?

    Merci d'avance.

  7. #7
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Pour ne pas copier le bouton, fais un clic droit dessus, choisis "format de contrôle, onglet "Propriétés et coche "ne pas déplacer ou dimensionner avec les cellules". et pour effacer Feuil2 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub tri()
        Dim Plage As Range, Ligne As Long, Ctr As Long
        Ctr = 5
        Sheets("Feuil2").Cells.Clear
        With Sheets("Feuil1")
            .[A1:AK5].Copy Sheets("Feuil2").Cells(1, 1)
            Ligne = .[E:AK].Find("*", , , , xlByRows, xlPrevious).Row
            For i = 6 To Ligne
                If Application.CountIf(.Rows(i), "X") > 0 Then
                    Ctr = Ctr + 1
                    .Rows(i).Copy Sheets("Feuil2").Cells(Ctr, 1)
                End If
            Next i
        End With
    End Sub
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Merci bc Daniel, vraiment vous m'avez rendu un grand service, je vous remercie encore une fois.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Toutes versions] Vba: Copier des lignes sur une autre feuille
    Par yassxavi dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/02/2015, 11h48
  2. [XL-2003] Transcription des données sur une autre feuille
    Par yfchauer dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/05/2014, 09h47
  3. Réponses: 2
    Dernier message: 16/12/2011, 19h20
  4. insert des données sur une autre table
    Par dngaya dans le forum Adaptive Server Enterprise
    Réponses: 2
    Dernier message: 18/02/2009, 15h21
  5. Excel-copier des lignes sur une autre feuille
    Par petecul dans le forum Excel
    Réponses: 7
    Dernier message: 13/09/2007, 02h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo