Partage
  • Partager sur Facebook
  • Partager sur Twitter

[VBA] Supression ligne vide dans excel

Aide à completer mon code

Sujet résolu
    10 novembre 2011 à 15:50:53

    Bonjours à tous! Je vous explique mon petit soucis :) . Je souhaite supprimer toutes les cellules vide d'un tableau Excel . Voici mon code :

    Sub Supprimer_les_lignes_vides() 
    
    Range("a1:a65536").SpecialCells(xlCellTypeBlanks).EntireRow.Delete 
    
    End Sub
    


    Mais le soucis c'est que cela le supprime uniquement dans la feuille de mon code VB , et j'aimerai que cela le fasse dans toutes les feuilles de mon classeur , avez vous une idée de ce que je pourrait rajouter dans mon code ?
    Merci d'avance pour votre aide :D
    • Partager sur Facebook
    • Partager sur Twitter
      10 novembre 2011 à 16:07:18

      Salut
      Il suffit de parcourir toutes les feuilles et d'appliquer ta fonction
      Un petit indice : regarde la collection ActiveWorkbook.Sheets
      • Partager sur Facebook
      • Partager sur Twitter
        10 novembre 2011 à 16:23:24

        Je recherche actuellement une solution par rapport a ton indice

        Citation : Angelo

        regarde la collection ActiveWorkbook.Sheets

        :D Je te remercie et te tient au courant de mon résultat :)
        • Partager sur Facebook
        • Partager sur Twitter
          14 novembre 2011 à 8:42:41

          J'ai regarder la collection " ActiveWorkbook.Sheets" mais à chaque fois que j’exécute le code aucun
          résultat . Mon dernier code tenté :

          Sub Supprimer_les_lignes_vides()
          
          For i = 1 To Sheets.Count
          With Sheets(i)
          
          Range("a1:a65536").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
          
          End With
          Next i
          
          End Sub
          
          • Partager sur Facebook
          • Partager sur Twitter
            14 novembre 2011 à 9:02:44

            mmm ... bien essayer :p

            Le problème ici c'est que tu sélectionnes jamais tes différentes feuilles
            Je suppose que c'est que tu as voulu faire avec le With Sheets(i) mais ce n'est pas comme ça
            Donc soit tu utilise la méthode select, soit tu préfixes directement ta fonction

            Les 2 solutions en code :
            For i = 1 To Sheets.Count
                Sheets(i).Select
                Range("a1:a65536").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
            Next i
            

            For i = 1 To Sheets.Count
                Sheets(i).Range("a1:a65536").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
            Next i
            



            Autre conseil: En VBA, la boucle For Each existe donc n'hésite pas à t'en servir
            For Each aSheet In Sheets
                aSheet.Range("a1:a65536").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
            Next
            


            • Partager sur Facebook
            • Partager sur Twitter
              14 novembre 2011 à 9:13:36

              Permet moi de modifier ma réponse précédente : Le code marche parfaitement c'est juste que celui ci arrive a la dernière feuille où il n'y a pas de modification à faire c'est pour cela que ça m'affichait le message ^^

              Merci un nouvelle fois de ton aide et j'espère de plus être aussi tête en l'aire ;)
              • Partager sur Facebook
              • Partager sur Twitter
                14 novembre 2011 à 9:23:06

                Oui il me semble que si il n'existe pas de cellule vide alors le code s'arrête
                A priori le seul moyen de contourner est d'utiliser
                On error resume next
                
                même si cela n'est pas très propre
                • Partager sur Facebook
                • Partager sur Twitter
                  14 novembre 2011 à 9:25:50

                  J'ai la chance que ce soit à la dernière feuille :)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    22 avril 2016 à 9:20:48

                    bonjour

                    je suis débutant dans ce domaine, aprés avoir coller en VBA les lignes je faitcomment pour executer la commande

                    merci

                    • Partager sur Facebook
                    • Partager sur Twitter
                      27 mai 2021 à 11:13:34

                      Bonjour meme si le sujet est très ancien je n'arrive pas a supprimer la ligne vide dans tableau 

                      J'ai inserer un code pour supprimer un doublon mais la ligne ne se supprime pas j'ai manqué un code pour la supprime

                      Private Sub Worksheet_Change(ByVal Target As Range)

                      If Flag Then Exit Sub

                          If Not Application.Intersect(Target, Columns("C")) Is Nothing Then

                              If Target.Count > 1 Then Exit Sub

                              If Application.CountIf(Range("C2:C500"), Target) > 1 Then

                                  Flag = False

                                      MsgBox ("Ce numéro existe déjà !")

                                      Target.ClearContents

                                  Flag = True

                          End If

                      Dim MaPlage As Range

                      Dim iCompteur As Long

                      Set MaPlage = ActiveSheet.UsedRange

                      For iCompteur = MaPlage.Rows.Count To 1 Step -1

                      If Application.CountA(Rows(iCompteur).EntireRow) = 0 Then

                      Rows(iCompteur).Delete

                      End If

                      Next iCompteur

                      end if 

                      end sub

                      • Partager sur Facebook
                      • Partager sur Twitter
                        27 mai 2021 à 12:10:33

                        Ton code pour supprimer les lignes regarde si la ligne est entièrement vide; est-ce le cas pour toi ?

                        Sinon le plus simple, c'est de supprimer la ligne plutôt que son contenu, donc remplacer Target.ClearContents par Target.EntireRow.Delete

                        PS: tu aurai pu ouvrir ton propre sujet, même si ta demande est similaire à la demande initiale (déterrage de 4 ans, c'est beaucoup)

                        PS2: la prochaine fois, utilise le bouton </> pour insérer ton code

                        • Partager sur Facebook
                        • Partager sur Twitter

                        [VBA] Supression ligne vide dans excel

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown