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 ligne sur condition


Sujet :

Macros et VBA Excel

  1. #1
    Débutant
    Inscrit en
    Septembre 2005
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 125
    Points : 62
    Points
    62
    Par défaut Suppression ligne sur condition
    je souhaiterai effacer les lgnes entieres de mon tableau si la valeur de la cellule est egale à 0.

    le code ci dessous ne marche pas...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    For h = 2 To 26
     
    If Cells(h, k + 2).Values = 0 Then
    Rows(h).Delete
    End If
    Next h

  2. #2
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Août 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 117
    Points : 133
    Points
    133
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    For h = 2 To 26
     
    If Cells(h, k + 2).Value = 0 Then
    Rows(h).Delete
    h = h-1
    End If
    Next h
    value sans s

  3. #3
    Débutant
    Inscrit en
    Septembre 2005
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 125
    Points : 62
    Points
    62
    Par défaut ca marche mais
    ca marche mais ca tourne en boucle...???!!!

  4. #4
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Août 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 117
    Points : 133
    Points
    133
    Par défaut
    ajoute un autre compteur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    compteur=2
    For h = 2 To 26
     if compteur = 27 then exit for
    If Cells(h, k + 2).Value = 0 Then
    Rows(h).Delete
    h = h-1
    End If
    compteur=compteur +1
    Next h
    mais j'espère que quelqu'un a une meilleure réponse

  5. #5
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Août 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 117
    Points : 133
    Points
    133
    Par défaut
    dans ce cas fait plutout

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    h=2
    Do While h < 27
     
    If Cells(h, k + 2).Value = 0 Then
    Rows(h).Delete
    
    End If
    h=h+1
     
    Loop

  6. #6
    Débutant
    Inscrit en
    Septembre 2005
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 125
    Points : 62
    Points
    62
    Par défaut ca marche deja..
    merci!!!

    je sais pas si une meilleure reponse existe...

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Points : 364
    Points
    364
    Par défaut
    Citation Envoyé par cchampion2fr Voir le message
    ca marche mais ca tourne en boucle...???!!!
    Tu veux dire une boucle infinie ?
    Il doit prendre les cellules vides pour du zéro.

    Essaye ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Sub test()
     
    k = 2
    For h = 2 To 26
     
    If Not IsEmpty(Cells(h, k).Value) And Cells(h, k).Value = "0" Then
        Rows(h).Delete
        h = h - 1
    End If
    Next h
     
    End Sub

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Points : 364
    Points
    364
    Par défaut
    j'ai oublié k+2 pour mes tests, songe à le rajouter.

    en fait il semble que mettre des guillemets autour du zéro suffise :

    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 test()
     
    k = 2
    For h = 2 To 26
     
    If Cells(h, k + 2).Value = "0" Then
        Rows(h).Delete
        h = h - 1
    End If
    Next h
     
    End Sub

  9. #9
    Débutant
    Inscrit en
    Septembre 2005
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 125
    Points : 62
    Points
    62
    Par défaut moins bien
    je ne sais pas pourquoi mais la deuxieme solution ne fonctionne pas a 100%.

    ca me garde des ligne dont la ligne marque div/0 dans une autre cellule.

    je garde la premiere solution vu que ca marche

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

Discussions similaires

  1. Suppression ligne sur le plot avec Timeseries
    Par nodules dans le forum 2D
    Réponses: 3
    Dernier message: 10/09/2010, 17h27
  2. VBA - Pb Suppression lignes sur plage filtrée
    Par oracle7556 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/06/2010, 22h54
  3. [AC-2000] Suppression ligne avec conditions sur deux tables
    Par Loufink dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 09/07/2009, 12h38
  4. Masquer des lignes sur condition
    Par marc56 dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 06/03/2008, 03h11
  5. vba suppresion de lignes sur condition
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/07/2007, 23h49

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