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

Résolu/Fermé
jacques_nl Messages postés 3 Date d'inscription dimanche 18 septembre 2011 Statut Membre Dernière intervention 25 septembre 2011 - Modifié par jacques_nl le 25/09/2011 à 18:46
jacques_nl Messages postés 3 Date d'inscription dimanche 18 septembre 2011 Statut Membre Dernière intervention 25 septembre 2011 - 25 sept. 2011 à 19:23
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
A voir également:

1 réponse

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 25/09/2011 à 19:03
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
jacques_nl Messages postés 3 Date d'inscription dimanche 18 septembre 2011 Statut Membre Dernière intervention 25 septembre 2011
25 sept. 2011 à 19:23
WOW! je suis impressionné.
Réponse rapide et très efficace. Merci!

Jacques
0