XL 2013 suppression de ligne en fonction de cellules vide dans trois colonnes

  • Initiateur de la discussion Initiateur de la discussion lagodille
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

lagodille

XLDnaute Occasionnel
Bonjour à tous,

j'ai besoin de supprimer les lignes entre la ligne 16 et l ligne 200 et dont les colonnes A, D, et G sont vides et j'ai fait cela

Sub sup_CelVide()
Dim celvide As Variant
Sheets("DEVIS").Select
For Each celvide In Range("A16:A200" & Range("D" & Range("G" & Rows.Count).End(xlUp).Row))
If celvide = "" And celvide.Offset(0, 3) = "" And celvide.Offset(0, 6) = "" Then
Rows(celvide.Row).EntireRow.Delete
End If
Next celvide
End Sub


Mais cela ne fonctionne pas pourquoi ?

merci d'avance
 
Bonjour Iago, bonjour à tous

Essaie cela :

VB:
Sub sup_CelVide()
Sheets("DEVIS").Select
For i = 200 To 16 Step -1
    If Cells(i, 1) = "" And Cells(i, 4) = "" And Cells(i, 7) = "" Then
        Rows(i).EntireRow.Delete
    End If
Next
End Sub

Dis-moi si cela t'aide
Bonne soirée
 
Bonjour le fil

Une autre façon de faire (sans boucle)
Tout comme chez patty58, mon code fonctionne (puisque je l'ai testé avant de le poster)
VB:
Sub sup_CelVide_TER()
Dim rng As Range, F As Worksheet: Set F = Sheets("DEVIS")
Application.ScreenUpdating = False
Set rng = F.Cells(16, "A").Resize(F.Cells(Rows.Count, "G").End(3).Row - 15, 7)
    With rng.Offset(, 8).Resize(, 1)
        .FormulaR1C1 = "=IF(COUNTA(RC[-8],RC[-5],RC[-2])=0,""$"",0)"
        .Value = .Value
        .SpecialCells(xlCellTypeConstants, 2).EntireRow.Delete
    End With
F.Columns(9).Delete
End Sub
Evidemment, il fonctionne sur mon fichier exemple tel que je l'ai construit 😉
A défaut d'avoir vu le fichier exemple du demandeur (*)

(*) allégé et anonymisé dans les règles de l'art 😉
 
Bonjour à tous 🙂 ,

Pour saluer et faire plaisir à @Staple1600, une suppression en une seule instruction donc sans boucle 😋
Testé sur le classeur joint. Cliquez sur le bouton Hop!

VB:
Sub sup_CelVide()
   With Sheets("Devis").Rows("16:200")
      On Error Resume Next
      Intersect(.Columns("a:a").SpecialCells(xlCellTypeBlanks).EntireRow, _
         .Columns("d:d").SpecialCells(xlCellTypeBlanks).EntireRow, _
         .Columns("g:g").SpecialCells(xlCellTypeBlanks).EntireRow).Delete
   End With
End Sub
 

Pièces jointes

Bonjour mapomme

Merci pour les endives
(Ca me donne des idées pour ce midi 😉
endives-jambon béchamel)

NB: Tu devrais renommer ta macro pour éviter le risque bien connu
de "Quand je lance ta macro, j'ai une erreur..."
😉
je dis cela pour les téméraires qui ferait un copier/coller dans le fichier exemple du demandeur où se niche déjà la macro originale 😉
 
Re

mapomme
J'ai stapelisé ton code
Puis je l'ai essayé
VB:
Sub sup_mapomme()
With Sheets("Devis").Rows("16:200")
On Error Resume Next
Intersect(.Columns(1).SpecialCells(4).EntireRow, .Columns(4).SpecialCells(4).EntireRow, .Columns(7).SpecialCells(4).EntireRow).Delete
End With
End Sub
Toi tu fais dans le radical-socialiste
Moi, je fais dans le socialiste
Précisions: ces considérations politiques ne sont là que pour la blague et aucun animal n'a été blessé pendant l'exécution des macros. 😉

En clair, mon code ne supprime les lignes que si les cellules des colonnes A,D et G sont vides sur celles-ci
Toi si toute la ligne est vide, elle est supprimée.
 
Bonjour Patty,

Désolé mais cela ne fonctionne pas 🙁
Est-ce que ce n'est pas plus simple de filtrer sur ton tableau sur [vide] -filtre textuel- et ensuite de choisir Onglet Accueil->groupe Rechercher et remplacer, commande Atteindre. Ensuite tu cliques sur cellules visibles seulement. Ils sont sélectionnés, tu choisis Supprimer dans le groupe cellules.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
235
Réponses
7
Affichages
163
Retour