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 avec une condition


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2019
    Messages : 67
    Par défaut Supprimer des lignes avec une condition
    bonjour
    j'ai realiser un programme qui supprimer des lignes qui ne satisfer pas une condition , mais le programme ne marche pas bien car il supprime des lignes désirer et laisse des lignes indisérer .voila le programme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub supp()
    Dim der_lig1 As Integer
    der_lig1 = Range("A65536").End(xlUp).Row
    For i = 2 To der_lig1
     If Cells(i, 1).Value <> "???0*" And Cells(i, 1).Value <> "k*" Then
        Cells(i, 1).EntireRow.Delete
     
     End If
    Next
    End Sub
    voila l'exemple :
    Nom : avant.PNG
Affichages : 125
Taille : 11,8 KoNom : apres.PNG
Affichages : 121
Taille : 6,9 Ko

  2. #2
    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 cousin
    la suppression se faite à l'inverse..de la dernière ligne à la première ligne step -1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For i = der_lig1 To 2 step -1

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2019
    Messages : 67
    Par défaut
    re bonjour
    le tableau a été supprimer entierement

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par flooki Voir le message
    supprimer des lignes qui ne satisfer pas une condition
    Il faudrait que tu en dises plus sur cette condition pour savoir si tu l'as codée correctement.

    La préconisation de BENNASR ( ) est judicieuse et nécessaire mais je ne pense pas qu'elle soit suffisante.
    La scrutation de haut en bas cause des "oubli" dans la suppression mais elle ne cause pas de suppression en plus.
    Il est donc probable qu'il y ait aussi un problème dans la condition telle que tu l'as codée.

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2019
    Messages : 67
    Par défaut
    CONDITIONS : les cellule de la premiere collone sa valeur doit débuter par "k" et contnir le "0" a la 4eme position
    le reste doit supprimer

  6. #6
    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
    débuter par "k"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Left(Cells(i, 1), 1) = "K"

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2019
    Messages : 67
    Par défaut
    merci bennasr
    ta une aidé pour l'autre condition ?

  8. #8
    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
    encore de prob après correction de ton code ??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub supp()
    Dim der_lig1 As Integer
    der_lig1 = Range("A65536").End(xlUp).Row
    For i = der_lig1 To 2 step-1
     If Cells(i, 1).Value <> "???0*" And Left(Cells(i, 1), 1)  <> "k*" Then
        Cells(i, 1).EntireRow.Delete
     
     End If
    Next i
    End Sub

  9. #9
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par flooki Voir le message
    CONDITIONS : les cellule de la premiere collone sa valeur doit débuter par "k" et contnir le "0" a la 4eme position
    le reste doit supprimer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Left(Cells(I, 1), 1) <> "k" Or  Mid(Cells(I, 1), 4, 1) <> "0" Then Rows(I).Delete

  10. #10
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 364
    Par défaut
    Bonjour

    Dans la fenêtre des codes de la feuille traitée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Vide()
        With Range([A2], Cells(Rows.Count, 1).End(xlUp))
            .Replace "K??0*", ""
            On Error Resume Next                   ‘pas de cas voulus
            .SpecialCells(4).EntireRow.Delete      ‘lignes vides
        End With
    End Sub
    Nota : ce sont des lignes entières qui sont supprimées. Avec un Tableau on pourrait ne supprimer que les lignes de celui-ci (en gardant les données présentes dans les autres colonnes)
    La plage étant intégrée dans un tableau (nommé ici Tbo)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub VideTableau()
        With [Tbo].Columns(1)
            .Replace "K??0*", ""
            On Error Resume Next
            [Tbo].SpecialCells(4).Rows.Delete
        End With
    End Sub

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

Discussions similaires

  1. Masquer des lignes avec une condition
    Par mjp06 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 08/03/2019, 19h23
  2. Supprimer des Lignes d'une Frame avec des conditions
    Par stephane.nguessan dans le forum R
    Réponses: 4
    Dernier message: 13/02/2019, 17h03
  3. Supprimer des lignes selon une condition
    Par j0joo dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 27/03/2014, 14h40
  4. [WD17] Supprimer des lignes d'une table sous condition
    Par alex1005 dans le forum WinDev
    Réponses: 7
    Dernier message: 15/10/2012, 14h27
  5. Copier des lignes avec une condition
    Par gliglian dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/02/2009, 00h06

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