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 les dernières lignes vides


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 106
    Points : 57
    Points
    57
    Par défaut supprimer les dernières lignes vides
    Salut la compagnie,

    J'ai un petit problème avec mes lignes vides dans une plage, mais ça diffère un peu de l'habitude.
    D'habitude, on veut supprimer les lignes vides de la plage, mais ces lignes sont réparties un peu partout.
    Dans mon cas, j'ai une plage de 200 cellules. J'en rempli seulement une partie en partant du début et j'aimerais supprimer toutes celles suivantes dont la cellule est vide.
    j'ai essayé avec une boucle for each.... next, mais ça m'en supprime seulement une sur 2.



    J'ai trouvé ce code dans une autre discussion mais j'aimerais en fait lui faire chercher la dernière ligne remplie (à la place de "period") et lui faire supprimer toutes les lignes suivantes dans la plage donnée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     range(range("A" & range("A1:A65536").Find("period").Row), _
                         range("A65536").End(xlUp)).entirerow.Delete
    Mais je coince un peu.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 52
    Points : 29
    Points
    29
    Par défaut Re
    Bonjour,

    Je ne suis pas sur mais je pense que ton problème vient du fait que tu pars du début et tu vas vers la fin, genre :

    For i = 1 to 200
    Si cellule de la ligne i est vide alors supprime ligne i
    Next i

    le problème est qu'en supprimant la ligne i, toutes les autres reculent d'un cran et du coup, après ton Next i tu es en i + 2 et pas en i + 1.

    La solution serait de partir de la fin
    For i = 0 to 199
    Si cellule de la ligne (200 - i) est vide alors supprime ligne (200 - i)
    Next i

  3. #3
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 106
    Points : 57
    Points
    57
    Par défaut
    J'ai essayé de faire un code avec les éléments que tu m'as donné mais ce que j'ai obtenu c'est qu'il me supprime toutes les lignes en partant de la dernière (même les lignes remplies), et arrivé à la première le code plante.

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    For i = 0 To 199
    If Cells(200 - i) = 0 Then
    Rows(200 - i).delete
    End If
    Next i
    Mais j'ai du rater un truc ou faire une fausse manip.

    remarque : j'ai pas un super niveau en vba

  4. #4
    Membre averti Avatar de tomy7
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 540
    Points : 391
    Points
    391
    Par défaut
    tiens regarde si sa te convientPièce jointe 26574

  5. #5
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    peut-on résumer ton problème à supprimer toutes les lignes vide d'une plage ?
    si oui :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    range("A1:A10000").SpecialCells(xlCellTypeBlanks).EntireRow.Delete

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 52
    Points : 29
    Points
    29
    Par défaut Hello
    La réponse de caféine est plus jolie que la mienne!

    Cependant, voilà la correction du code que tu a posté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i = 0 To 199
    If Cells(200 - i) = "" Then
    Rows(200 - i).delete
    End If
    Next i
    si jamais tu veux garder des lignes vides au début ou au milieu du document, voilà comment le faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Dim i as integer
    i = 0
    Do While Cells(200 - i) = "" 
    Rows(200 - i).delete
    i = i + 1 
    Loop
    Ca devrait marcher (pas testé)

  7. #7
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 106
    Points : 57
    Points
    57
    Par défaut
    Nickel chrome!!!!

    Çà marche impec avec le code de CAFEINE.
    Désolé ML0808 mais en fait je n'aurais jamais besoin de laisser des lignes vides au milieu ou ailleurs du document. Mais comme mémé dit toujours, il ne faut jamais dire jamais!!! Donc je garde ton code en stock pour le tester et si un jour j'en ai besoin pour un autre projet, et ben je saurais où taper!!!

    Merci à tous

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

Discussions similaires

  1. Supprimer les dernières lignes d'un fichier
    Par eleana dans le forum Shell et commandes GNU
    Réponses: 16
    Dernier message: 03/11/2017, 11h55
  2. [XL-2007] Supprimer la dernière ligne vide d'un fichier txt avec vba
    Par nyepalo dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 26/06/2015, 10h31
  3. Supprimer la dernière ligne vide d'un fichier txt
    Par petit rabot dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 08/12/2011, 13h15
  4. Supprimer les dernieres lignes et concatener plusieurs fichier
    Par filsdugrand dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 11/04/2006, 22h15
  5. supprimer les dernieres lignes d'un classeur excel
    Par zouille dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/12/2005, 12h23

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