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 :

copie du résultat d'un filtre sur une autre feuille


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 14
    Points : 16
    Points
    16
    Par défaut copie du résultat d'un filtre sur une autre feuille
    Bonjour,

    mon problème est le suivant :

    dans un classeur excel j'ai deux feuilles que je nommerai A et B.

    la feuille A :
    se compose de 25 colonnes (soit de A à Y) qui sont sujettes à des saisies hebdomadaires ponctuelles.
    Sur les en-têtes des 5 premières colonnes (de A à G) je dois appliquer des filtres dont les valeurs des plages des colonnes E à Y (à l'exception des titres de colonnes) doivent être reportées en C11:W22 de la feuille B.

    mon souhait :
    actionner un bouton de commande à partir de la feuille A pour successivement effacer le contenu des valeurs (pas les formats) de la plage C11:W22 de la feuille B puis copier le contenu des valeurs filtrées de la feuille A plage E à Y dont le nombre de lignes est variable selon les filtres mais ne pouvant toutefois pas excéder 12 lignes (12 lignes maximum étant prévues à cet effet dans la feuille B dans la plage C11:W22).

    Dans une précédente discussion nommée code VBA dans un classeur EXCEL, j'ai joins un fichier excel qui illustre bien le problème.

    Merci d'avance pour vos lumières

    totogabi


  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    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 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Bonjour,

    Si tu cites un fil, donne son adresse, ou alors la date et l'heure du message c'est beaucoup plus facile à retrouver. Quelle est la feuille devant recevoir les données ?
    Note que je t'ai fourni la macro suivante pour le classeur "bibliotheque.xlsx" qu'il suffit d'adapter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub CopieFiltre()
        Dim Plage As Range
        [formulaire!B6:F17].ClearContents
        With Sheets("prêts")
            If Application.Subtotal(103, .AutoFilter.Range) > 5 Then
                Set Plage = .AutoFilter.Range.Offset(, 2).Resize(, .AutoFilter.Range.Columns.Count _
                    - 2).SpecialCells(xlCellTypeVisible)
                Plage.Select
                Plage.Copy [formulaire!C5]
            End If
        End With
    End Sub

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 14
    Points : 16
    Points
    16
    Par défaut copie du résultat d'un filtre sur une autre feuille
    Salut Daniel,

    je me doutais que tu réagirais à cette discussion.

    J'avais en effet posé le problème il y a quelques jours mais je me suis heurté à l'en-tête des colonnes et à la copie des plages de données.
    Voici donc attaché à ma réponse le fichier : club de sport.xls qui montre précisément ce que j'attends de ce code VBA.



    Merci d'avance


    totogabi

    Fichiers attachés Fichiers attachés

  4. #4
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Réponse dans l'autre fil !

    Hervé.

  5. #5
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    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 207
    Points : 14 362
    Points
    14 362
    Par défaut
    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 MAJFormulaire()
        Dim Plage As Range
        [Formulaire!C11:W22].ClearContents
        With Sheets("Saisie")
            Set Plage = .AutoFilter.Range.Offset(1, 8)
            Set Plage = Plage.Resize(Plage.Rows.Count - 1, 15)
            If Application.Subtotal(103, Plage) > 0 Then
                Plage.SpecialCells(xlCellTypeVisible).Copy
                [Formulaire!C11].PasteSpecial xlPasteValues
                [Formulaire!D4] = .Cells(Plage.SpecialCells(xlCellTypeVisible)(1, 1).Row, 1)
                [Formulaire!J6] = .Cells(Plage.SpecialCells(xlCellTypeVisible)(1, 1).Row, 3)
            End If
        End With
    End Sub

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 14
    Points : 16
    Points
    16
    Par défaut
    Enfin la solution à ce problème est résolue...

    En fait j'ai juste rectifié le code car il y avait un petit décalage.
    Pour tout te dire, je maîtrise beaucoup plus Access mais je commence à me pencher de plus en plus sur excel côté VBA.

    Encore merci

    cordialement

    totogabi


  7. #7
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    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 207
    Points : 14 362
    Points
    14 362
    Par défaut
    @ x109488 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Plage = .AutoFilter.Range.Offset(1, 8)
    Que représente "Offset(1, 8)" ?

    Daniel

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

Discussions similaires

  1. copie d'une selection filtrée sur une autre feuille
    Par biboulou dans le forum Excel
    Réponses: 2
    Dernier message: 15/08/2011, 15h44
  2. Copie-colle sur une autre feuille
    Par mytho dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/07/2010, 16h55
  3. Garder le résultat d'un tirage sur une autre ligne
    Par jacfld49 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 01/02/2010, 17h47
  4. Copie de données filtrées dans une autre feuille
    Par papagei2 dans le forum Excel
    Réponses: 1
    Dernier message: 30/08/2007, 16h16
  5. Copie d'une colonne de cellules sur une autre feuille
    Par maxou59 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/12/2006, 10h06

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