[Catégorie modifiée VBS -> VBA] Boucler sur une seule colonne

Résolu
kikooisachef Messages postés 15 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 30 juillet 2010 - 20 mai 2010 à 13:55
kikooisachef Messages postés 15 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 30 juillet 2010 - 20 mai 2010 à 14:38
Bonjour à tous,

J'ai un script qui marche bien. je souhaiterais l'améliorer.
Ce script fais la chose suivante : Il recherche un mot dans les cellules et si il trouve ce mot il supprime la ligne.

Tout fonctionne très bien sauf qu'il check TOUTES les cellules de toute la feuille.

Croyez-vous quîl est possible de lui demander de boucler seulement sur la/les colones ou la/les lignes choisis (par exemple la colonne B et ou la ligne 312) ?

Voici le code:

Sub Supression_ligne()
Do
'Recherche le mot clé
If Cells.Find(What:="***") Is Nothing Then
'Si il n'y à pas de mot clé passe à la cellule suivante
Exit Do
Else
'sinon efface la ligne
Cells.Find(What:="***").Activate
Selection.EntireRow.Delete
End If
Loop


End Sub


Merci d'avances pour vos précieuses réponses

3 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
20 mai 2010 à 14:26
Salut
La prochaine fois :
- Tu ne fais pas du VBScript, mais du VBA (for Application)
- Utilises la coloration syntaxique (3eme icone à droite) : cela permet de maintenair ta mise en forme du code (sinon, difficile à lire)

Si tu avais ouvert l'aide de la fonction .Find, tu aurais vu un exemple facilement adaptable à ton besoin.

Pour délimiter l'étendue de recherche, là aussi, c'est écrit dans l'aide :
    Dim maCellule As Range
    Set maCellule = Range("a1:a500").Find(What:="+++")
    Do While Not maCellule Is Nothing
        maCellule.EntireRow.Delete
        Set maCellule = Range("a1:a500").Find(What:="+++")
    Loop

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
20 mai 2010 à 14:20
La plage dans ton code est designée par Cells dans

If Cells.Find ...

Il faut donc remplacer par la plage qui t'intéresse.

If Range("B2:C132").Find ... par exemple

Molenn
kikooisachef Messages postés 15 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 30 juillet 2010
20 mai 2010 à 14:38
Merci à toi Molenn.

Merci Jack, la prochaine fois je vais faire mieux. Promis.
Rejoignez-nous