Copier la valeur d'une cellule selon une date

Bonjour à tous,

Comment le 1er de chaque mois je peux obtenir une copie dans une cellule d'une valeur contenu dans AI5, le mois suivant (toujours le 1er) le montant contenu dans AJ5, le mois suivant le montant de AK5, etc....jusqu'à GW5.

La feuille sur laquelle devra s'effectuer cette opération contient déjà des macros ainsi que sur le Thisworkbook, si besoin je ferais parvenir ces deux feuilles.

Par avance merci

cordialement

mibri

Bonjour,

Tu souhaites une réponse avec des macros ou sans macro ?

Peux-tu nous transmettre un exemple de fichier ?

Cdt,

Rémy

Bonjour Remy44

merci pour ta réponse, je préfère une macro automatique, ci joint un fichier je reste à ta disposition

cordialement

mibri

Bonsoir

Même sujet qu'ici

https://forum.excel-pratique.com/excel/copie-d-une-valeur-de-cellule-selon-un-calendrier-t32283.html

Macro à placer dans ThisWorkbook

Private Sub Workbook_Open()
  If Day(Date) = 1 Then
    With Sheets("Feuill1")
      .Range("C14") = .Cells(9, 25 + Month(Date))
    End With
  End If
End Sub

Contrairement à ce qui est marqué dans ton fichier le mois de septembre est dans la cellule AH et non dans AJ

Bonsoir Banzai64

Effectivement "même sujet" car je n'ai plus eu de réponse don j'ai réédité mon projet.

Bien sûr les cellules sont différentes car initialement j'avais pour exemple mon fichier original, mais il m'a fallu créer un fichier exemple donc petit décalage que je rectifierai.

Si je comprends bien ton code, il s'agit là de copier la valeur de AJ9 le 1/9/2012 et placer cette valeur dans C14.

Mais comment faire pour les copies des mois suivants .....

Est ce que tu peux m'expliquer cette ligne :

" .Range("C14") = .Cells(9, 25 + Month(Date)) "

Ou bien faut t il que je répète cette ligne ...?????

merci

cordialement

mibri


Petite confusion, j'ai changé ma date système au 1/8/2012, la copie s'est faite mais a copié la valeur du mois d'aout, alors que je voudrais obtenir chaque fois la valeur de M+2mois ( au 1/8 j'aurais du avoir la valeur du mois d'octobre) ainsi de suite

merci

mibri

Bonsoir

.Range("C14") = .Cells(9, 25 + Month(Date))

Dans la cellule C14 on copie la cellule de ligne 9, colonne 25 (Y) à laquelle on rajoute le décalage du mois en cours ce qui donne pour le 1er janvier : 25 + 1 = 26 (colonne Z) qui correspondant à janvier 2012

Et pour le 1er Septembre : 25 + 9 = 34 (colonne AH) qui correspond à Septembre 2012

PS : Suite à ton ajout si tu veux un décalage de 2 mois (ce que je n'avais pas compris au départ - J'avais pensé que tu avais fait une erreur (désolé) )il faut que tu prennes comme base la colonne 27

Donc la ligne devient

.Range("C14") = .Cells(9, 27+ Month(Date))
mibri a écrit :

Mais comment faire pour les copies des mois suivants .

Tu n'as rien à faire

Quand tu ouvriras ton fichier le 1er du mois suivant la macro copiera la cellule suivante dans C14

Correction de la macro pour que celle-ci soit valable les années suivantes

Une solution

Private Sub Workbook_Open()
  If Day(Date) = 1 Then
    With Sheets("Feuill1")
      .Range("C14") = .Cells(9, 27 + Month(Date) + ((Year(Date) - 2012) * 12))
    End With
  End If
End Sub

Bonjour Banzai64

merci beaucoup pour ta réponse excuse moi mais j'ai été un peu absent

J'ai fait un essai avec ton code sur mon fichier d'essai, c'est parfait.

Lorsque je colle ce code sur mon fichier d'origine j'ai un dysfonctionnement dans le Thisworkbook car il contient d'autres macros

je te fais parvenir une copie image avec l'ensemble des macros contenues..

faut il que je remplace feuill1 par le nom indiqué par l'onglet ou bien je peux laisser feuill1...

cordialement

mibri.

screenshot002

Bonjour Banzai64

Je pense qu'il est préférable que je t'adresse un fichier d’essai que je viens d'actualiser, tu auras ainsi le Thisworkbook complet avec son message

cordialement

mibri

Bonsoir

Rassemble tout dans la même macro

Private Sub Workbook_Open()
Dim I As Integer

If Day(Date) = 1 Then
    With Sheets("Feuill1")
      .Range("C14") = .Cells(9, 27 + Month(Date) + ((Year(Date) - 2012) * 12))
    End With
  End If
  Worksheets("Budgets").Activate
  If Range("H15") < 1155.76 Then
    Call Feuil1.cligno
  End If

  ' Changer ici le numéro de jour
  If Day(Now()) = 2 Or Sheets("SOC.GENERALE").Range("G7").Value <> "" Then
  Application.EnableEvents = False  ' Empêcher les évènements
    With Sheets("SOC.GENERALE")
      .Select
      With .Range("G7:M8")
        .Value = "Créditer 1155.76 € à HSBC par le Débit de la S.G"
        For I = 1 To 36
          If I Mod 2 = 0 Then
            .Interior.ColorIndex = xlNone '35
          Else
            .Interior.ColorIndex = 3
          End If
          Sleep (300)
        Next I
      End With
    End With
  End If
  Application.EnableEvents = True ' Activer les évênements
End Sub

Bonjour,

Bien reçu, merci pour ta réponse cela devrait être OK........

Bon Dimanche

cordialement

mibri

Rechercher des sujets similaires à "copier valeur date"