Copier - Coller & Décaler

Bonjour à toutes et à tous !

Je viens vous demander de l'aide pour ma macro...

Je vous explique vite fait le contexte :

Il s'agit d'un fichier permettant de demander au magasin interne la juste quantité dont j'ai besoin en carrelet bois.

En cliquant sur un bouton "Valider journée" ce trouvant sur la feuille "Listes carrelets", je veux copier/coller la quantité ce trouvant dans une cellule sur la feuille "Listes carrelets" dans la feuille Cumul stock en décalant tout les jour de une colonne (pour pouvoir avoir un historique).

La macro ci-dessous est une partie de celle que je veux créer au final.

Le problème est qu'elle ne fonctionne pas !

Pouvez-vous m'aider ?

Sub Valider_journée()
i = Sheets("Cumul stock").Cells(2, 3).End(xlToRight).Column + 1
Sheets("Listes carrelets").Select
Range("C4").Select
  Selection.Copy
Sheets("Cumul stock").Activate
Cells(2, i).Select
  Selection.PasteSpecial Paste:=xlPasteValues
  Selection.NumberFormat = "m/d/yyyy"
Sheets("Listes carrelets").Select
End Sub

Merci d'avance !!

Bonsoir,

A essayer :

Sub Valider_journée()
    Sheets("Listes carrelets").Range("C4").Copy
    With Sheets("Cumul stock").Cells(2, 3).End(xlToRight).Offset(0, 1)
            .PasteSpecial xlPasteValues
            .NumberFormat = "m/d/yyyy"
    End With
End Sub

Cordialement.

Bonjour,

Avec ta solution j'ai toujours le même problème entre ma ligne 3 et 4 :

"Erreur définie par l'application ou par l'objet"

J'ai essayé plusieurs modification mais rien n'y fait....

je joint un fichier modifié j'ai simplement remplacer tout les nom que l'on utilise nous par d'autre....

La personne qui va renseigner ce fichier tout les jour va le faire sous l'onglet saisis.

Une fois tout les besoin saisie, il va sur l'onglet "listes carrelets" clique sur valider journée puis sur faire apparaître liste.

La deuxième macro j'ai réussis à l'adapter à mon besoin. Mais la première sur la fonction copié/collé décalé ne veux pas fonctionner !

21pour-of-modif.xlsm (42.33 Ko)

Tu pars d'une cellule vide, la recherche vers la droite ne peut pas marche, elle marcherait en partant de A si A n'était pas vide non plus. Donc il faut la faire vers la gauche :

Sub Valider_journée_2()
    Sheets("Listes carrelets").Range("C4").Copy
    With Sheets("Cumul stock").Cells(2, Columns.Count).End(xlToLeft).Offset(0, 1)
            .PasteSpecial xlPasteValues
            .NumberFormat = "m/d/yyyy"
    End With
End Sub

Et si tu pouvais ne pas détériorer mon code, j'apprécierais !

Je tente de faire comprendre que les Select, Selection et autres Activate constitue du code inutile et parasite (sauf très rares exceptions), qui ne fait rien d'autre que ralentir VBA en multipliant des détours dont il n'a pas besoin, alors en retrouver dans du code que j'ai émis n'a pas de quoi me satisfaire.

Cordialement.

Merci MFerrand,

Effectivement en partant d'une cellule vide, cela ne fonctionne pas.

j'ai réussi à comprendre cela et à le modifier avant ta réponse mais le tien est tout de même plus light car il n'y a pas tout les "select" comme tu le dis.

Je suis désolé de t'avoir vexé en ayant modifier ton code...

Mais cela est-du au faite que j'ai essayé de le décomposer pour comprendre d'ou venait le problème. Je suis débutant en macro et il est donc pas évident de tout bien comprendre...

En tout cas je prend note qu'il faut éviter cette fonction.

Merci pour ton aide !!!

Ce n'est pas le fait de modifier qui m'a chagriné (on a toujours besoin de modifier du code...) ni une question de style (je ne modifie pas dans ce cas, même si j'aurais écrit autrement), j'espère que tu l'as compris.

Bonne continuation.

Rechercher des sujets similaires à "copier coller decaler"