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 d'un ligne avec condition


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 209
    Points : 115
    Points
    115
    Par défaut suppression d'un ligne avec condition
    bonjour à tous

    tableau 2 colonnes (A et B)

    il faut que je supprime la ligne dont la cellule de la colonne B est vide

    vous allez me dire que plusieurs post sur le sujet existent mais aucun de ceux que j'ai pu lire n'a fonctionnés.

    voici mon bout de code que j'ai trituré dans tout les sens:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub efface_vide()
    Dim x As Long
    'For l = Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
    For x = 7 To 1 Step -1
    MsgBox (Cells(x, 2).Value)
        If Cells(x, 2).Value = "" Then Cells(x, 1).EntireRow.Delete
     
    Next x
    End Sub
    La msgbox c'est juste pour le test..

    J'ai volontairement mis 7 dans le FOR, mais il faudra que le tableau entier soit analysé

    donc je vais abuser, mais il faudrait que je puisse connaitre le nombre de ligne que contient le tableau au départ !

    le script dois pouvoir fonctionner sur excel 2007 jusqu'à la dernière version si possible

    merci de votre aide

  2. #2
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par bilcosby Voir le message
    voici mon bout de code que j'ai trituré dans tout les sens:
    A priori, le code que tu as mis devrait faire ce que tu indiques, à condition que la feuille que tu veux traiter soit bien la feuille active au moment où tu lances la macro.
    Es-tu sûr que les cellules de ta colonne B que tu veux supprimer soient VRAIMENT vides ? Ne pourraient-elles pas contenir un truc invisible comme un espace, une tabulation ou une autre merdouille du genre ?

    il faudrait que je puisse connaitre le nombre de ligne que contient le tableau au départ !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(Rows.Count, 1).End(xlUp).Row
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        If Cells(x, 2).Value = "" Then Cells(x, 1).EntireRow.Delete
    Juste un petit détail : il serait plus simple d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        If Cells(x, 2).Value = "" Then Rows(x).Delete
    C'est plus simple mais ça ne fait pas de différence à l'exécution (je veux dire que ce n'est pas une erreur).
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 209
    Points : 115
    Points
    115
    Par défaut
    effectivement il y a des espaces dans les cellules "vides"
    c'est ennuyeux, comment la macro peux faire la différence ?

    Merci de votre aide

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    c'est ennuyeux, comment la macro peux faire la différence ?
    Après un repas pourtant bien arrosé :
    en faisant la comparaison avec un Trim appliqué au contenu de la cellule ...
    PS : je n'ai peut-être pas assez bu, car si je l'avais fait, je ne serais même pas en mesure de répondre à cette toute petite question.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  5. #5
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  6. #6
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour Menhir
    Tiens ! Moins rapide que moi ? Tu as alors pris un repas plus arrosé que le mien ?
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

Discussions similaires

  1. [XL-2003] Macro suppression ligne avec condition
    Par jenifer699 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 21/08/2012, 12h43
  2. [XL-2003] Macro suppression ligne avec condition 3 mots
    Par jenifer699 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/08/2012, 17h45
  3. [XL-2003] Recherche et suppression ligne avec condition
    Par jeromeph75 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/05/2011, 10h31
  4. [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, 11h38
  5. Suppression des lignes avec condition
    Par tientinou dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/03/2009, 12h35

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