Suppression de ligne

  • Initiateur de la discussion williams
  • Date de début
W

williams

Guest
Bonjour à tous,

Je souhaiterais supprimer les lignes, si en colonne L les valeurs 11520 et 15000 sont présentent.

J'ai essayé quelques astuces présentent sur le Forum, mais sans succès. (Je pense surtout que je n'ais pas compris le principe).

Attention, je veux uniquement supprimer la ligne des colonne de A à M, mais je veux garder la suite. Ou alors mettre la ligne à blanc de A à M si ces valeurs sont rencontrer en colonne L.


Merci.

Ci-joint le fichier d'exemple.
 

Pièces jointes

  • Testvid.zip
    16.7 KB · Affichages: 11
M

michel

Guest
bonsoir Williams

j'espere que la macro ci dessous pourra t'aider : en fonction des données de la colonne L , les lignes sont effacées de A à M


Sub EffaceLignesConditionnel()
Dim Cell As Range
For Each Cell In Range("L2:L" & Range("L65536").End(xlUp).Row) 'definition de la plage à tester
If Cell = 11520 Or Cell = 15000 Then Range("A" & Cell.Row & ":M" & Cell.Row).ClearContents
Next
End Sub


bonne soirée
michel
 
B

Bernard

Guest
Bonsoir William

une petite macro qui efface les cellules de "A à M" lorsque les cellules de la colonne "L" sont égales à 15000 ou 11520.


Sub SuppCellule()
'Mise en place au départ
Range("L1").Select
Do While ActiveCell <> ""
'Effacement de ligne
If ActiveCell = 15000 Or ActiveCell = 11520 Then
ActiveCell.EntireRow.Range("A1", "M1").ClearContents
End If
ActiveCell.Offset(1, 0).Select
Loop

End Sub


Cordialement

Bernard
 
M

Michel_M

Guest
Bonsoir Williams, Michel, Bernard

Pendant qu'on y est , en voici une troisième:

Sub nettoyer()

Const val1 As Integer = 11520
Const val2 As Integer = 15000
Dim nbre1, nbre2, cptr As Long


ActiveSheet.Unprotect
Application.ScreenUpdating = False

nbre1 = Application.CountIf(Range("L2:L500"), val1)
nbre2 = Application.CountIf(Range("L2:L500"), val2)

'on ne boucle que sur les valeurs égales au constantes

cptr = 1
While cptr <= nbre1
lig = Columns(12).Find(val1, [L1], , , xlByRows).Row
Range(Cells(lig, 1), Cells(lig, 13)).ClearContents
cptr = cptr + 1
Wend

cptr = 1
While cptr <= nbre2
lig = Columns(12).Find(val2, [L1], , , xlByRows).Row
Range(Cells(lig, 1), Cells(lig, 13)).ClearContents
cptr = cptr + 1
Wend

'ActiveSheet.Protect

End Sub

Bonne soirée, Williams, tu as l'embarras du choix
Michel
 
W

williams

Guest
Bonjour,

C'est en effet ce que je cherchais, mais j'en voudrais (si possible) un peu plus.

Si une ligne est effacer, il faudrait que les lignes remontent d'un cran, pour prendre " la place ", evidement toujours entre le colonne de A à M.

Si vous avez une Idée.


Merci
 
P

Pascal76

Guest
Re

Tu as des valeurs dans les colonnes suivantes de N à IV ??

Si oui, Si on remonte les lignes tes valeurs ne vont plus correspondrent avec les colonnes suivantes ; ce n'est pas grave ?

Pascal
 
P

Pascal76

Guest
re

Il y avait une autre question William : Si on remonte les lignes des colonnes A à M tes valeurs suivnates ne correspondront plus est-ce grave ??
En effet si je supprime les valeurs par exemple de la ligne 6 des colonnes A à M et que je remonte toutes les valeurs les valeurs de la ligne 7 des colonnes A à M seront maintenant en colonne 6 par contre les valeurs des colonnes suivantes seront les anciennes valeurs.

Pascal
 
W

williams

Guest
Bonjour,

Non ce n'est pas grave.....

Tu veux dire que: La ligne 6 sera remplacé par la ligne 7, la ligne 7 par la ligne 8, la ligne 8 par la 9..........

C'est tout à fait cela qui me conviendrait.

En fait il faudrait supprimer la ligne 6 de A à M, et remonté les lignes suivantes en BLOC. (si possible)


Merci
 

Discussions similaires

Statistiques des forums

Discussions
312 779
Messages
2 092 045
Membres
105 167
dernier inscrit
JulJon2004