Signaler

[VBA] Suppression ligne cellule vide plage ! [Résolu/Fermé]

Posez votre question Detsou 4Messages postés jeudi 28 juillet 2011Date d'inscription 29 juillet 2011 Dernière intervention - Dernière réponse le 29 juil. 2011 à 09:50 par melanie1324
Bonjour,

Tout d'abord, désolé pour le titre pas très compréhensif, je n'avais pas la place nécessaire. Le titre devrait plutôt se nommer ainsi : Supprimer les lignes où se trouve des cellules non-vides, sur une plage prédéfinie.

Voici ce que j'ai pour l'instant :

Sub Macro8() 
' 
' Macro8 Macro 
' Macro enregistrée le 28/07/2011 par f207636 
' 
i = ActiveSheet.Cells(65535, 22).End(xlUp).Row 
For k = i To 4 Step -1 
j = ActiveSheet.Cells(20, 100).End(xlToLeft).Column 
For h = j To 20 Step -1 
If InStr(1, ActiveSheet.Cells(k, h), "1", 1) > 0 Then Rows(k).Delete 
Next 
Next 
End Sub


Pour l'instant, il me supprime seulement les lignes où il trouve un "1" et je voudrais qu'il supprime pour tout nombre >0.

Merci pour votre aide.

EDIT : Au final j'ai trouvé par moi-même. J'ai créé une autre macro permettant de créer une autre colonne avec la fonction NB.SI qui permettait de mettre un 1 ou un 0, au cas où il y avait des nombres >0, et ça me permettait d'avoir une macro plus simple :

Sub Macro3()

    For i = Cells(1, 1).CurrentRegion.Rows.Count To 1 Step -1
    If Cells(i, 256).Value > 0 Then Cells(i, 1).EntireRow.Delete
    Next

End Sub


Donc voilà, merci quand même !
Utile
+0
plus moins
bonjour,

voici ta solution :

Sub SelectionEtConcatenation()

Dim Plage As Range, Cel As Range


Set Plage =range(cells(1,1),cells(4,100)) 'la macro agira de la cellule de la ligne 1 colonne 1 à la cellule de la ligne 4 à la colonne 100

For Each Cel In Plage 'pour chacune des cellules comprises dans cette plage


If Cel.Value >= 1 Then 'si la valeur de la cellule est >= à 1
Rows(Cel).Delete Shift:=xlUp 'la ligne d ela cellule est supprimée.

End If
Next

End Sub

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !