Microsoft 365 Copier cellule selon la valeur d'une autre

Payne

XLDnaute Nouveau
Bonjour,

J'aimerais transférer les valeurs inscrites dans des cellules dans d'autres cellules selon la valeur d'une autre. Je m'explique: J'ai dans une cellule la fonction "=AUJOURDHUI()+10" qui me donne un mois avec des cellules sous celle-ci avec des montants. À côté j'ai le même genre de cellules mais la première a la fonction "=MOIS.DECALER(A1;1)" qui me donne le mois suivant avec des montants différents.

Ce que je veux faire est ex: transférer les montants de la colonne (Ici avril) dans la colonne (ici mars) lorsque mars change de mois et la colonne avril tombe à zéro.

J'ai inclus un exemple de la feuille excel

Merci à l'avance.
 

Pièces jointes

  • Classeur2.xlsx
    10.5 KB · Affichages: 6
Solution
Faite Alt+F11 pour aller dans VBE.
Vous devez avoir à gauche l'explorateur de projets affiché, sinon faite Ctrl+R pour l'afficher.
Vous y voyez un module ThisWorkbook. Doublecliquez dessus. Dans la fenêtre de code mettez ceci :
VB:
Option Explicit
Private Sub Workbook_Open()
   If Date >= Feuil1.[D1].Value Then
   Feuil1.[A1].Value = Feuil1.[D1].Value
   Feuil1.[B2:B7].Value = Feuil1.[E2:E7].Value
   Feuil1.[E2:E7].ClearContents
   End Sub
Figez la cellule A1 à la date où était censé avoir lieu le dernier basculement.
N'oubliez pas de l'enregistrer en tant que Classeur Excel prenant en charge les macros (*.xlsm).

Dranreb

XLDnaute Barbatruc
Bonsoir.
Il faut du VBA pour faire ça.
On peut difficilement l'effectuer lorsque la date change.
On peut plus facilement détecter si la date a changé lors de l'ouverture du classeur par exemple, ou à l'activation de la feuille. Mais il vaudrait mieux qu'une des dates soit figée: ça permettrait de savoir par rapport à la date du jour si elle n'a pas déja été rectifiée par la macro.
 

Dranreb

XLDnaute Barbatruc
Faite Alt+F11 pour aller dans VBE.
Vous devez avoir à gauche l'explorateur de projets affiché, sinon faite Ctrl+R pour l'afficher.
Vous y voyez un module ThisWorkbook. Doublecliquez dessus. Dans la fenêtre de code mettez ceci :
VB:
Option Explicit
Private Sub Workbook_Open()
   If Date >= Feuil1.[D1].Value Then
   Feuil1.[A1].Value = Feuil1.[D1].Value
   Feuil1.[B2:B7].Value = Feuil1.[E2:E7].Value
   Feuil1.[E2:E7].ClearContents
   End Sub
Figez la cellule A1 à la date où était censé avoir lieu le dernier basculement.
N'oubliez pas de l'enregistrer en tant que Classeur Excel prenant en charge les macros (*.xlsm).
 

Discussions similaires

Réponses
46
Affichages
640