Suppression de lignes

Didier:

Bonjour,

J'ai une nouvelle fois besoin de votre grande sapience, dans le fichier que je vous joints, j'aimerai ne supprimer QUE les lignes vides (en jaunes) et donc conserver les données en rouges avec les attributs d'ordre de numéros et dates à gauche des lignes respectives.

Comment cela se peut il? par un filtre? un code? un ordre divin?

Doz

Bonjour,

As-tu jeté un oeil ... au bas de cette page ... sur les six discussions ... identiques à ton sujet ...

Merci 007 pour tes liens, malheureusement malgré le titre identique ma question est bien différente...

bonjour

salut James

un essai avec une formule matricielle

12doz.xlsx (11.76 Ko)

cordialement

Bonjour tulipe_4,

je ne comprends pas ta réponse peux-tu m'en dire plus et comment l'appliquer? merci

Re,

La solution la plus efficace et la plus rapide pour supprimer des lignes d'une base de données est l'utilisation d'un filtre ...

Est-ce-que tu as déjà une macro à ta disposition ...?

Bonsoir,

Un exemple.

ALT F8, exécuter la procédure.

Cdlt.

Public Sub DeleteRowsInRange()
Dim lastRow As Long, lRow As Long
    Application.ScreenUpdating = False
    With ActiveSheet
        lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
        For lRow = lastRow To 2 Step -1
            If Application.CountA(.Cells(lRow, 4).Resize(, 4)) = 0 Then Rows(lRow).Delete shift:=xlUp
        Next lRow
    End With
End Sub

Bonjour Jean-Eric,

j'ai bien recopié ton code dans le module de Visual basic mais en exécutant la macro rien ne se passe....

Aurais je fais une mauvaise manip?

Cdlt

doz

Bonjour Jean-Eric,

j'ai bien recopié ton code dans le module de Visual basic mais en exécutant la macro rien ne se passe....

Aurais je fais une mauvaise manip?

Cdlt

doz

t'as pas mis de ciment ???

Bonjour,

@ doz : Une nouvelle proposition à étudier (plus complète).

@ tulipe_4 : Tes commentaires constructifs sont toujours appréciés.

Cdlt.

Public Sub DeleteRowsInRange2()
Dim lCol As Long, lastRow As Long, lastCol As Long, rngData As Range, rngFilter As Range
    Application.ScreenUpdating = False
    With ActiveSheet
        .AutoFilterMode = False
        If .FilterMode = True Then
            .ShowAllData
        End If
        lastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
        lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
        Set rngData = .Cells(1).Resize(lastRow, lastCol)
    End With
    For lCol = 4 To lastCol
        rngData.AutoFilter field:=lCol, Criteria1:="="
    Next
    On Error Resume Next
    Set rngFilter = rngData.Offset(1, 0).Resize(rngData.Rows.Count - 1, lastCol).SpecialCells(xlCellTypeVisible)
    On Error GoTo 0
    If Not rngFilter Is Nothing Then
        Application.DisplayAlerts = False
        rngFilter.Rows.Delete
    End If
    ActiveSheet.ShowAllData
End Sub

Bonjour Jean-Eric,

Je reviens vers toi et le code que tu as crée et je t'en remercie, mais je remarque qu'il marche très bien sur l'exemple du fichier que j'ai mis en ligne mais pas dans mon classeur perso; II y a t-il des infos a modifier pour qu'il soit valide dans mes fichiers? je ne connais pas la programmation donc imagine que tu t'adresses à un benêt inculte et ne parlant que le patois berrichon.

Merci pour ton aide

doz

Bonjour Doz,

Je veux bien de nouveau intervenir, mais avant tout, pourrais-tu jeter un sort à Tulipe_4?

Un petit sort du genre qui l'empêche de faire un Ctrl+Maj et Entrée... , ou encore, s'il tente cette action, qu'il répète 3 fois à voix haute, "Je ramollis!..."

Plus sérieusement, ton classeur perso est-il à l'identique de celui sur lequel j'ai travaillé?

A te relire.

Cdlt.

un sort contre Tulipe_4 non, mais j'ai quelques potions de ma composition..., en ce qui concerne l'exemple joint sur ce forum il reprend "l'essence" de mon fichier puisque les cellules jaunes a supprimer entre les cellules rouges ne sont jamais identiques en nombre, ce serait trop facile!

Re,

J'ai regardé ce que j'ai envoyé précédemment. Et le nombre de lignes supprimées est variable.

La condition est qu'il n'y ait pas de valeurs pour une ligne donnée en colonnes D, E, F et G.

Ai je omis quelque chose?

Cdlt.

Effectivement des données se trouvaient dans une colonne, ton code marche très bien.

Bravo pour ta science et encore merci de ton aide

Rechercher des sujets similaires à "suppression lignes"