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 :

Filtre élaboré + Formule [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    apt
    apt est déconnecté
    Membre éclairé
    Inscrit en
    Mai 2002
    Messages
    867
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 867
    Par défaut Filtre élaboré + Formule
    Bonjour à tous,

    J'aimerais filtré les données en colonne A, dans la colonne E et cela selon la formule :
    en C1:C2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Column = 1 And Target.Count = 1 Then
            [A1:A5000].AdvancedFilter Action:=xlFilterCopy, Criteriarange:=[C1:C2], CopyToRange:=[E1], Unique:=True
     
            [E16:E100].Sort Key1:=[E2]
        End If
    End Sub
    Mais je n'arrive toujours pas

    Merci d'avance.

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Pas sur d'avoir bien compris.

    Le code ci dessous copie toutes les occurrences de la colonne A dans la E si celles ci commence par "T100"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim i As Long
     
    'Efface le précédent filtrage
    Range("E2:E" & Range("E" & Rows.Count).End(xlUp).Row).ClearContents
     
    'Filtres les données
    For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
        If Left(Range("A" & i).Value, 4) = "T100" Then
            Range("E" & Range("E" & Rows.Count).End(xlUp).Row + 1).Value = Range("A" & i).Value
        End If
    Next i

  3. #3
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    J’obtiens le résultat avec le filtre élaboré suivant :
    Copier vers un autre emplacement
    Plages : $A$1:$A$5000
    Zone de critères : $C$1:$C$2
    Copier dans : $E$1
    Extraction sans doublon

    En A1, C1 et E1 les en-têtes.
    En C2 la formule
    L’enregistreur de macro indique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("A1:A5000").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
            "C1:C2"), CopyToRange:=Range("E1"), Unique:=True
    Cordialement

  4. #4
    apt
    apt est déconnecté
    Membre éclairé
    Inscrit en
    Mai 2002
    Messages
    867
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 867
    Par défaut
    Bonjour Jérôme, gFZT82

    Je n'obtiens que les "T100-*", or j'aimerais obtenir tout les 4 caractères de la plage (A1:A5000)

    Colonne A

    T100-2
    T101-12
    T102-5
    T100-14
    T101-1
    T101-11
    T221-4

    Colonne E

    T100
    T101
    T102
    T221


  5. #5
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    Essaie avec ce code
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Option Explicit
    Sub Liste_SansDoublons()
    Dim DerLig As Long
    Dim Plage As Range
    Dim Cell As Range
    Dim Un As Collection
    Dim i As Long
        With Worksheets("Feuil1") 'A adapter
            DerLig = .Range("A" & .Rows.Count).End(xlUp).Row
            Set Plage = .Range("A2:A" & DerLig)
            Set Un = New Collection
            On Error Resume Next
            'Boucle sur la plage
            For Each Cell In Plage
                ' Ajoute le contenu de la cellule dans la collection
                If Cell <> "" Then Un.Add Left(Cell, 4), Left(CStr(Cell), 4)
            Next Cell
            On Error GoTo 0
            'Efface le précédent filtrage
            .Range("E2:E" & .Range("E" & .Rows.Count).End(xlUp).Row).ClearContents
            'Boucle sur les éléments de la collection.
            For i = 1 To Un.Count
                'Ecrit le résultat dans la colonne E
                .Range("E" & i + 1) = Un.Item(i)
            Next i
        End With
        Set Un = Nothing
        Set Plage = Nothing
    End Sub
    Cordialement.

  6. #6
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Je n'obtiens que les "T100-*", or j'aimerais obtenir tout les 4 caractères de la plage (A1:A5000)
    Avec quel code??

  7. #7
    apt
    apt est déconnecté
    Membre éclairé
    Inscrit en
    Mai 2002
    Messages
    867
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 867
    Par défaut
    Bonsoir Jérôme,

    Citation Envoyé par jfontaine Voir le message
    Avec quel code??
    pour vos deux codes en premiere réponse

  8. #8
    apt
    apt est déconnecté
    Membre éclairé
    Inscrit en
    Mai 2002
    Messages
    867
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 867
    Par défaut
    Bonsoir gFZT82,

    Citation Envoyé par gFZT82 Voir le message
    Bonjour,
    Essaie avec ce code
    Ca marche très bien.

    Mais, est-ce la Collection peut fonctionner pour deux colonnes A et B ?

    Comme ce post ICI

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/02/2009, 08h56
  2. [VBA-E] filtre élaboré
    Par MatMeuh dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/04/2006, 15h41
  3. Filtre élaboré Excel ds FCT automation Access
    Par MELINE dans le forum Access
    Réponses: 2
    Dernier message: 27/09/2005, 14h58
  4. Réponses: 2
    Dernier message: 26/09/2005, 16h08
  5. Insertion d'un filtre élaboré d'excel ds fonction automation
    Par MELINE dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/09/2005, 15h41

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