Suppression des cellules à partir de la cellule à coté

Bonjour,

SVP est-ce que quelqu'un peut m'aider ça fait plusieurs jours que je trouve pas de solution, le traitement que je souhaite faire : balayer une colonne de données (chiffres) à partir de la cellule B50, et si la valeur de la cellule est égale à 0 on supprime cette cellule et celle à coté jusqu'à ce qu'on arrive à une cellule supérieur à 0 et on arrête la boucle, Voila le code que j'ai fait

Sub Test()

Range("B50", Range("B50").End(xlDown)).Select

Dim Cel As Range

Do Until Cel.Value > 0

Cel.Offset(0, 1).Clear

Cel.Clear

Loop

End Sub

Et voila l'erreur qu'on me dit après l'exécution

image

et quand je débogue, on me dit que l'erreur c'est sur cette ligne Do Until Cel.Value > 0
Merci beaucoup pour vos retour d'avance

Bonjour,

C'est supprimer ou effacer que vous voulez faire ?

Edit :

essayez ceci :

Sub Test()
Dim Cel As Range

For Each Cel In Range("B50", Range("B50").End(xlDown))
    If Cel.Value = 0 Then Range(Cel.Offset(0, 1), Cel).Clear
Next Cel
End Sub

ou ceci :

Sub Test()
Dim Cel As Range

For Each Cel In Range("B50", Range("B50").End(xlDown))
    If Cel.Value = 0 Then
        Range(Cel.Offset(0, 1), Cel).Clear
    Else: Exit Sub
    End If
Next Cel
End Sub

Le tout est de voir, si B50 = 1, on arrête la boucle ?

Merci pour votre réponse rapide,

Super ça a marché, j'ai essayer le deuxième code par contre moi je veux supprimer carrément la cellule et décaler en haut

J'ai essayé de rajouter le shift:=xl mais ça me génère une erreur

j'ai essayer le deuxième code par contre moi je veux supprimer carrément la cellule et décaler en haut

Essayez comme ceci alors

Sub Test()
Dim i As Integer

For i = Range("B" & Rows.Count).End(xlUp).Row To 50 Step -1
    If Range("B" & i) = 0 Then
        Range("B" & i & ":C" & i).Delete
    Else: Exit Sub
    End If
Next i
End Sub

Cordialement

Enfin j'ai remplacer le Clear par Delete et ça a marché :

Sub Test()
Dim Cel As Range

For Each Cel In Range("B50", Range("B50").End(xlDown))
    If Cel.Value = 0 Then
        Range(Cel.Offset(0, 1), Cel).Delete shift:=xlUp

    Else: Exit Sub
    End If
Next Cel
End Sub

Merci beaucoup

Rechercher des sujets similaires à "suppression partir cote"