Décaler la copie

Bonsoir,

J'ai la macro suivante

Sub liste2()

Application.ScreenUpdating = False

Dim Valeur As Long

With sheets("saisie_numo")

Valeur = .Range("k" & Rows.Count).End(xlUp).Row

For i = 1 To Valeur

If .Range("D" & i) < 104 And Range("D" & i) > 0 Then

.Range("c" & i).Copy Destination:=sheets("resultat").Range("a" & .Range("D" & i))

End If

Next i

End With

Application.ScreenUpdating = True

End Sub

Je souhaite decaler la copie en Range "a" de 5

Si "D" est 5 je voudrais copier en A10

Je ne trouve pas la syntaxe

Merci de votre aide

'Pierre

Salut pierre_br,

attention aux "." lors de l'usage de WITH...

If .Range("D" & i) < 104 And Range("D" & i) > 0 Then .Range("C" & i).Copy Destination:=Sheets("resultat").Range("A" & i + 5)

Pas sûr, pour ta question principale, d'avoir bien capté.

Si tu veux copier 5 lignes plus bas que la ligne de "D" si la condition est vraie, alors, comme ci-dessous...

Sinon, ré-explique plus clairement!

If .Range("D" & i) < 104 And .Range("D" & i) > 0 Then .Range("C" & i).Copy Destination:=Sheets("resultat").Range("A" & i + 5)

A+

Bonsoir

Ce que tu me proposes ne correspond pas à ce que je recherche.

Dans ma formule actuelle

.Range("c" & i).Copy Destination:=sheets("resultat").Range("a" & .Range("D" & i))

Je copie le contenu de "c"

si en "D10" je saisis "20" le contenu de "C10" est copié en "A20 "

et je souhaite le copier en A25

Ce que tu me propose si je rentre une valeur en d10 la copie se fait en A15.

Merci de revoir

Pierre

Salut pierre_br,

ainsi?

If .Range("D" & i) > 0 And .Range("D" & i) < 104 Then .Range("C" & i).Copy Destination:=Sheets("resultat").Range("A" & .Range("D" & i).Value + 5)

A+

bonsoir

super ça fonctionne

Merci

Rechercher des sujets similaires à "decaler copie"