VBA : supprimer une ligne contenant un mot

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
Configuration: Windows XP
Internet Explorer 6.0
Excel 2003

5 réponses

  1. ShaBoo Messages postés 406 Statut Membre 50
     
    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
  2. Ju
     
    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
    1. ShaBoo Messages postés 406 Statut Membre 50
       
      Met ton code ici, stp
      0
  3. Ju
     
    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
    1. ShaBoo Messages postés 406 Statut Membre 50
       
      et qu'est ce qui ne fonctionne pas ???
      0
    2. ShaBoo Messages postés 406 Statut Membre 50
       
      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
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Ju
     
    Bonjour,

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