Microsoft 365 Suppression de cellules vide

Le Rouky

XLDnaute Nouveau
Le forum,

j'ai essayé de faire une macro pour retirer les cases vide pouvant se trouver de le cellule "D" a la dernière cellule vide.
or lorsque je l'exécute en coloriant ces cellules, cela fonctionne, mais si j'essaye de les supprimer, il en supprime plus que prévu.
je ne comprends pas pourquoi, pourriez vous refaire mon code et me donner l'explication de mon erreur.

VB:
Private Sub Mise_en_Page()

lig = Cells(Rows.Count, 3).End(xlUp).Row

For I = 1 To lig
    col = 0
    col = Range("D" & I).End(xlToRight).Column - 1
    If Range("A" & I).Value <> "" And Range("D" & I).Value = "" Then
        For J = 4 To col
   
            'Range(Range("D" & I), Cells(I, J)).Delete Shift:=xlToLeft
            Range(Range("D" & I), Cells(I, J)).Interior.ColorIndex = 4
           
        Next J
    End If
Next I

End Sub

Cordialement
 

Pièces jointes

  • Essai.xlsm
    23.2 KB · Affichages: 3
Solution
Bonjour @Le Rouky

Edit Bonjour @mapomme
mais si j'essaye de les supprimer, il en supprime plus que prévu.

Essaye ceci

VB:
Private Sub Mise_en_Page()
lig = Cells(Rows.Count, 3).End(xlUp).Row
For i = lig To 1 Step -1
    If Range("A" & i).Value <> "" And Range("D" & i).Value = "" Then
        col = Range("D" & i).End(xlToRight).Column - 1
        Range(Range("D" & i), Cells(i, col)).Delete Shift:=xlToLeft
    End If
Next i
End Sub

Phil69970

XLDnaute Barbatruc
Bonjour @Le Rouky

Edit Bonjour @mapomme
mais si j'essaye de les supprimer, il en supprime plus que prévu.

Essaye ceci

VB:
Private Sub Mise_en_Page()
lig = Cells(Rows.Count, 3).End(xlUp).Row
For i = lig To 1 Step -1
    If Range("A" & i).Value <> "" And Range("D" & i).Value = "" Then
        col = Range("D" & i).End(xlToRight).Column - 1
        Range(Range("D" & i), Cells(i, col)).Delete Shift:=xlToLeft
    End If
Next i
End Sub
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
315 087
Messages
2 116 084
Membres
112 655
dernier inscrit
fannycordi