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 :

[VBA]Excel - Suppression de ligne


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut [VBA]Excel - Suppression de ligne
    Bonjour,

    comment coder ceci en VBA :

    Dans une colonne definie si j'ai la valeur 0 alors je supprime la ligne correspondante.

    Merci

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    excel ?

    déjà il faut définir le "nombre" de ligne de la colonne concernée...

    dis'ons ... tant que la colonne n'est pas vide...


    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 EffaceLg0()
     Dim i As Integer
     Dim C As Range 'Colonne...
     i = 1
     'Colonne D
     Set C = Columns("D")
     
    While C.Cells(i) <> ""
       While C.Cells(i) = 0
         C.Cells(i).EntireRow.Delete 'Detruit la ligne
       Wend
      i = i + 1
    Wend
    End Sub

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 290
    Points : 374
    Points
    374
    Par défaut
    Bonjour,
    Tu peux aussi placer ce code.Ce code suppose que tu as des zéros dans la colonne C, entre C1 et C100.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Sub SupprimerLignes()
    Dim cel As Range, PlageTest, i
    i = 1
        Set PlageTest = Range("C1:C100")
        For Each cel In PlageTest
            If cel.Value = "0" Then
            i = i + 1
                cel.Select
            Selection.EntireRow.Hidden = True
            End If
        Next cel
    End Sub
    Pour rétablir la vue de tes lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Sub RéafficherLignes()
        Columns("C:C").Select
        Selection.EntireRow.Hidden = False
    End Sub
    jpleroisse

  4. #4
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Citation Envoyé par leroissejp
    Bonjour,
    Tu peux aussi placer ce code.Ce code suppose que tu as des zéros dans la colonne C, entre C1 et C100.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Sub SupprimerLignes()
    Dim cel As Range, PlageTest, i
    i = 1
        Set PlageTest = Range("C1:C100")
        For Each cel In PlageTest
            If cel.Value = "0" Then
            i = i + 1
                cel.Select
            Selection.EntireRow.Hidden = True
            End If
        Next cel
    End Sub
    Pour rétablir la vue de tes lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Sub RéafficherLignes()
        Columns("C:C").Select
        Selection.EntireRow.Hidden = False
    End Sub
    jpleroisse
    Ce code n'apporte rien de plus à la solution proposée par bbil sinon à cacher au lieu de supprimer comme demandé dans la question -
    de plus l'utilisation des select et selection est à proscrire - s'il s'agit purement et simplement de recopier le code produit par l'enregistreur de macro
    autant qu'il le fasse lui-même en lui indiquant comment s'en servir, non ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 290
    Points : 374
    Points
    374
    Par défaut
    Bonjour DarkVader,
    J'étais en train de composer ma réponse quand bbil a répondu.
    Bien sur, j'aurais pu lui conseiller d'utiliser l'enregistreur de macro pour qu'il apprenne à s'en servir (mais j'ai tendance à répondre un peu trop vite, donc bien souvent s'en trop réfléchir) là, tu as raison.
    Quand au code de bbil, chez moi, celà provoque une boucle infinie(je n'ai pas cherché à corriger).

    jpleroisse

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par leroissejp
    Quand au code de bbil, chez moi, celà provoque une boucle infinie(je n'ai pas cherché à corriger).
    tu as pris le code tel quel ou tu la modifier ... avant

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 290
    Points : 374
    Points
    374
    Par défaut
    Re,
    bbil,je ne sais pas ce qui c'est passé, je viens de faire un Copier/Coller de ton code et celà fonctionne,j'ai dù faire une erreur tantôt.
    Désolé (Il faudra quand même que je m'applique à ne pas répondre si vite et à bien vérifier ce que je tappes à l'avenir)

    jpleroisse

  8. #8
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Citation Envoyé par leroissejp
    Il faudra quand même que je m'applique à ne pas répondre si vite et à bien vérifier ce que je tappes à l'avenir)
    Il me semblait pourtant t'avoir déjà prévenu

Discussions similaires

  1. [VBA EXCEL] Copier des lignes
    Par ben7777 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/07/2006, 18h22
  2. [VBA-E] Suppression de lignes à partir d'un point particulier
    Par coxi77 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/07/2006, 13h22
  3. [VBA-E] macro VBA excel suppression graphiques
    Par totoza dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 30/05/2006, 08h45
  4. [VBA][Excel]supprimer des lignes vierges
    Par Angel79 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 17/01/2006, 13h17
  5. [VBA][Excel]Insérer une ligne
    Par loverdose dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/02/2005, 16h27

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