VBA : supprimer une ligne contenant un mot
Ju
-
Ju -
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
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
Configuration: Windows XP Internet Explorer 6.0 Excel 2003
5 réponses
-
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 -
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 !) -
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-
-
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)-
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 ...
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -