Comment trouver en VB les lignes vides d'un fichier Excel?

Résolu
tribal005 Messages postés 99 Statut Membre -  
tribal005 Messages postés 99 Statut Membre -
Bonjour,

J'aimerais trouver les lignes vides d'un fichier excel et les supprimer pour que je puisse importer mon fichier excel dans ma base Access.
J'ai déjà cherché la réponse sur plusieurs forum mais rien ne marche..

J'ai essayé de faire une boucle parcourant toutes mes lignes du fichiers Excel

Cordialement

2 réponses

  1. Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   65
     
    Bonjour,

    Effectivement, la boucle me paraît être la vraie bonne solution. Mais attention à bien la construire, c'est à dire à l'envers ! (Non je ne fume pas.) On va partir de la dernière ligne pour remonter vers la première car sinon, le fait de supprimer une ligne va fausser ta variable.

    Bref comme ceci :

    Sub SUPPRIMER_LIGNES()
    
    Dim DL As Long, i As Integer
    
    DL = Cells(Application.Rows.Count, 1).End(xlUp).Row 'Définit la dernière ligne du fichier excel (attention, 1 est le numéro de colonne de référence, mettre le numéro de la colonne qui est remplie le plus bas
    
    For i = DL To 1 Step -1 'Pour i allant de la dernière ligne à la ligne 1
    
    If Application.CountA(Rows(i)) = Empty Then Rows(i).EntireRow.Delete
    
    Next i
    
    End Sub


    Voilà voilà.

    Bonne journée.
    1
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      bonjour

      sans boucle et rapide
      Sub Supprimer_si_vide()
      Dim Ligne As Long

      On Error Resume Next
      Ligne = Cells.Find("*", , , , , xlPrevious).Row
      Range("A2:A" & Ligne).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
      End Sub
      0
    2. tribal005 Messages postés 99 Statut Membre 18
       
      merci beaucoup Kuartz
      0
    3. tribal005 Messages postés 99 Statut Membre 18 > michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention  
       
      michel_m je ne comprend pas trop tes lignes
      On Error Resume Next
      Ligne = Cells.Find("*", , , , , xlPrevious).Row
      Range("A2:A" & Ligne).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
      0
    4. tribal005 Messages postés 99 Statut Membre 18
       
      J'ai dit merci beaucoup trop vite, J'ai copier ton code et il me dit qu'il ne reconnais pas le membre de la méthode ".rows"

      sur la ligne suivante:
      DL = Cells(Application.Rows.Count, 1).End(xlUp).Row
      0
    5. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320 > tribal005 Messages postés 99 Statut Membre
       
      qu'est ce que tu ne comprends pas ?

      As tu essayé ce code ?

      Au besoin tu peux voir le principe en utilisant l'enregistreur de macro
      0