Do until.. pour un nombre de lignes limitées.

Résolu
Jefman007 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   -  
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je veux faire une macro qui supprimera une ligne dont une des cellule comportera la mention "Annulé (avec pondération)". Trouver la ligne et la supprimer n'est pas un problème, j'y suis arrivé avec ceci:

Sub Macro1()
'
' Supprimer entrée:  annulée avec pondération
    
    Sheets("Extract").Select
    Range("D1").Select
    
    Do Until ActiveCell.Value = "Annulé (avec pondération)"
    ActiveCell.Offset(1, 0).Select
    Loop

    ActiveCell.EntireRow.Select
    Selection.Delete Shift:=xlUp

End Sub


Cependant, s'il arrive que je n'ai pas de cellule avec cette mention, donc la macro telle quel va rouler à l'infinie...

C'est possible de la limiter à un nombre "X" de ligne ?

Exemple: après 15 lignes, arrêter le loop.

Merci d'avance !
A voir également:

3 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour,

Tu peux ne pas utiliser une boucle pour supprimer la ligne


Option Explicit
'-------
Sub Macro1()
Dim Lig As Integer
' Supprimer entrée: annulée avec pondération
With Sheets("extract")
On Error GoTo vide
Lig = .Columns("D").Find("Annulé (avec pondération)", .Range("D1"), xlValues).Row
Rows(Lig).Delete
End With
Exit Sub
vide:
MsgBox "la mention ""Annulé (avec pondération)"" inconnue dans colonne D"
End Sub
1
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Bonsoir

Modifies seulement ainsi ces lignes :

Do Until ActiveCell.Value = "Annulé" Or x = 15
ActiveCell.Offset(1, 0).Select
x = x + 1
Loop

Cdlmnt
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Bonjour,

Et pourquoi boucler pour chercher une valeur?

Tu peux, si tu le désires, utiliser la méthode Find. Comme cela, trouvé ou pas, tu n'as pas besoin de boucler sur X lignes...

0