Recopie automatique d'une cellule sous condition

FanExcel

XLDnaute Occasionnel
Bonjour à tout le forum:)

Je souhaiterais automatiser la recopie d’une formule de calcul suivant le mois d’établissement d’un tableau de bord.

Il s’agit du suivi budgétaire du chiffre d’affaires de magasin.
Par famille de produits (Jardinage et aliments dans l’exemple), comparer le budget au réalisé ou à la reprévision demandée aux responsables de magasins qui saisissent dans la ligne reprévision.

Cette ligne reprévision est modifiée lorsque le CA réellement réalisé est connu.
Dans ce cas, je « tire » la formule qui va chercher la ligne REA.

Je souhaiterais automatiser cette opération en fonction du numéro de mois qui figure dans la cellule L1 du fichier.
Dans l’exemple, le numéro de mois est 3. Obtenir dans la ligne 7 pour les mois 1 à 3 la formule = données de la ligne 6 et protéger les cellules. Laisser libres pour la saisie et non protégées les cellules des mois 04 à 12.

J’ai essayé en m’enregistrant mais ne sait pas comment définir la destination de la cellule copiée

Range("c7").Select
Application.CutCopyMode = False
Selection.Copy
Range("????????????").Select
ActiveSheet.Paste
Application.CutCopyMode = False

Ou, éventuellement, y intégrer un compteur ?
Dim i As Integer
i = Range("L1").Select

Je joins un petit bout de fichier, ce sera peut être plus explicite
Dans la feuille « Départ » un bout de la base
Dans la feuille essai, mes infructueuses tentatives.

D’avance merci
Et bonne journée à tout le forum.:)
 

Pièces jointes

  • TestRecopieAuto.xls
    44.5 KB · Affichages: 78

Odesta

XLDnaute Impliqué
Re : Recopie automatique d'une cellule sous condition

Bonjour FanExcel
Une solution parmis tant d'autre :

au lieu de spécifier la cellule par le commande 'Range', essayez la commande 'Cells'

Elle travaille avec des coordonnées ex : cells(2,3).value = Range("C2").value

Avec le premier argument votre ligne : ici la ligne 13, et en colonne, une valeur qui dépend du contenu de range("L1").value (qu'il faut transformer en integer avant) +2 (colonnes avant la n°1)

Donc, pour le
Range("E13").Select

vous pouvez le remplacer par
col = Cint(range("L1").value)+ 2
Cells(13, col).Select


C'est un début. Vous pouvez aisement vous passez de copier/coller, pour alleger la macro.


Bonne continuation
Cordialement
Olivier
 

FanExcel

XLDnaute Occasionnel
Re : Recopie automatique d'une cellule sous condition

Bonjour Odesta, bonjour les forumeurs ! :)

Merci Odesta, cela fonctionne. Je l'ai appliqué à la feuille "Départ" pour la ligne 13 :) en changeant de mois dans L1 (en rose)
Dois je maintenant recopier le code pour chaque ligne où je souhaite effectuer cette recopie auto ou est-il possible de l'appliquer à la ligne 13 et 7 (et d'autres dans la maquette réelle) ? :confused:

Encore merci et bonne journée à tous :)

Ci joint le fichier test à ce stade
 

Pièces jointes

  • TestRecopieAuto_2.xls
    45 KB · Affichages: 74

FanExcel

XLDnaute Occasionnel
Re : Recopie automatique d'une cellule sous condition

Hello tout le monde ! :)

Si parmi vous quelqu'un a une petite idée pour améliorer mon code, je suis preneur
Pour l'instant j'essaie en complétant le code pour chaque ligne concernée mais je pense qu'il est possible de le simplifier ? :confused:....

sauf que je sais pas le faire :eek:
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16