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 de ligne totalement vides [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2019
    Messages : 11
    Par défaut Suppression de ligne totalement vides
    Bonjour,

    j'ai trouvé une macro qui me serait très utile concernant la suppression de ligne totalement vides ( sur ce forum d'ailleurs :p )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = Sheets("Feuil1").Range("A65536").End(xlUp).Row To 1 Step -1
    If Application.CountA(Rows(i)) = 0 Then Rows(i).Delete Shift:=xlUp
    Next
    Mais, commençant à m'intéresser au VBA, j'ai deux petites questions concernant ce code,

    - Comment le paramètrer pour qu'il ne commence qu'à partir de la ligne 10 ?

    et - comment faire pour qu'il s'applique à trois feuilles ? Est ce que je dis des bétises si on peut faire comme ça Sheets("Feuil1"&"Feuil2"&Feuil3") ?

    En vous remerciant !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Si vous en avez la possibilité, optez plutôt pour un tri.
    Sinon, si vous avez compris la syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Feuil1").Range("A65536").End(xlUp).Row To 10 Step -1
    Et vous répétez autant de fois que d'onglets.

  3. #3
    Expert éminent 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
    Par défaut
    Citation Envoyé par flodino Voir le message
    - Comment le paramètrer pour qu'il ne commence qu'à partir de la ligne 10 ?
    En comprenant comment fonctionne une boucle For To.
    https://docs.microsoft.com/fr-fr/off...next-statement
    N'oublie pas de repérer le Step -1 dans le code : très important quand on fait de l'insertion ou de la suppression.

    comment faire pour qu'il s'applique à trois feuilles ?
    En mettant ce code à l'intérieur d'une structure For Each qui boucle sur la collection Worksheets (le "s" final est important).
    https://docs.microsoft.com/fr-fr/off...next-statement

    Si ça ne concerne pas toutes les feuilles, du classeur, il faudra dupliquer le code pour chaque feuille ou le mettre dans une sous-routine.

    Est ce que je dis des bétises si on peut faire comme ça Sheets("Feuil1"&"Feuil2"&Feuil3") ?
    Oui

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    bonjour
    sinon tu boucle de 1 a xxxx( y en a qui vont crier)
    ben on les laisse crier et tu stocke tes lignes et supprime le tout en une fois

    ca va faire du bien a tes yeux et pour le screenupdating ca fait des vacances
    et ca va plus vite en plus pour la simple et bonne raison qu'il n'y a pas le rafraichissement + shift up a chaque fois qu'une ligne est supprimée
    LOL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Sub test()
        Dim p As Range, i&
        With Sheets("Feuil1")
            For i = 10 To .Range("A"& rows.count).End(xlUp).Row
                If Application.CountA(Rows(i)) = 0 Then
                    If p Is Nothing Then Set p = Rows(i) Else Set p = Union(p, Rows(i))
                End If
            Next
        End With
        If Not p Is Nothing Then p.Delete
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2019
    Messages : 11
    Par défaut
    Merci beaucoup pour toutes vos solutions qui marchent toutes !

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

Discussions similaires

  1. [WD-2007] Modèle Word - Suppression de ligne avec puce si vide
    Par vincent DD dans le forum Word
    Réponses: 1
    Dernier message: 26/08/2009, 22h14
  2. Erreur lors de la suppression de lignes vides
    Par Lechette dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/04/2008, 10h56
  3. trouver une ligne totalement vide , gestion d'erreur
    Par n'anneso dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/02/2008, 21h32
  4. Traitement des lignes [suppression des lignes vides]
    Par turbo_chess dans le forum Linux
    Réponses: 4
    Dernier message: 22/03/2007, 09h16
  5. Réponses: 2
    Dernier message: 09/01/2007, 19h57

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