Utiliser un code pour une feuille "x"

sarahaensa -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
bonjour
j'ai rien un code vba ,et je veux l'adapter pour faire la manup sur pour une feuille "master" :
Dim Lg%, cL%, A%, i%, x
    x = Time
    Application.ScreenUpdating = False
    cL = Cells(1, 2000).End(xlToLeft).Column
    For A = 1 To cL
        Lg = Cells(65536, A).End(xlUp).Row
         For i = Lg To 1 Step -1
            If Cells(i, A) = "" Then
                Cells(i, A).Delete Shift:=xlUp
            End If
        Next i
    Next A
    MsgBox ("temps macro = " & Format(Time - x, "hh:mm:ss"))

1 réponse

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

    1/pas besoin de boucler pour supprimer une ligne si cellule dans col A et/ou B et/ou X... vide ;o)
    Option Explicit
    Const Master As String = "Feuil1"
    '------------------
    Sub Supprimer_si_vide()
    Dim Ligne As Integer, Col As Byte
    'On Error resume next
    With Sheets(Master)
    Col = .Rows(1).Find(what:="*", searchdirection:=xlPrevious).Column
    Ligne = .Columns("A").Find(what:="*", searchdirection:=xlPrevious).Row
    .Range(.Cells(1, 1), .Cells(Ligne, Col)).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    End With
    End Sub

    durée: instantanée

    2/ pour mesurer une durée
    dim start as single
    start=timer
    ...
    le code
    ....
    Msgbox "durée: " & timer-start & " sec."

    3/ pour faciliter la maintenance
    Dim variable as Integer plus parlant que dim variable%

    EDit 9:36H
    adapté code pour plusieurs colonnes
    Michel
    0
    1. sarahaensa
       
      merci pour votre reponse , mais je sais pas comment untiser le nom de ma feuille dans mon code vba
      0
      1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320 > sarahaensa
         
        re,
        je viens d'adapter le code dans ma 1° réponse (onglet, plusieurs colonnes) mais le revoila
        Option Explicit
        Const Master As String = "Feuil1"
        '------------------
        Sub Supprimer_si_vide()
        Dim Ligne As Integer, Col As Byte
        'On Error resume next
        With Sheets(Master)
        Col = .Rows(1).Find(what:="*", searchdirection:=xlPrevious).Column
        Ligne = .Columns("A").Find(what:="*", searchdirection:=xlPrevious).Row
        .Range(.Cells(1, 1), .Cells(Ligne, Col)).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
        End With
        End Sub
        0