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 de lignes conditionnée [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Décembre 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2013
    Messages : 10
    Par défaut Suppression de lignes conditionnée
    Bonjour,

    Je souhaite supprimer dans une feuille 1, des lignes dont une des cellules, ex dans colonne "c" ne contient pas une valeur listés dans la colonne "A" de la feuille 2.

    Merci pour votre aide.

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Si C1 de la feuille 1 est différent de A1 de la feuille 2 alors supprimer la ligne 1 de la feuille 1 ?

    Ou alors

    Si C1 de la feuille 1 n'est pas dans la colonne A de la feuille 2 alors supprimer ?

    Dans les deux cas, une boucle en partant de la dernière ligne un if et le tour est joué

  3. #3
    Membre averti
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Décembre 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2013
    Messages : 10
    Par défaut
    C'est le deuxième cas.

    J'utilise la macro suivante pour supprimer une ligne dont la cellule dans la colonne "c" est à zéro, par contre je ne sais pas comment remplacer le 0 par la liste contenu dans la colonne "a" de la feuille 2

    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 Macro1()
    ' Suppression 0
     
    Sheets("feuille 1").Select
        Dim n As Integer
        Application.ScreenUpdating = False
        For n = Range("G65536").End(xlUp).Row To 1 Step -1
            If ((Range("A" & n) = 0)) Then
            Rows(n).Delete
            End If
        Next n
     
     
    End Sub

  4. #4
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Au vu de ton niveau je te propose un code que tu pourras comprendre, il serait bien plus simple de faire un find...
    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
    Sub Macro1()
        Dim i As Integer
        Application.ScreenUpdating = False
        deleter = True
        With Sheets("feuille 1")
            For i = Range("C" & .Rows.Count).End(xlUp).Row To 1 Step -1
                For j = 1 To Sheets("feuille 2").Range("A" & .Rows.Count).End(xlUp).Row
                    If .Range("C" & i) = Sheets("feuille 2").Range("A" & j) Then
                        deleter = False
                    End If
                Next j
                If deleter = True Then
                    .Rows(i).Delete
                End If
                deleter = True
            Next i
        End With
        Application.ScreenUpdating = True
    End Sub

  5. #5
    Membre averti
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Décembre 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2013
    Messages : 10
    Par défaut
    Comme tu as pu le constater, je débute dans ce domaine.

    Effectivement, la macro que tu as fait fonctionne parfaitement.

    Encore merci

  6. #6
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour,

    un peu en retard, voici une alternative à la double boucle et à la méthode Find :
    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
    Sub DeleteRows()
        With Feuil2
            SRC = Application.Transpose(.Range("A1", .Cells(.Rows.Count, 1).End(xlUp)).Value)
        End With
     
        With Feuil1
            Application.ScreenUpdating = False
            AR = .Range("C1", .Cells(.Rows.Count, 3).End(xlUp)).Value
     
            For R& = UBound(AR) To 1 Step -1
                If AR(R, 1) > "" Then _
                    If IsError(Application.Match(AR(R, 1), SRC, 0)) Then .Rows(R).Delete
            Next
     
            Application.ScreenUpdating = True
        End With
    End Sub
    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé dans cette discussion …

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

Discussions similaires

  1. [RegEx] Suppression d'une ligne conditionnée par une expression
    Par supernova dans le forum Langage
    Réponses: 1
    Dernier message: 16/10/2010, 10h52
  2. Suppression de lignes dans un fichier
    Par bubu dans le forum Linux
    Réponses: 2
    Dernier message: 13/01/2005, 10h36
  3. Dbgrid : Comment interdire Suppression de Ligne
    Par Francis dans le forum Bases de données
    Réponses: 3
    Dernier message: 28/11/2004, 08h31
  4. Réponses: 4
    Dernier message: 02/07/2004, 19h14
  5. [VB.NET] Suppression de ligne dans un DataTable
    Par seemax dans le forum Windows Forms
    Réponses: 7
    Dernier message: 06/05/2004, 14h19

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