VBA-Supprimer ligne à condition

Le
Sunburn
Bonjour,
je voudrais supprimer, sur la feuille "ALPHA" de mon tableau, toutes les
lignes qui contiennent un chiffre supérieur à 100000 inscrit dans la colonne
C.

Je vous remercie.
Yann
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
FFO
Le #4464601
Salut à toi
Je te propose ceci :

Sheets("ALPHA").Range("C65535").End(xlUp).Select
Do While ActiveCell.Address <> Range("C1").Address
If ActiveCell > 100000 Then
ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(-1, 0).Select
Loop
If ActiveCell > 6800 Then
ActiveCell.EntireRow.Delete
End If

Qu'en penses tu ???


Bonjour,
je voudrais supprimer, sur la feuille "ALPHA" de mon tableau, toutes les
lignes qui contiennent un chiffre supérieur à 100000 inscrit dans la colonne
C.

Je vous remercie.
Yann


Sunburn
Le #4464501
Re,
en fait, là il me supprime beaucoup plus de ligne, et surtout des lignes où
la cellule C est vide ou avec des caractères non-chiffre.
Pour le brider plus, on peut ptèt lui dire de supprimer les lignes où la
cellule C est comprise entre 100000 et 999999.
je vais essayer,

Ou faut-il travailler autrement? :
(En fait, c'est pour supprimer les lignes que j'ai créé avec la macro que tu
m'a aidé la semaine dernière). Donc je sais pas si ça marche de supprimer ce
qu'une macro a créé, même à des dates différentes, après avoir travaillé sur
le fichier et enregistrment successifs (mais sans modifier ce qui avait été
copié-collé par macro), je sais pas. Si oui, ça serait sûrment plus simple.
Merci.
Yann


Salut à toi
Je te propose ceci :

Sheets("ALPHA").Range("C65535").End(xlUp).Select
Do While ActiveCell.Address <> Range("C1").Address
If ActiveCell > 100000 Then
ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(-1, 0).Select
Loop
If ActiveCell > 6800 Then
ActiveCell.EntireRow.Delete
End If

Qu'en penses tu ???


FFO
Le #4464441
Je pensais que la colonne ne comportait que des chiffres
Essaye donc plutôt ce code :

Sheets("Onglet").Range("C65535").End(xlUp).Select
Do While ActiveCell.Address <> Range("C1").Address
If VarType(ActiveCell.Value) ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(-1, 0).Select
Loop
If VarType(ActiveCell.Value) ActiveCell.EntireRow.Delete
End If

Si malgré tout des cellules vides de la colonne C disparraissent tu peux
remplacer les instructions :
If VarType(ActiveCell.Value) par
If ActiveCell ActiveCell.Value > 6800 Then
mais me concernant aprés test ce n'est pas utile


Re,
en fait, là il me supprime beaucoup plus de ligne, et surtout des lignes où
la cellule C est vide ou avec des caractères non-chiffre.
Pour le brider plus, on peut ptèt lui dire de supprimer les lignes où la
cellule C est comprise entre 100000 et 999999.
je vais essayer,

Ou faut-il travailler autrement? :
(En fait, c'est pour supprimer les lignes que j'ai créé avec la macro que tu
m'a aidé la semaine dernière). Donc je sais pas si ça marche de supprimer ce
qu'une macro a créé, même à des dates différentes, après avoir travaillé sur
le fichier et enregistrment successifs (mais sans modifier ce qui avait été
copié-collé par macro), je sais pas. Si oui, ça serait sûrment plus simple.
Merci.
Yann


Salut à toi
Je te propose ceci :

Sheets("ALPHA").Range("C65535").End(xlUp).Select
Do While ActiveCell.Address <> Range("C1").Address
If ActiveCell > 100000 Then
ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(-1, 0).Select
Loop
If ActiveCell > 6800 Then
ActiveCell.EntireRow.Delete
End If

Qu'en penses tu ???




MichDenis
Le #4464401
Un petit exemple en utilisant le filtre automatique.
J'ai supposé que la colonne C avait un en-tête de colonne

'---------------------------------
Sub test()

Application.ScreenUpdating = False
With Worksheets("Feuil1") ' Nom Feuille à adapter
With .Range("C1:C" & .Range("C65536").End(xlUp).Row)
.AutoFilter field:=1, Criteria1:=">" & 100000
End With
With .Range("_FilterDatabase")
.Resize(.Range("_FilterDatabase") _
.Rows.Count - 1).Offset(1). _
SpecialCells(xlCellTypeVisible) _
.EntireRow.Delete
.AutoFilter
End With
End With
End Sub
'---------------------------------



"Sunburn"
Bonjour,
je voudrais supprimer, sur la feuille "ALPHA" de mon tableau, toutes les
lignes qui contiennent un chiffre supérieur à 100000 inscrit dans la colonne
C.

Je vous remercie.
Yann
Sunburn
Le #4464381
Re,
en fait, j'ai essayer avec ce code et ça marche, mais ce n'est peut être pas
très logique :
---
Sub SUPPRIMEBAL()
Sheets("C").Range("C65535").End(xlUp).Select
Do While ActiveCell.Address <> Range("C1").Address
If ActiveCell > 100000 And ActiveCell < 999999999 Then
ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(-1, 0).Select
Loop
End Sub
----
j'ai supprimer le deuxième IF car il supprimait la première ligne de ma
feuille.
Merci pour ton aide.
Yann



Je pensais que la colonne ne comportait que des chiffres
Essaye donc plutôt ce code :

Sheets("Onglet").Range("C65535").End(xlUp).Select
Do While ActiveCell.Address <> Range("C1").Address
If VarType(ActiveCell.Value) ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(-1, 0).Select
Loop
If VarType(ActiveCell.Value) ActiveCell.EntireRow.Delete
End If

Si malgré tout des cellules vides de la colonne C disparraissent tu peux
remplacer les instructions :
If VarType(ActiveCell.Value) par
If ActiveCell ActiveCell.Value > 6800 Then
mais me concernant aprés test ce n'est pas utile


HD
Le #4464341
Une suppression de lignes selon des critères et sans boucle !!! ça doit être
bien plus rapide qu'avec boucle...

Excellent cette fonction :-O

--
@+
HD
Publicité
Poster une réponse
Anonyme