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 :

Macro suppression lignes vides


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 133
    Par défaut Macro suppression lignes vides
    Bonjour,

    Existe t'il une macro qui permette de supprimer les lignes vides. En effet j'ai des données dans ma ligne 1 et 4 par exemple et j'aimerais qu'une simple macro m'enlève les lignes vides 2 et 3. Ou me les masquer, encore mieux.

    Merci!

    Bag

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 969
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 969
    Par défaut
    bonsoir

    essayez avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub masquerLigne()
    Dim r As Range
    Application.ScreenUpdating = False
    For Each r In Worksheets("feuil1").Range("A2:A15")
            With r
                    .EntireRow.Hidden = ((.Value = ""))
            End With
    Next r
    Application.ScreenUpdating = True
    End Sub

  3. #3
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 969
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 969
    Par défaut
    pour supprimer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub supprLigne()
    With Sheets("Feuil1")
     For i = .Range("A" & Rows.Count).End(xlUp).Row To 1 Step -1
                 If .Cells(i, 1) = "" Then
                 Cells(i, 1).EntireRow.Delete
                  End If
           Next i
       End With
    End Sub

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 133
    Par défaut
    Bonjour,

    Merci. Je teste et je fais un retour

    Bag

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 133
    Par défaut
    J'ai essayé le masquage des lignes et ça m'a l'air parfait. Mais connais-tu la formule magique qui me permettrait de choisir plusieurs plages.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub masquerLigne()
    Dim r As Range
    Application.ScreenUpdating = False
    For Each r In Worksheets("feuil1").Range("A2:A15") ' (plages A2:15 mais également A20:A30 et A40:A55)
            With r
                    .EntireRow.Hidden = ((.Value = ""))
            End With
    Next r
    Application.ScreenUpdating = True
    End Sub

  6. #6
    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
    Bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dim area,emptycells as range
    Sub test()
        With Worksheets("feuil1").Range("A2:A15,A20:A30,A40:A55")
            For Each area In .Areas
                Set emptycells = area.SpecialCells(xlCellTypeBlanks)
                If Not emptycells Is Nothing Then emptycells.EntireRow.Delete
            Next
        End With
    End Sub
    peut être devra tu compiler les adresse a supprimer avant de les supprimer ca évite les méprise


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub test()
        Dim area, emptycells As Range, p As Range
        With Worksheets("feuil1").Range("A2:A15,A20:A30,A40:A55")
            For Each area In .Areas
                Set emptycells = area.SpecialCells(xlCellTypeBlanks)
                If Not emptycells Is Nothing Then
                If p Is Nothing Then Set p = emptycells Else Set p = Union(p, emptycells)
                End If
                Next
        p.EntireRow.Delete
     
        End With
    End Sub
    sinon dans une boucle mais en commençant par en bas(55) en incluant les sauts entre chaque plages 2 boucle imbriquées (area et cells) c'est déjà un peu plus compliqué
    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

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 133
    Par défaut
    Ca fonctionne très bien. Merci pour vos précieux codes et conseils!!

    Bag

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 133
    Par défaut
    Désolé, j'ai mis au départ "Résolu" mais il me manque une chose. Quel pourrait être la macro inverse. C'est à dire que j'ai appliqué la macro suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub masquerLigne()
    Dim r As Range
    Application.ScreenUpdating = False
    For Each r In Worksheets("S14").Range("C30:C120,C133:C223,C236:C326,C391:C481,C494:C584,C597:C687,C700:C790,C803:C893,C906:C996,C1009:C1099,C1112:C1202,C1215:C1305,C1318:C1408,C1421:C1511,C1524:C1614,C1627:C1717,C1730:C1820,C1833:C1923,C1936:C2026,C2039:C2129")
            With r
                    .EntireRow.Hidden = ((.Value = ""))
            End With
    Next r
    Application.ScreenUpdating = True
    End Sub
    Du coup mes lignes se masquent mais comment faire pour qu'elles s'affichent de nouveau? Je dois corriger des formules dans certaines d'entre elles.
    Merci

  9. #9
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 969
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 969
    Par défaut
    bonjour
    pour afficher tes lignes essayer avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub affiche()
    Rows("1:5000").Hidden = False
    end sub

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 133
    Par défaut
    Merci beaucoup!!!

    Cette fois c'est résolu.
    Merci encore de votre aide!!

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

Discussions similaires

  1. Couper-Coller avec Suppression lignes vides
    Par tounsy dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/05/2008, 15h40
  2. Suppression ligne vide
    Par sebys dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 04/01/2008, 14h29
  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