suppression cellules avec décalage

athizy

XLDnaute Nouveau
Bonjour a tous,
J'aimerai savoir comment en fonction d'une valeur dans une colonne, excel me supprime automatiquement certaines cellules tout en me décalant mes cellules vers le haut.
Ci-joint mon fichier avec la condition de suppression : rendu "OUI"

Si vous avez des idées.
Merci d'avance.
Cordialement
 

Pièces jointes

  • test.xls
    22 KB · Affichages: 57
  • test.xls
    22 KB · Affichages: 59
  • test.xls
    22 KB · Affichages: 55

Caillou

XLDnaute Impliqué
Re : suppression cellules avec décalage

Bonjour,

Essayes ceci :
Code:
Sub test()
  Dim c As Range
  Application.ScreenUpdating = False
  For Each c In Range("D:D")
    If c.Value = "OUI" Then
      c.EntireRow.Delete
    End If
  Next
End Sub
A adapter en fonction de la colonne (ici D)...

Caillou
 

Dull

XLDnaute Barbatruc
Re : suppression cellules avec décalage

Salut athizy, Caillou, le Forum

Alors Peut-être comme cela. Quoique j'avais compris comme Caillou:p

Code:
Sub EffAceLigne()
Application.ScreenUpdating = False
For i = Range("D65536").End(xlUp).Row To 2 Step -1
    If Cells(i, 4) = "OUI" Then Cells(i, 4).Delete
Next i
Application.ScreenUpdating = True
End Sub
Bonne Journée
 

Caillou

XLDnaute Impliqué
Re : suppression cellules avec décalage

Re,

Oui tu remplaces la ligne
c.EntireRow.Delete
par
c.Delete Shift:=xlUp


Attention s'il y a plusieurs OUI consécutifs, la macro ne les supprimera pas tous (il faut la lancer plusieurs fois) - Désolé j'ai plus trop le temps de regarder (peut-etre plus tard si personne ne s'est interessé au pb)

Caillou
 

athizy

XLDnaute Nouveau
Re : suppression cellules avec décalage

Autant pour moi je me suis mal exprimé.
Je veux en faites supprimer toutes les valeurs des cellules correspondants à la référence.
ref dateE dateS rendu.

La dernière macro ne me supprime que la valeur de rendu.

Si vous avez des idées.
Merci d'avance
 

Dull

XLDnaute Barbatruc
Re : suppression cellules avec décalage

Re le fil

Dernier essai ;)

Code:
Sub EffAceLigne()
Dim i As Long
Application.ScreenUpdating = False
For i = Range("D65536").End(xlUp).Row To 2 Step -1
    If Cells(i, 4) = "OUI" Then Range("B" & i & ":" & "D" & i).Delete
Next i
Application.ScreenUpdating = True
End Sub
Bonne Journée
 

Dull

XLDnaute Barbatruc
Re : suppression cellules avec décalage

Re azhity, le Fil

Alors là jenecomprendplus :confused:

le code proposé par Caillou devrais te convenir sans problème car au départ j'avais compris comme lui

si tu veux effacer les éléments de la ligne A, B, C et D et Suivantes

utilise ce Code le même que Caillou

Code:
Sub EffAceLigne()
Dim i As Long
Application.ScreenUpdating = False
For i = Range("D65536").End(xlUp).Row To 2 Step -1
    If Cells(i, 4) = "OUI" Then Cells(i, 4).EntireRow.Delete
Next i
Application.ScreenUpdating = True
End Sub
Ou alors ton example n'est pas représentatif et tu as des données en E, F etc...

alors utilise ce code

Code:
Sub EffAceLigne1()
Dim i As Long
Application.ScreenUpdating = False
For i = Range("D65536").End(xlUp).Row To 2 Step -1
    If Cells(i, 4) = "OUI" Then Range("A" & i & ":" & "D" & i).Delete
Next i
Application.ScreenUpdating = True
End Sub
Bonne Journée
 

athizy

XLDnaute Nouveau
Re : suppression cellules avec décalage

Certes ces deux macro fonctionnent correctement.

Cependant ayant des données sur mes colonnes E et F (Désoler je n'ai pas mis ces valeurs dans mon exemple.)

je voudrais que celles-ci ne se modifient pas et ne soient pas supprimer.
Donc la deuxième macro fonctionne mais me décale les valeurs de mes cellules situé en E et F

Comment faire?
Merci d'avance.
 

athizy

XLDnaute Nouveau
Re : suppression cellules avec décalage

Voici une solution qui convient.

Sub Macro1()
Range("A1").Select
DerLigne = Selection.End(xlDown).Row
For i = DerLigne To 2 Step -1
If Cells(i, 4).Value = "OUI" Then
Range("A" & i & ":D" & i).Select
Selection.Delete Shift:=xlUp
End If
Next

End Sub

Bonne continuation.
 

Discussions similaires

Statistiques des forums

Discussions
312 677
Messages
2 090 805
Membres
104 671
dernier inscrit
Guilbry