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 lignes suivant valeur d une cellule en vba


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    retraite
    Inscrit en
    Mars 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 68
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : retraite

    Informations forums :
    Inscription : Mars 2014
    Messages : 9
    Par défaut supprimer lignes suivant valeur d une cellule en vba
    Bonjour,
    j ai un tableau qui fait 50 lignes et 6 colonnes.
    Je voudrais supprimer supprimer toutes les lignes dont les cellules de la colonne A contiennent "total" ou " somme"
    si quel qu'un a une solution
    Merci d'avance

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Bonjour, 2 questions:
    - tu veux supprimer des lignes, et donc celles du dessous se décalent d'une place vers le haut ou effacer le contenu et laisser des lignes vides dans le tableau ?
    - les mots "somme" et "total" se trouvent seuls dans la cellule ou font partie d'une expression plus longue ?

  3. #3
    Membre averti
    Femme Profil pro
    retraite
    Inscrit en
    Mars 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 68
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : retraite

    Informations forums :
    Inscription : Mars 2014
    Messages : 9
    Par défaut Réponse aux questions
    Bonjour et merci de m avoir répondu
    Je veux supprimer les lignes complètement et les mots sont seuls dans lacellule

  4. #4
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Voici une méthode:

    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
    28
    29
    30
    31
    Sub SupprimerLignesSommeTotal()
        Dim ws As Worksheet
        Dim rng As Range
        Dim cell As Range
        Dim mot As Variant
        Dim motsARechercher As Variant
        Dim i As Long
        Dim lastrow As Long
     
        ' Définir la feuille de calcul à traiter
        Set ws = ThisWorkbook.Sheets("Feuil1")
        lastrow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
        ' Définir la plage à parcourir
        Set rng = ws.Range("A1:A" & lastrow)
     
        ' Liste des mots à rechercher
        motsARechercher = Array("somme", "total")
     
        ' Boucle à rebours à travers chaque cellule dans la plage
        For i = rng.Rows.Count To 1 Step -1
            Set cell = rng.Cells(i, 1)
            ' Boucle à travers chaque mot à rechercher
            For Each mot In motsARechercher
                If InStr(1, LCase(cell.Value), LCase(mot)) > 0 Then
                    ' Supprimer la ligne si le mot est trouvé
                    cell.EntireRow.Delete
                    Exit For ' Sortir de la boucle après la suppression
                End If
            Next mot
        Next i
    End Sub

  5. #5
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Bonjour
    et si pour une grande base de données et pour gagner en temps d'exécution , vous pouvez filtrer puis supprimer les lignes visibes:
    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
    Sub filtreetsupprimer()
    Dim F1 As Worksheet
    Set F1 = Sheets("Feuil1")
    Dim I As Long
    Dim Fil1 As String, Fil2 As String
    Fil1 = LCase("total")
    Fil2 = LCase("somme")
     Application.ScreenUpdating = False
     With F1
     .Activate
     I = .Cells(Rows.Count, 1).End(xlUp).Row
     .Range("A1:F" & I).AutoFilter Field:=1, Criteria1:=Fil1 _
            , Operator:=xlOr, Criteria2:=Fil2
     .Range("A2:AF" & I).SpecialCells(xlCellTypeVisible).EntireRow.Delete
     .ShowAllData
    End With
     Application.ScreenUpdating = True
    End Sub

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

Discussions similaires

  1. [XL-2016] Liste déroulante différente suivant valeur d'une cellule
    Par retraite83 dans le forum Excel
    Réponses: 2
    Dernier message: 30/11/2018, 22h38
  2. [XL-2010] Macro agréger plusieurs lignes si valeur d'une cellule identique
    Par Petite_Aline dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/05/2015, 09h18
  3. Supprimer ligne suivant valeur
    Par isarian dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 08/12/2011, 14h14
  4. [XL-2007] Liste déroulante suivant valeur d'une cellule
    Par malababar dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/03/2010, 22h24
  5. récupération de la valeur d'une cellule en VBA
    Par jffaber dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/05/2008, 09h19

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