Bonsoir Job75,Bonsoir Lucho63,
Plusieurs questions :
- supprimer ou effacer ?
- si supprimer, décaler vers la gauche ou vers le haut ?
- si effacer, faut-il effacer aussi la couleur orange ou la remplacer par du jaune ?
- quel critère avez-vous utilisé pour colorer en orange ? Valeur Inférieure à 1 ?
A+
Merci, de ta réponse, mais normalement mon tableau ne comporte pas de couleur, je veux supprimer toutes les données contenant un 0 et celles à droite d'un zéro.Bonjour Lucho,
Un essai en PJ avec :
VB:Sub Efface() For Each cell In Range("A1").CurrentRegion If cell.Interior.Color = RGB(255, 192, 0) Then cell.Value = "" cell.Interior.Color = xlColorIndexNone End If Next End Sub
Désolé de n'avoir pas compris.Je souhaite supprimer les cellules oranges ci-dessous
Excuse moi, je me suis mal expriméDésolé de n'avoir pas compris.
Quand on supprime une cellule :Au mieux, supprimer et décaler vers la gauche, mais supprimer me suffira.
J'ai besoin que les cellules se décalent vers la gaucheQuand on supprime une cellule :
- soit les cellules à droite se décalent vers la gauche
- soit les cellules en dessous se décalent vers le haut.
Alors utilisez cette macro :J'ai besoin que les cellules se décalent vers la gauche
Sub Supprimer()
Dim ncol%, i&, j%, x
Application.ScreenUpdating = False
With ActiveSheet.UsedRange
ncol = .Columns.Count
For i = 1 To .Rows.Count
For j = ncol To 1 Step -1
x = .Cells(i, j)
If IsNumeric(CStr(x)) Then If x < 1 Then .Cells(i, j).Delete xlToLeft
Next j, i
End With
End Sub
Sub Supprimer()
Dim ncol%, i&, j%, x
Application.ScreenUpdating = False
With ActiveSheet.UsedRange
ncol = .Columns.Count
For i = 1 To .Rows.Count
For j = ncol To 1 Step -1
x = .Cells(i, j)
If IsNumeric(CStr(x)) Then If x < 1 Then .Cells(i, j).MergeArea.Delete xlToLeft
Next j, i
End With
End Sub
Bonjour,Alors utilisez cette macro :
VB:Sub Supprimer() Dim ncol%, i&, j%, x Application.ScreenUpdating = False With ActiveSheet.UsedRange ncol = .Columns.Count For i = 1 To .Rows.Count For j = ncol To 1 Step -1 x = .Cells(i, j) If IsNumeric(CStr(x)) Then If x < 1 Then .Cells(i, j).Delete xlToLeft Next j, i End With End Sub
Merci beaucoup pour votre réponse.Il faut toujours persévérer.