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 :

MACRO Suppression de données [XL-97]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Femme Profil pro
    Ressources humaines
    Inscrit en
    Avril 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Avril 2016
    Messages : 4
    Par défaut MACRO Suppression de données
    Bonjour,

    Je ne maitrise pas la création de macros, même si je réussi plutôt bien à comprendre le fonctionnement des macros qui ont été déjà créées et je bloque sur un cas.

    Je souhaite créer une macro qui permettrait qu'elle interroge en colonne A d'une feuille 1 une liste de numéros. Si elle ne détecte pas le numéro en colonne A de la feuille 2 alors elle supprime les lignes complètes des numéros non retrouvés dans la feuille 1, si le numéro est trouvé, on conserve la ligne.

    J'espère avoir été assez explicite afin que vous puissiez m'apporter votre aide sans devoir joindre de fichier.

    Cordialement

  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
    13 173
    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 : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Autrement dit, il s'agit de supprimer des lignes suivant condition.
    La condition étant de matcher des numéros se trouvant dans une liste (ici en colonne A). Sujet fréquemment traité sur ce forum.

    Une des solutions est l'utilisation du filtre avancé d'excel (en VBA la méthode AdvancedFilter) avec un critère calculé.
    1. Si l'on souhaite supprimer toutes les lignes dont la référence se trouvant en colonne A de la feuille [Base_1] n'est pas présente dans la colonne A de la feuille nommée [Base_2]
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      =ESTNA(EQUIV(Base_1!A2;Base_2!$A$2:$A$29;0))
    2. Si l'on souhaite supprimer toutes les lignes dont la référence se trouvant en colonne A de la feuille [Base_2] n'est pas présente dans la colonne A de la feuille nommée [Base_1]
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      =NON(ESTNA(EQUIV(Base_1!A2;Base_2!$A$2:$A$29;0)))


    Les étapes à suivre
    1. Sélectionner la plage de données de la feuille nommée [Base_1]
    2. Faire un filtre sur place
    3. Supprimer toutes les lignes visibles à l'exception de la première ligne de titre
    4. Supprimer le filtre pour afficher les lignes non supprimée

    L'enregistreur de macro est une excellente solution pour commencer.

    A lire éventuellement 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
    Membre expérimenté Avatar de EBRAG
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Avril 2013
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 125
    Par défaut Petite macro...
    Bonjour,

    à tenter...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub SuppLignes()
      Dim lNumL As Long
      Dim oCellF2 As Range
      Worksheets("F1").Activate
      For lNumL = Range("Base_1").Rows.Count + Range("Base_1").Range("A1").Row To Range("Base_1").Range("A1").Row Step -1
        For Each oCellF2 In Worksheets("F2").Range("Liste_Num_A_Supprimer")
          If Cells(lNumL, 1) = oCellF2 Then
            Range("A" & lNumL).EntireRow.Delete
          End If
     
        Next
      Next
    End Sub
    http://garbe.joel.free.fr

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

Discussions similaires

  1. [VBA]macro Word avec données de MySQL
    Par Taz_8626 dans le forum VBA Word
    Réponses: 3
    Dernier message: 17/07/2006, 11h39
  2. Problème d'espace disponible après suppression de données
    Par carjo dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 24/03/2006, 15h48
  3. Suppression de données
    Par ledaker dans le forum Access
    Réponses: 3
    Dernier message: 10/03/2006, 17h10
  4. [C#] Limites de C# quand a la suppression de données
    Par Anonymous dans le forum Windows Forms
    Réponses: 6
    Dernier message: 28/01/2005, 23h18
  5. Suppression de données
    Par Julien Dufour dans le forum Langage SQL
    Réponses: 2
    Dernier message: 08/12/2004, 15h25

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