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 vide


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 42
    Par défaut Suppression ligne vide
    Bonjour le forum et tout le monde,

    Je souhaite ameliorer le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Range("g64000").Select
    Range(Selection, Selection.End(xlUp)).Select
    y = ActiveCell.Row 'Pour avoir la dernière ligne
     
    For x = y To 1 Step -1
    If Not IsNumeric(Range("b" & x)) Then Rows(x).Delete
    If IsEmpty(Range("b" & x)) Then Rows(x).Delete
    Next
    Je sais que l'on peut en passant par des tables mais je n'ai pas compris leur manipulation, si une personne peut m'aider .

    Merci pour tout

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Enregistre ton fichier avant de tester ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            Derlig = Cells(Columns(2).Cells.Count, 2).End(xlUp).Row
            Range(Cells(1, 2), Cells(Derlig, 2)).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    Ce code remplace ta boucle
    Tu dis

  3. #3
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 42
    Par défaut
    Je viens de tester, et cela me met une erreur..., de plus au vu du code cela me permet juste de supprimer les colonnes vides

    Mais en faite le code me sert à supprimer toutes les lignes n'ayant pas du numerique ainsi que les vides (car une cellule vide est considerer numerique ?)

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Désolé, je répondais au sujet de la discussion : "Suppression ligne vide "
    Non, ce code supprime toutes les lignes dont la cellule de la colonne 2 est totalement vide.
    Tu as mis Range("b" & x) dans ton propre test, le code que je t'ai passé fournit d'abord le N° de la dernière ligne renseignée pour cette colonne.
    Mais ça supprime bien les lignes, non les cellules ni les colonnes
    J'ai relu ta question, et donc, il te reste à supprimer les lignes dont la cellule de la colonne B n'est pas numérique et ta boucle fait ça, mais pour la dernière ligne, mon code est préférable.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
         Derlig = Cells(Columns(2).Cells.Count, 2).End(xlUp).Row
         Range(Cells(1, 2), Cells(Derlig, 2)).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
         For nolig = DerLig To 1 Step -1
              If Not IsNumeric(Range("b" & nolig )) Then Rows(x).Entirerow.Delete
         Next
    Pour l'erreur, si tu utilises exactement mon code sans mélanger avec le tien, tu me dis sur quelle ligne et le type d'erreur.
    Quelle version d'Excel as-tu, ça peut jouer
    A+

    Edit
    Peut-être y a-t-il un moyen de remplacer ta boucle en passant par SpecialCells mais s'il existe, je ne vois pas quel paramètre utiliser.

  5. #5
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 42
    Par défaut
    Alors je viens de tester avec le bout de code :

    erreur 1004 - pas de cellule correspondant.

    et l'erreur se fait sur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(Cells(1, 2), Cells(Derlig, 2)).SpecialCells(xlCellTypeBlanks).EntireRow.delete
    Pour le code pour le numeros de la ligne, c'est que j'ai deux lignes vide pour cette colonne en fin de tableau et je dois aussi les supprimer :o)

    Et j'ai Excel 2002.

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Peut-être un problème de version... J'ai 2003
    Remplace xlCellTypeBlanks par le chiffre 4, ce qui donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
         Range(Cells(1, 2), Cells(Derlig, 2)).SpecialCells(4).EntireRow.Delete
    Questions subsidiaires :
    - Tu n'aurais pas de cellules fusionnées,
    - Ta feuille n'est pas protégée ?
    A+

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/07/2008, 14h43
  2. Couper-Coller avec Suppression lignes vides
    Par tounsy dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/05/2008, 15h40
  3. Probleme suppression ligne vide publipostage
    Par thierry440 dans le forum Word
    Réponses: 3
    Dernier message: 17/11/2007, 20h29
  4. Suppression ligne vide d'un range
    Par coco21 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 03/08/2007, 14h02
  5. [VBA-E] Probleme lenteur suppression ligne vide sur 100 lignes
    Par sebi78 dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 14/05/2007, 20h24

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