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

[Résolu]
Signaler
Messages postés
15
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
30 juillet 2010
-
Messages postés
15
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
30 juillet 2010
-
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

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
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)
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 février 2011
7
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
Messages postés
15
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
30 juillet 2010

Merci à toi Molenn.

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