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 des valeurs en Feuil1 par rapport à une liste de valeurs en Feuil2


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Février 2009
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 48
    Points : 41
    Points
    41
    Par défaut Suppression des valeurs en Feuil1 par rapport à une liste de valeurs en Feuil2
    Bonjour à toutes et à tous,

    Voici mon petit problème, j'ai des logiciels sur ma feuil1 dans la colonne A et la quantité de ceux-ci en colonne B.
    Je souhaite supprimer certaines des valeurs de la feuil1 par rapport à une liste de logiciels présente en feuil2 sur la colonne A. En gros si une valeur de réference de ma feuil2 est aussi présente en feuil1, elle doit être supprimer.
    J'ai essayé différentes techniques via des recherches dans ma liste de réference en feuil2 pour la suppression des valeurs en feuil1, des recherches par rapport au contenu d'une cellule et tous mes essais ne sont pas fructueux. Aucuns d'eux ne me fait la suppression des valeurs de la feuil1.
    Quelqu'un aurait-il une piste ou un petit conseil pour m'aider sur ce problème?
    D'avance merci.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Points : 723
    Points
    723
    Par défaut
    Bonjour,

    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
    Dim FL1 As Worksheet, FL2 As Worksheet
    Dim Valeur As Variant, c As Range
    Dim NoLigne As Long, DerLig As Long
        Set FL1 = Worksheets("DATA1")
        Set FL2 = Worksheets("DATA2")
        NoLigne = 1
        Do
            If Not FL2.Cells(NoLigne, 1) = "" Then
                Valeur = FL2.Cells(NoLigne, 1)
                Do
                    With FL1.Range("A" & NoLigne + 1, [A65536].End(xlUp))
                        DerLig = 0
                        Set c = .Find(Valeur, LookIn:=xlValues, LookAt:=xlWhole)
                        If Not c Is Nothing Then
                            If c.Row > NoLigne Then
     
                                    DerLig = c.Row
                                    c.EntireRow.Delete
     
                            End If
                        End If
                        Set c = Nothing
                    End With
                Loop While DerLig > NoLigne
            End If
            NoLigne = NoLigne + 1
        Loop While NoLigne < FL2.Range("A65536").End(xlUp).Row
    Ca devrait faire ton bonheur, copie-colle cela tel quel et dis-moi si ça fonctionne.

    EDIT : change quand même le nom de tes 2 feuilles

    Ah oui, j'ai oublié de te dire, cela tient compte des doublons, au cas où t'en aurais besoin
    DeaD

  3. #3
    Membre du Club
    Inscrit en
    Février 2009
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 48
    Points : 41
    Points
    41
    Par défaut
    Ca fonctionne super bien oui. C'est exactement ce qu'il me fallait merci. Par contre le code ne tient pas compte de la dernière valeur de la feuil2, du coup la feuil1 conserve la dernière valeur de la liste contenu en feuil2.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Points : 723
    Points
    723
    Par défaut
    Re !

    Remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Loop While NoLigne < FL2.Range("A65536").End(xlUp).Row
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Loop While NoLigne <= FL2.Range("A65536").End(xlUp).Row
    et dis moi si c'est mieux maintenant.

    Pense au petit aussi

    Bonne aprèm !
    DeaD

  5. #5
    Membre du Club
    Inscrit en
    Février 2009
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 48
    Points : 41
    Points
    41
    Par défaut
    Bien vu ça prend bien en compte la dernière ligne.
    Un grand merci à toi pour cette aide rapide et efficace.
    Bonne aprem à toi aussi.

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

Discussions similaires

  1. [XL-2010] Afficher des données par rapport à une liste de mois
    Par Lepetitlezard51 dans le forum Excel
    Réponses: 5
    Dernier message: 05/12/2014, 23h36
  2. Réponses: 4
    Dernier message: 11/08/2011, 10h46
  3. Réponses: 4
    Dernier message: 14/03/2011, 10h23
  4. Réponses: 2
    Dernier message: 20/11/2009, 15h13
  5. Réponses: 1
    Dernier message: 22/04/2008, 20h35

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