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 :

supprimer des lignes en fonction de la valeur de la cellule d'une colonne [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2012
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 50
    Points : 29
    Points
    29
    Par défaut supprimer des lignes en fonction de la valeur de la cellule d'une colonne
    Bonjour,

    j'ai un fichier Exel composé d'une feuille suite à une importation d'une table d'un fichier Access et je voudrais faire du tri dans mes lignes.

    Je voudrais faire une macro qui me permette de supprimer les lignes entières dans ma feuille si la cellule de la colonne "VISIBLE" = FAUX et également supprimer les lignes entières dont la valeur de la cellule de la colonne COMMUNE = "Corréze" ou "Charente", ou "Charente Maritime".

    Vous trouverez le fichier ici :

    Dans mon fichier il n'y a que quelques lignes, or ma feuille contient entre 1000 et 1500 lignes.

    Merci d'avance.

  2. #2
    Membre régulier
    Homme Profil pro
    Salarié
    Inscrit en
    Septembre 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Salarié

    Informations forums :
    Inscription : Septembre 2012
    Messages : 49
    Points : 72
    Points
    72
    Par défaut
    Bonjour,

    J'ai fais le code ci-dessous avec les hypothèses suivantes :
    - La colonne VISIBLE est la colonne A
    - La colonne COMMUNE est la colonne B
    - Le département de la Corrèze est réellement écrit avec un 'é' dans ton fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub sup_lignes()
     
    For a = 2 To Range("A10000").End(xlUp).row
        If Range("A" & a) = "FAUX" Then
            Range(a & ":" & a).Select
            Selection.Delete Shift:=xlUp
        ElseIf Range("B" & a) = "Corréze" Or "Charente" Or "Charente-Maritime" Then
            Range(a & ":" & a).Select
            Selection.Delete Shift:=xlUp
        End If
    Next
     
    End Sub
    Il y a peu être plus efficace, car passer sur 1000 ou 1500 lignes, c'est un peu long. Mais le plus facile c'est de faire ça.

    A+
    Alex

  3. #3
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Voici le code que je te propose. Pour ma part, celui-ci cherche automatiquement le numéro de colonne sur la ligne 1 qui possède VISIBLE ou COMMUNE.

    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
    Sub Delete()
    Dim Tbl(1 To 2) As String
    Dim test As Range
     
    Tbl(1) = "VISIBLE"
    Tbl(2) = "COMMUNE"
     
    With Worksheets("Feuil1")
        For i = 1 To UBound(Tbl)
            Set test = .Rows(1).Find(Tbl(i), LookIn:=xlFormulas, lookat:=xlWhole)
            For j = 1 To .Columns(test.Column).Find("*", , , , xlByColumns, xlPrevious).Row
                If UCase(test.Offset(j, 0).Value) = "FAUX" Or test.Offset(j, 0) = "Corrèze" Or test.Offset(j, 0) = "Charente" Or test.Offset(j, 0) = "Charente Maritime" Then
                    test.Offset(j, 0).EntireRow.Delete
                End If
            Next j
        Next i
     
    End With
     
    End Sub
    Dis nous si l'un des deux codes te convient !
    La logique :
    • Plus ya de gruyère, moins ya de gruyère.
    • Plus tu pédales moins vite, moins tu avances plus vite.
    Plusoyer les réponses pertinentes et n'oublier pas de résolver en fin de post !

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2012
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 50
    Points : 29
    Points
    29
    Par défaut
    Bonjour,

    Trés bien vos codes !! j'ai utilisé le second car il cherche automatiquement la bonne colonne qui est plus adapté dans mon cas car j'importe une BDD access donc les colonnes ne sont pas toujours au même endroit !

    Encore Merci à vous

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

Discussions similaires

  1. [XL-2010] Supprimer des lignes en fonction de la valeur de la cellule de deux colonnes
    Par jérémyp8 dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 18/07/2013, 09h25
  2. [XL-2010] Colorer des lignes en fonction de la valeur d'une colonne
    Par antoninr dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/01/2013, 13h33
  3. Réponses: 5
    Dernier message: 21/12/2011, 08h31
  4. Réponses: 3
    Dernier message: 28/06/2011, 16h07
  5. [XL-2003] supprimer des lignes qui ont les même valeurs
    Par Neptune64 dans le forum Excel
    Réponses: 1
    Dernier message: 09/08/2009, 00h30

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