VBA compteur boucle

Bonsoir au forum,

je voudrais que cette boucle tourne que 5 fois.

Sub vide()
 For i = 1 To 5
        Range("c3").Select
    Do While ActiveCell.Offset(0, -1) <> ""
        If ActiveCell <> "" And ActiveCell.Offset(0, -1) <> "" Then
            ActiveCell.Offset(1, 0).Select
          Else
            Selection.Delete Shift:=xlUp
        End If
    Loop
       Next i
End Sub

mais elle ne s'arrête pas ! qu'est-ce-qui ne va pas ?

amicalement

Claude.

Bonsoir,

Quel est l'utilité de la boucle FOR I =1 to 5 ?

Sinon essaye ceci :

Sub vide() 
 For i = 1 To 5 
        Range("c3").Select 
    Do While ActiveCell.Offset(0, -1) <> "" 
        If ActiveCell <> "" Then 
            ActiveCell.Offset(1, 0).Select 
          Else 
            Selection.Delete Shift:=xlUp 
        End If 
    Loop 
       Next i 
End Sub

Amicalement

Dan

Salut Dan,

c'est pareil, la boucle ne s'arrête pas !

c'est la 1ère fois que j"essaye de mettre un compteur pour arrêter une macro.

En fait, je veux supprimé les cellules vides dans une plage c3:c10

une idée ??

Claude.

re,

Je ne comprends pas ta macro dans ce cas car tu contrôles sur la colonne B avec cette instruction --> ActiveCell.Offset(0, -1) <> ""

essaye ceci si tu ne fais cela que sur la colonne C

Sub vide()
dim i as byte
For i = 3 To 10
If IsEmpty(Range("c" & i)) Then Range("c" & i).Delete Shift:=xlUp
Next i
End Sub

Amicalement

Dan

Bonsoir,

pour supprimer les cellules vides de C3 à C10 :

    Range("C3:C10").SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp

merci à vous deux,

ou je m'était embarqué !!!!

vos 2 solutions me vont, mais celle de felix est encore + direct.

j'ai même testé :Range("C3:H10").SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp

et çà marche.

Cordialement

à+....Claude.

4test-2.xlsx (9.96 Ko)
Rechercher des sujets similaires à "vba compteur boucle"