Modifier tableaux différentes longueurs de lignes en VBA sur même feuille

Bonsoir,

Je cherche à supprimer les lignes vides des tableaux de différentes longueurs de lignes.

Pour comprendre, je joins un fichier.

En vous remerciant si vous avez une solution.

Bonne réception.

Cordialement.

15classeur1.xlsm (29.32 Ko)

bonjour bejouette,

supprimer si la permière cellule du tableau est vide

Sub Supprimer_Vide()
     With ActiveSheet                        'cette feuille
          For Each lo In .ListObjects        'tous les tableaux
               For i = lo.ListRows.Count To 1 Step -1     'toutes les lignes
                    If lo.DataBodyRange(i, 1) = "" Then lo.ListRows(i).Delete     'si vide, supprimer ligne
               Next
          Next
     End With
End Sub
12classeur1-27.xlsm (37.35 Ko)

Bonjour Bart.

Exactement ce que je voulais. SUPER

À tout hasard, lorsque je rajoute des noms, aurais tu une formule (exemple dans le fichier que tu m'as retourné classeur1-27.xlsm) qui me classerait dans l'ordre alphabétique les tableaux de la colonne A C E G H.

Bonne réception.

Cordialement.

Bonjour,
Une proposition.
Cdlt.

Public Sub Main()
Dim ws As Worksheet, lo As ListObject, rng As Range, n As Long, I As Long
    Set ws = ActiveSheet
    For I = 1 To ws.ListObjects.Count
        Set lo = ws.ListObjects(I)
        If lo.DataBodyRange Is Nothing = False Then
            With lo.Sort
                .SortFields.Add Key:=lo.ListColumns(1).DataBodyRange
                .Header = xlYes
                .Apply
                .SortFields.Clear
            End With
            n = WorksheetFunction.CountA(lo.ListColumns(1).DataBodyRange)
            Set rng = lo.Range(1, 1).Resize(n + 1)
            lo.Resize rng
        End If
    Next I
End Sub

Bonjour Jean-Eric

Merci pour votre proposition.

elle correspond à ma demande.

Mon seul soucis est que le classement s'effectue bien mais reste en minuscule.

Serait -t-il possible que les minuscules passent en MAJUSCULE.

Bonne réception.

Cordialement.

re, Jean-Eric,bejouette,

Public Sub Main()
     Dim LO, n, i
     For Each LO In ActiveSheet.ListObjects
          If LO.ListRows.Count Then
               LO.Range.Sort LO.Range(1), xlAscending, Header:=xlYes
               n = WorksheetFunction.CountA(LO.ListColumns(1).DataBodyRange)
               If n > 0 Then LO.Resize LO.Range.Resize(n + 1)
               For i = 1 To LO.ListRows.Count
                    With LO.DataBodyRange(i, 1)
                         If .Value <> UCase(.Value) Then .Value = UCase(.Value)
                    End With
               Next
          End If
     Next
End Sub

Bonjour Bart et Jean-Eric

SUPER

GÉNIAL

UN GRAND MERCI À TOUS LES DEUX.

Bien cordialement.

Rechercher des sujets similaires à "modifier tableaux differentes longueurs lignes vba meme feuille"