Suppression de 3 lignes

bonjour

dans un tableau qui commence à la ligne 14.

mon tableau est continué de bloques de 3 lignes

si dans un bloque les 3 lignes sont vides

alors me supprimer ce bloque

est-se possible ? très probablement que oui

merci de bien vouloir vous m'apporter votre aide

Alban

27exemple.xls (18.00 Ko)

Bonjour,

à tester

Sub SupprimeBlocVide()
Dim Lg%, i%, Plg As Range
    Lg = Range("c65536").End(xlUp).Row

    For i = Lg To 14 Step -3
        Set Plg = Cells(i - 2, "a").Resize(3, 4)
        If Application.CountA(Plg) = 0 Then Plg.Delete Shift:=xlUp
    Next i
End Sub

Amicalement

Claude

merci pour cette macro qui fonctionne ....

une variante :

est il possible de faire en sorte que la macro ne tienne pas compte des cellules d'une colonne (exemple colonne D).

ou sinon demander à la macro de tenir compte uniquement des cellules de la colonne A.

à vous de voir le plus simple ...

merci

Bonjour,

Les blocs ont-ils toujours que 2 lignes en colonne "A" ?

le tout est de savoir si la dernière ligne de la feuille = la dernière ligne du dernier bloc ?

édit: voir aussi, s'il faut supprimer les lignes entières ?

Bonne journée

Claude

il sagit de supprimer un bloq de 3 ligne (les bloqs sont toujours de 3 lignes)

si collone A les 3 cellules sont vides alors supprimer le bloq

"le tout est de savoir si la dernière ligne de la feuille = la dernière ligne du dernier bloc ?"

OUI tout à fait

édit: voir aussi, s'il faut supprimer les lignes entières ?

OUI

re,

Ne marche que si la dernière cellule du dernier bloc est remplie en colonne "C"

remplace le code par celui-ci

Sub SupprimeBlocVide()
Dim Lg%, i%, Plg As Range
    Lg = Range("c65536").End(xlUp).Row

    For i = Lg To 14 Step -3
        Set Plg = Cells(i - 2, "a").Resize(3, 1)
        If Application.CountA(Plg) = 0 Then Plg.EntireRow.Delete
    Next i
End Sub

pourquoi dois tu tenir compte de la colonne C ??

re,

La macro ne peut pas deviner où se trouve la dernière ligne remplie,

ici, j'ai pris la colonne "C"

peut-être qu'en voyant le fichier réel, on trouvera une autre façon,

ou alors, mettre en dessous du dernier bloc "Fin" (par exemple)

Claude

ça c'est une bonne idée

"ou alors, mettre en dessous du dernier bloc "Fin" (par exemple)"

en dessous du dernier bloque en colonne A j'inscris "fin"

re,

dans ce cas,

Sub SupprimeBlocVide()
Dim Lg%, i%, Plg As Range
    Lg = Range("a65536").End(xlUp).Row - 3 'ligne "Fin" -3 (dernier bloc)

    For i = Lg To 14 Step -3
        Set Plg = Cells(i, "a").Resize(3, 1)
        Plg.Select
        If Application.CountA(Plg) = 0 Then Plg.EntireRow.Delete
    Next i
End Sub

édit: supprime cette ligne , c'était pour tester

        Plg.Select

Claude

Cette macro fonctionne je t'en remercie ...

Malheureusement je ne vais pas pouvoir m'en servir, car

Ma feuille excel comprend un peu plus de 6000 lignes et cette macro prend trop de temps pour se réaliser ..

Donc à moins qu'il y aie un moyen raccourcir ce temps ...

Merci encore pour votre aide

Alban

Bonjour,

même avec 6000 lignes, çà devrait être quasi instantané !

tu as bien supprimé la ligne de code comme dit dans mon édit précédent ?

remplace la macro complète par celle-ci

Sub SupprimeBlocVide()
Dim Lg%, i%, Plg As Range
    Application.ScreenUpdating = False
    Lg = Range("a65536").End(xlUp).Row - 3 'ligne "Fin" -3 (dernier bloc)

    For i = Lg To 14 Step -3
        Set Plg = Cells(i, "a").Resize(3, 1)
        If Application.CountA(Plg) = 0 Then Plg.EntireRow.Delete
    Next i
End Sub

Claude

Bonjour à tous,

je suis tombé sur ce post par hasard et j'ai une question dans le même style.

comment supprimer les 4 dernières lignes d'un tableau (taille variable) excel par macro?

sachant que la première à supprimer est vide (cf: fichier joint)

merci

oza

19exemple.xls (18.50 Ko)

bonjour ozaland,

Ouvre un poste, on verra

Claude

Pas de suite alban ?

Tu as vu mon dernier message ?

Claude

Rechercher des sujets similaires à "suppression lignes"