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

Résolu/Fermé
Jefman007 Messages postés 17 Date d'inscription mercredi 12 février 2014 Statut Membre Dernière intervention 9 mars 2016 - Modifié par pijaku le 12/06/2014 à 08:35
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 12 juin 2014 à 08:46
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 !

3 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
12 juin 2014 à 08:46
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 14403 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 24 avril 2024 2 703
11 juin 2014 à 22:06
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 jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
12 juin 2014 à 08:38
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