VBA : supprimer une ligne contenant un mot [Fermé]

Signaler
-
 Ju -
Bonjour,

Je suis "contraint" de me mettre sur VBA aujourd'hui . En attendant de m'y mettre serieusement (je passe a la fnac ce soir ;) ) j'aurais besoin d'une aide qui je pense va vous sembler évidente.

Je souhaite supprimer une ligne qui contient un mot (en loccurence "affecté"). Ce mot se situe toujours dans la meme colonne (A) mais selon les fichiers, pas sur la meme ligne.

J'ai trouvé plusieurs codes sur internet, mais aucun n'a repondu a ce besoin si simple
Merci

5 réponses

Messages postés
392
Date d'inscription
mercredi 12 septembre 2007
Statut
Membre
Dernière intervention
5 septembre 2009
49
Bonjour,

un code comme celui ci peut-il repondre à ta demande ?

With Worksheets(1).Range("A1:A500" )
      Set c = .Find("affecté", LookIn:=xlValues)
      If Not c Is Nothing Then
          Do
              Debug.Print c.Address
              Set c = .FindNext()
          Loop While Not c Is Nothing
      End If
End With
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Bonjour,

Merci de ta réactivité.

J'ai testé ton code mais rien ne se passe.
Au passage, mon fichier peut contenir plus de 500 lignes (ce n'est pas le cas aujourd'hui)

Est-ce que c'est pas le nom de la feuille que je dois changer ? (oui, je n'y connais vriament rien !)
Messages postés
392
Date d'inscription
mercredi 12 septembre 2007
Statut
Membre
Dernière intervention
5 septembre 2009
49
Met ton code ici, stp
Bonjour,

Rien de plus que ce que tu as suggéré. J'ai mis 600 car j'ai 510 lignes..

Sub deleteligneaffecte()
'

With Worksheets(1).Range("A1:A600")
Set c = .Find("affecté", LookIn:=xlValues)
If Not c Is Nothing Then
Do
Debug.Print c.Address
Set c = .FindNext()
Loop While Not c Is Nothing
End If
End With


End Sub
Messages postés
392
Date d'inscription
mercredi 12 septembre 2007
Statut
Membre
Dernière intervention
5 septembre 2009
49
et qu'est ce qui ne fonctionne pas ???
Messages postés
392
Date d'inscription
mercredi 12 septembre 2007
Statut
Membre
Dernière intervention
5 septembre 2009
49
oupssss ...

Autant pour moi. Comme quoi de la necessité de tester ;p

Ceci fonctionne mieux comme cela :

Sub deleteligneaffecte()
'
With Worksheets(1).Range("A1:A600")
    Set c = .Find("affecté", LookIn:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
            'Debug.Print c.Address
            Debug.Print c.Row 'affiche le numero de ligne
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With

End Sub
Bonjour,

j'ai l'impression que rien ne se passe lorsque j'execute la macro. (et la ligne en question n'est pas supprimée)
Messages postés
392
Date d'inscription
mercredi 12 septembre 2007
Statut
Membre
Dernière intervention
5 septembre 2009
49
Tu as raison. La méthode avec .FindNext ne fonctionnera pas.

Je te renvoie sur ici :
Excel - VBA Problème de suppression de lignes...

et ici :
VBA Excel et suppression de lignes

ou plusieurs méthodes sont utilisés.

N'hésites pas en cas de problème ...
Bonjour,

Je regarde ca de plus pres des que possible
Dans tous les cas, merci de ton aide