Problème avec For Each [Résolu]

Signaler
Messages postés
5
Date d'inscription
mercredi 22 avril 2009
Statut
Membre
Dernière intervention
24 avril 2009
-
Messages postés
5
Date d'inscription
mercredi 22 avril 2009
Statut
Membre
Dernière intervention
24 avril 2009
-
Bonjour, tout le monde et merci pour vos réponses
Voila je suis débutant et j'ai un petit souci avec une macro For Each. En fait la macro fonctionne sauf que lorsque la condition souhaitée est trouvée, la valeur de ma cellule passe à "vrai" et donc ne garde pas sa valeur initiale. Comment faire pour remédier à cela ?

Sub essai()

Dim plage As Range, cellule As Range
   Set plage = Range("a6:a9")
   For Each cellule In plage
   If (cellule.Value = Range("a1")) Then
   Range("b1").Copy
   cellule.Value = cellule.Offset(0, 1).PasteSpecial
   End If
  
   Next cellule

End Sub

Merci

Vikings

3 réponses

Messages postés
219
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
20 décembre 2010

Salut
Comme le coller est bien réel, donc VRAI, la cellule en donne le résultat. Il suffit de ne pas écrire ==> cellule.Value = cellule.Offset(0, 1).PasteSpecial

Sub essai()
    Dim plage As Range, cellule As Range
   
    Set plage = Range("a6:a9")
   
    For Each cellule In plage
        If (cellule.Value = Range("a1")) Then
            Range("b1").Copy
            cellule.Offset(0, 1).PasteSpecial
        End If
    Next cellule
End Sub

CNTJC
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
en clair, PasteSpecial effectue le collage...

pas besoin de jouer avec une affectation
Messages postés
5
Date d'inscription
mercredi 22 avril 2009
Statut
Membre
Dernière intervention
24 avril 2009

Un grand merci pour cette réponse rapide et précise. Et bien sûr cela fonctionne parfaitement comme voulu.
Encore merci.
De plus je crois comprendre la subtilité de mon erreur de départ.

Vikings