VBA Excl 2007 répétition de macro non permise
Résolu
jacques_nl
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
jacques_nl Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
jacques_nl Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
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
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:
- VBA Excl 2007 répétition de macro non permise
- Save as pdf office 2007 - Télécharger - Bureautique
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Comment supprimer une page sur word 2007 - Guide
1 réponse
Bonjour,
L'exemple de l'aide "Find" de Microsoft ne m'a jamais convaincu (mais...)
sur une colonne ("A1:A500") essaies
Michel
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
Réponse rapide et très efficace. Merci!
Jacques