VBA : supprimer une ligne contenant un mot

Fermé
Ju - 12 nov. 2007 à 11:29
 Ju - 12 nov. 2007 à 14:22
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

ShaBoo Messages postés 392 Date d'inscription mercredi 12 septembre 2007 Statut Membre Dernière intervention 5 septembre 2009 50
12 nov. 2007 à 11:46
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
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 !)
0
ShaBoo Messages postés 392 Date d'inscription mercredi 12 septembre 2007 Statut Membre Dernière intervention 5 septembre 2009 50
12 nov. 2007 à 12:04
Met ton code ici, stp
0
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
0
ShaBoo Messages postés 392 Date d'inscription mercredi 12 septembre 2007 Statut Membre Dernière intervention 5 septembre 2009 50
12 nov. 2007 à 13:00
et qu'est ce qui ne fonctionne pas ???
0
ShaBoo Messages postés 392 Date d'inscription mercredi 12 septembre 2007 Statut Membre Dernière intervention 5 septembre 2009 50
12 nov. 2007 à 13:24
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
0
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)
0
ShaBoo Messages postés 392 Date d'inscription mercredi 12 septembre 2007 Statut Membre Dernière intervention 5 septembre 2009 50
12 nov. 2007 à 14:05
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 ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour,

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