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 :

Suppression dans un filtre élaboré de données issues d'une matrice [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Femme Profil pro
    Responsable de service informatique
    Inscrit en
    Juillet 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2015
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Suppression dans un filtre élaboré de données issues d'une matrice
    Bonjour et merci d'avance pour celles et ceux qui prendront le temps de me lire voire de m'aider via leurs réponses.

    Rien que trouver un titre parlant et explicite est une gageure !

    J'ai cherché en vain la solution avec Mr Google, aussi je me tourne vers vous en comptant sur vos expériences.
    exposé de mon problème :
    Pour faire simple, j'ai un onglet qui contient une liste de quelques comptes clients que je souhaite suivre : CLI001, CLI002, CLI007 par exemple. Cette liste peut évoluer avec le temps, raison pour laquelle je ne code pas "en dur" les critères de filtre dans la macro.
    Dans un 2ème onglet, j'ai un listing de lignes de commandes avec dans une colonne tous les comptes clients concernés (et il y en a bien plus que dans mon 1er onglet).
    Je cherche par macro à ne conserver dans mon 2ème onglet que les lignes qui sont consacrées aux clients du 1er onglet (et donc supprimer toutes les autres).

    Sous excel 2007, j'ai résolu le souci en quelques étapes : je créé une matrice qui mémorise les données de l'onglet 1, j'applique comme critère de filtre cette matrice au filtre élaboré de l'onglet 2, je colore les données obtenues, je défiltre puis refiltre sur les données sans couleur, les sélectionne et je les supprime, je re-défiltre et le tour est joué.
    Ce n'est peut être pas très élégant comme méthode, mais ça a l'avantage de fonctionner (en fait, je n'ai pas trouvé comment on peut dire dans la macro un truc du genre "criteria <> matrice", et c'est donc la solution de contournement que j'ai imaginé).

    Mon souci, c'est que la majorité de mes utilisateurs est sous excel 2003 et les filtres élaborés sur les couleurs, excel 2003 ne connait pas... et il est bien entendu hors de question d'acquérir des licences 2007 supplémentaires.

    Je suis preneur de toutes vos solutions qui me permettront d'aboutir, via une macro, au résultat souhaité.

    Pour le moment, sous excel 2007, ma macro (épurée de tout le superflu), c'est ça:
    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
    sub RasLeBol()
    Dim tableau(1 To 100) As Variant
    Sheets("clients à maintenir").Select
    Range("A1").Select
    fin_ligne = Cells(Rows.Count, 1).End(xlUp).Row
    For i = 1 To fin_ligne
    	tableau(i) = Cells(i, 1)
    Next i
    Sheets("orderbook_A saisir").Select
    Range("E1").Select
    Selection.AutoFilter
    ActiveSheet.Range("$A$5:$BO$500").AutoFilter Field:=2, Criteria1:=tableau, Operator:=xlFilterValues
    Range("b2:x" & Range("b65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible).EntireRow.Select
    	With Selection.Font
    	.Color = -16776961
    	.TintAndShade = 0
    	End With
    ActiveSheet.Range("$A$5:$BO$500").AutoFilter Field:=2, Operator:=xlFilterAutomaticFontColor
    Range("B2:x" & Range("b65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible).EntireRow.Delete
    Selection.AutoFilter Field:=2
    End Sub
    D'avance merci

  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 766
    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 766
    Points : 28 625
    Points
    28 625
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Dans ton titre tu évoques les filtres élaborés or tu utilises le filtre simple ou automatique d'excel.
    Je te suggère donc d'utiliser le filtre avancé ou élaboré d'excel qui permet de filtrer sur place ou d'exporter les données suivant critères et qui fonctionne pour les versions 2003 et suivantes.
    A lire Les filtres avancés ou élaborés dans Excel
    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
    Candidat au Club
    Femme Profil pro
    Responsable de service informatique
    Inscrit en
    Juillet 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2015
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Problème résolu en m'inspirant de l'article de Philippe Tulliez, qui m'a donné l'idée toute bête :
    En restant sur ce que j'avais déjà construit, plutôt que de chercher à supprimer des lignes non désirées dans l'onglet à traiter, le plus simple est de sélectionner les lignes souhaitées dans le-dit onglet et de copier-coller cette sélection dans un nouvel onglet.... C'était tout bête, mais parfois, on ne prend pas assez de recul !...

  4. #4
    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 766
    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 766
    Points : 28 625
    Points
    28 625
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    En restant sur ce que j'avais déjà construit, plutôt que de chercher à supprimer des lignes non désirées dans l'onglet à traiter, le plus simple est de sélectionner les lignes souhaitées dans le-dit onglet et de copier-coller cette sélection dans un nouvel onglet...
    Tu peux parfaitement copier directement les données filtrées dans l'autre feuille avec le filtre avancé, c'est bien décrit dans le tutoriel.
    N'oublie pas de mettre cette discussion comme résolue.
    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

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/04/2014, 16h19
  2. Réponses: 12
    Dernier message: 29/05/2008, 10h29
  3. Réponses: 1
    Dernier message: 28/03/2008, 15h49
  4. [FPDF] Mettre des données issues d'une requête dans l'entête
    Par zoom61 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 30/03/2007, 10h10
  5. Réponses: 6
    Dernier message: 01/06/2006, 15h11

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