Copier et coller les valeurs en fonction du mois

Bonjour à tous afin de gagner un temps précieux à chaque fin de mois je cherche une formule qui pourrait m'aider à faire cela :

Exemple onglet "sum"

image

En fin de mois pour fin novembre je veux que à l'appui sur un bouton cela me copie et colle toutes les valeurs de la ligne en bleu et que les cellules se mettent en jaune.

J'ai penser à créer des macros avec bouton pour chaque mois... mais n'y a t'il pas quelque chose de plus simple ? création d'un formulaire et bouton avec formules pour copier coller les valeur en fonction du mois voulu? (je veux faire la même chose dans l'onglet KPI....)

Merci d'avance pour votre aide!!

Bonjour,

Pour que cela fonctionne correctement, il faudrait que vous désigniez une cellule comportant l'année ou la date du jour, avez-vous prévu une cellule à cet effet?

Car, lorsqu'on va attaquer le mois de janvier, il faudra figer les valeurs de décembre, or si on ne possède pas l'année comment savoir si le mois de janvier est celui de l'année en cours ou celui de l'année qui vient de s'écouler.

La macro sera dans le module "ThisWorkbook, et se déclenchera à l'ouverture du fichier (Private Sub Workbook_Open())

Cdlt

Bonjour Arthuro

Il n'y a pas une possibilité en faisant par exemple à l'appui sur un bouton on copie colle la ligne b4 à B.... en fonction du mois de la cellule a4 (qui serait le mois fini).

Bonjour,

Vous posez de nouvelles questions avant de répondre à la mienne, je vous avais demandé s'il y avait une cellule qui contenait l'année, faute de réponse de votre part, j'en conclus que tous les mois font partie de la même année (donc il n' y a pas de rotation d'une année sur l"autre, par exemple on pourrait avoir novembre et décembre de l'année 2021 et et les autres mois de l'année 2022).

Je vous ai mis un bouton sur la feuille "Sum" qui agit sur les feuilles "Sum" et "PKI".

idem pour la feuille "PKI, il y a 3 tableaux avec un nombre de lignes différent, est -ce figé ou cela peut changer? Si c'est figé, il n'y a pas de problèmes, par contre si le nombre de lignes est variable, il faut que vous me donniez l'emplacement d'un élément reconnaissable pour chaque tableau (exemple: sur la dernière cellule de la colonne A est inscrit "TOTAL" ou autre chose)

J'ai répondu en fonction du peu d'éléments dont je disposais.

Cdlt

merci pour votre réponse. Mais bon là trop complexe pour moi le code. A distance cest compliqué... je ne vais pas pouvoir la réutiliser sur mon fichier final...

Bonjour,

Trop complexe pour moi le code

Pourtant je vois que votre fichier contient bien des macros, donc vous savez lire du code en VBA.

Ci-joint le code avec commentaires (si ça peut vous aider à comprendre)

Sub Copier_Valeurs()
    'déclaration des variables
    Dim f1 As Worksheet, f2 As Worksheet
    Dim Annee As Long, Mois As Long, i As Long

    Application.ScreenUpdating = False 'évite les rafraîchissement de l'écran et accèlère l'exécution du code
    Set f1 = Sheets("Sum") 'affectation des variables au noms des feuilles
    Set f2 = Sheets("KPI")
    Mois = Month(Date) 'relevé du N° du mois de la date en cours

    'traitement de la feuille "Sum"
    For i = 3 To 14 'de la ligne 3 à 14
        If Mois > i - 2 Then 'si le N° du mois de la date en cours est supérieur au N° de la  ligne-2 (correspondant au mois à traiter)
            Range(f1.Cells(i, "B"), f1.Cells(i, "DW")).Value = Range(f1.Cells(i, "B"), f1.Cells(i, "DW")).Value 'on rmplace les formules par les valeurs obtenues
            Range(f1.Cells(i, "B"), f1.Cells(i, "DW")).Interior.Color = RGB(255, 255, 204) 'on y affecte la couleur jaune
        End If
    Next i

    'traitement de la feuille "PKI"  (même principe que pour la feuille "Sum" mais application en colonne au lieu de ligne)
    For i = 5 To 16
        If Month(Date) > i - 4 Then
            Range(f2.Cells(3, i), f2.Cells(69, i)).Value = Range(f2.Cells(3, i), f2.Cells(69, i)).Value
            Range(f2.Cells(3, i), f2.Cells(20, i)).Interior.Color = RGB(255, 255, 204)
            Range(f2.Cells(24, i), f2.Cells(42, i)).Interior.Color = RGB(255, 255, 204)
            Range(f2.Cells(46, i), f2.Cells(69, i)).Interior.Color = RGB(255, 255, 204)
        End If
    Next i

    Set f1 = Nothing
    Set f2 = Nothing
End Sub

Cdlt

Merci beaucoup avec les commentaires je vais pouvoir m'entrainer sur un autre fichier pour comprendre le principe.

Merci pour votre temps!

Rechercher des sujets similaires à "copier coller valeurs fonction mois"