VBA Excl 2007 répétition de macro non permise

Résolu
jacques_nl Messages postés 3 Statut Membre -  
jacques_nl Messages postés 3 Statut Membre -
bonjour,

En utilisant la macro suivante, ça fonctionne seulement une fois.
j'obtiens une erreur "variable objet ou variable de bloc With non définie" dès la seconde utilisation de cette macro.
Cette macro trouve les incidences "2" et les remplace par "5"
Merci de me donnr une piste. Voici le code

With Worksheets(1).Range("a1:a500")
Set c = .Find(2, lookin:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Value = 5
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With

1 réponse

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour,

    L'exemple de l'aide "Find" de Microsoft ne m'a jamais convaincu (mais...)

    sur une colonne ("A1:A500") essaies

    Sub xxx()
    Dim Vieu As Long, Nouv As Long, Plage As String
    Dim Nbre As Integer, Lig As Long, Cptr As Integer
    Vieu = 2
    Nouv = 6
    Plage = "A1:A500"
    With Sheets(1)
    Nbre = Application.CountIf(.Range(Plage), Vieu)
         If Nbre = 0 Then GoTo vide
         Lig = 65536 'XL<2007
         For Cptr = 1 To Nbre
              Lig = .Columns(1).Find(Vieu, .Cells(Lig, 1), xlValues).Row
              .Cells(Lig, 1) = Nouv
         Next
    End With
    Exit Sub
    vide:
    MsgBox " Valeur " & Vieu & " inconnue dans la plage  " & Plage, vbExclamation
    End Sub
    

    Michel
    0
    1. jacques_nl Messages postés 3 Statut Membre
       
      WOW! je suis impressionné.
      Réponse rapide et très efficace. Merci!

      Jacques
      0