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 :

Filtrer et Copier des lignes en VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2008
    Messages : 15
    Points : 20
    Points
    20
    Par défaut Filtrer et Copier des lignes en VBA
    Je souhaite filtrer et copier uniquement les lignes filtrées.
    Actuellement, je filtre puis je copie de la ligne 1 à dernièreLigne mais si aucune ligne ne correspond au filtre alors, il prend toutes les lignes.

    Il y a sûrement un moyen plus élégant et efficace de faire.

    Voici mon code pour copier les lignes qui ont VRAI en colonne 14
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Rows.AutoFilter Field:=14, Criteria1:=True
    Range("A2", Cells(lastRow, 14)).Copy
    Merci pour l'aide

  2. #2
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    bonjour

    à tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Rows.AutoFilter Field:=14, Criteria1:=True
    Range("A2", Cells(lastRow, 14)).SpecialCells(xlCellTypeVisible).Copy
    Wilfried

  3. #3
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Bonjour,

    pour faire le filtrage et le copiage ensemble il existe le filtre élaboré.

    Pour cela regarde ici
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 48
    Points : 61
    Points
    61
    Par défaut
    Bonjour


    Une autre proposition
    (recopie des données filtrées en Feuil2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub MACRO_TEST()
    [A1].AutoFilter Field:=14, Criteria1:=True
    ActiveSheet.AutoFilter.Range.Copy Feuil2.Range("A1")
    End Sub


    J.L

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2008
    Messages : 15
    Points : 20
    Points
    20
    Par défaut
    Merci à tous, tout ceci est très instructif et intéressant.

    Avant de lire tout ceci, J'ai aussi eu le réflexe de tester le nombre de ligne et le code suivant m'a tiré d'affaire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
                    Rows.AutoFilter Field:=14, Criteria1:=True
                    lastfilterRow = Range(["A65535"]).End(xlUp).Row
     
                    If lastfilterRow > 1 Then _
                      Range("A2", Cells(lastfilterRow, 14)).Copy _
                            Destination:=bilanSheet.Cells(1, 1)
    Merci

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

Discussions similaires

  1. [XL-2007] filtrer et copier des données à partir d'un fichier XL en VBA
    Par aminee1666 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 13/06/2011, 21h05
  2. [XL-2007] copier des lignes d'une feuille à une autre et appliquer des filtres avec VBA
    Par Malek713 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/11/2010, 19h46
  3. VBA EXCEL - Copier des ligne vers un autre calseur.
    Par patine31 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/03/2007, 12h46
  4. [VBA-Excel] copier des lignes de données d'un fichier à un autre
    Par ash_rmy dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/07/2006, 10h17
  5. [VBA EXCEL] Copier des lignes
    Par ben7777 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/07/2006, 18h22

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