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 des lignes vides


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé Avatar de laloune
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2005
    Messages
    484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2005
    Messages : 484
    Points : 873
    Points
    873
    Par défaut Supprimer des lignes vides
    Bonjour à tous,

    je sais que le sujet a dû susciter de nombreuses conversations, mais je ne comprends pas pourquoi ce que j'ai codé ne fonctionne pas...

    Ce qui devrait se produire, c'est une suppression de toutes les lignes dont les cellules sont vides dans la plage sélectionnées... Ca fonctionne à peu près, vu que les lignes se suppriment... Mais TOUTES ne se suppriment pas, ca fait que je dois cliquer plusieurs fois sur mon bouton pour que toutes soient supprimées

    Voici ce que j'ai écrit avec mes petits doigts :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
     
    Sub SupprimerLignesVides()
     
        If Not Windows.Count < 1 Then
            Application.ScreenUpdating = False
     
            'Déclaration des variables
            Dim SelectedCells As Range
            Dim oCell
            Dim msg As String
            Dim LastCell As Long, Curseur As Long
     
            Set SelectedCells = Selection
     
            'S'il y a plus d'une cellule sélectionnée
            If SelectedCells.Cells.Count > 1 Then
                'Initialisation dernière cellule de la plage
                LastCell = SelectedCells.Cells.Count
                For Curseur = 0 To LastCell
     
                    'Suppression de la ligne si la cellule est vide
                    If SelectedCells(Curseur).Value = "" Then
                        SelectedCells(Curseur).EntireRow.Delete
                    End If
     
                Next
     
            Else
     
                'Message pour les étourdis
                msg = "Sélectionnez une plage"
                MsgBox msg, vbInformation, "Information"
     
            End If
     
            Set SelectedCells = Nothing
     
            Application.ScreenUpdating = True
        End If
     
    End Sub
    Il me semble que le problème vient de la suppression des lignes, la plage n'étant plus la même...

    Merci pour votre aide
    laloune
    laloune
    Consultant B.I.
    Spécialité(s): Excel, SQL, Business Intelligence (Jedox Palo, Talend)

    "A problem worthy of attack proves its worth by fighting back." Piet Hein

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Points : 542
    Points
    542
    Par défaut
    bonjour,

    il faut supprimer les lignes en partant du bas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    For Curseur = LastCell to 1 step -1

  3. #3
    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
    Points : 15 543
    Points
    15 543
    Par défaut
    Tu as plus simple, sans boucle, regarde , réponse 7
    A+

  4. #4
    Membre éclairé Avatar de laloune
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2005
    Messages
    484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2005
    Messages : 484
    Points : 873
    Points
    873
    Par défaut
    magnifique la solution sans boucle !

    merci à vous deux pour vos réponses

    laloune
    laloune
    Consultant B.I.
    Spécialité(s): Excel, SQL, Business Intelligence (Jedox Palo, Talend)

    "A problem worthy of attack proves its worth by fighting back." Piet Hein

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

Discussions similaires

  1. Supprimer des lignes vides d'un CSV
    Par amine.h dans le forum Langage
    Réponses: 2
    Dernier message: 25/09/2010, 17h40
  2. [RegEx] Supprimer des lignes vides
    Par bigs3232 dans le forum Langage
    Réponses: 14
    Dernier message: 17/04/2010, 00h40
  3. KSH: Supprimer des lignes vides (sans espaces ni tab) en fin de fichier text
    Par SmileAndFly dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 31/07/2008, 20h47
  4. Supprimer des lignes vides dans un label
    Par benjhe dans le forum VB.NET
    Réponses: 3
    Dernier message: 19/12/2007, 08h57
  5. supprimer des lignes vides
    Par Medmidou dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 17/10/2007, 13h51

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