Afficher résultat dans calendrier en fonction de dates

Bonjour,

néophyte dans ce domaine, je me suis malgré tout crée un tableau excel avec 5 feuilles (calendrier,bdc,modèle,portefeuille,saisie plan média) pour gérer des calculs sur un bon de commande (BDC) mais aussi gérer des dates de parutions sur un calendrier.

ma question est la suivante: faut il une formule ou une macro pour parvenir à transférer une parution " LIVRE1" par exemple de la feuille" plan de saisie média" en fonction des dates énumérées sous la colonne vers la feuille "calendrier type" a l'endroit des dites dates pour avoir un visuel global sur l'année des parutions par clients.

J'ai mis en copie le fichier en espérant compléter ma demande laborieuse

merci par avance

cordialement

Bonjour Vlad, bonjour le forum,

Avec un document ods je n'étais pas sûr d'enregistrer la macro. Alors je te propose le code et te laisse le soin de le placer dans ton fichier... Il renvoie en face de la date dans l'onglet calendrier, le nom de la parution en ligne 9 de l'onglet plan media :

Sub Macro1()
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim TD As Variant 'déclare la variable TD (Tableau des Dates)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Byte 'déclare la variable J (incrément)
Dim NP As String 'déclare la variable NP (Nom de la Parution)
Dim R As Range 'déclare la variable R (Recherche)

Set OS = Worksheets("SAISIE_PLAN_MEDIA") 'définit l'onglet source OS
Set OD = Worksheets("CALENDRIER_type_") 'définit l'onglet destination OD
TD = OS.Range("B17").CurrentRegion 'définit le tableau des dates TD
For I = 2 To UBound(TD, 1) 'boucle 1 : sur toutes les lignes I du tableau des dates TD (en partant de la seconde)
    For J = 1 To UBound(TD, 2) 'boucle 2 : sur toutes les colonnes J du tableau des dates TD
        If TD(I, J) <> "" Then 'condition : si la donnée ligne I colonne J de TD n'est pas vide
            NP = OS.Cells(9, J + 1) 'défifit le nom de la parution NP
            'définit la recherche R (recherche la date exacte dans l'onglet destination OD)
            Set R = OD.Cells.Find(TD(I, J), , xlFormulas, xlWhole)
            'si il existe au moins une occurrence trouvée, renvoie le nom de la parution NP dans la cellule correspondante
            If Not R Is Nothing Then R.Offset(0, 2).Value = NP
        End If 'fin de la condition
    Next J 'prochaine colonne de la boucle 2
Next I 'prochaine ligne de la boucle 1
End Sub

Merci à ThauTheme et au forum pour l'aide que vous apportez.

c'est Génial

encore une petite question pour ThauTheme si vous pouvez y remédiez : la macro fonctionne très bien mais si je fais une erreur sur une date et que je modifie celle-ci, l'ancienne date ne s'efface pas du calendrier, il faut l'a supprimé manuellement est ce normal?

mille merci

Re,

Le nouveau code commence par vider le calendrier avant de reporter les données. En cas d'erreur de date et après correction, le fait de relancer la macro va tout actualiser.

Sub Macro1()
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim PL As Range 'déclare la variale PL (PLage)
Dim COL As Byte 'déclare la variale COL (COLonne)
Dim TD As Variant 'déclare la variable TD (Tableau des Dates)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Byte 'déclare la variable J (incrément)
Dim NP As String 'déclare la variable NP (Nom de la Parution)
Dim R As Range 'déclare la variable R (Recherche)

Set OS = Worksheets("SAISIE_PLAN_MEDIA") 'définit l'onglet source OS
Set OD = Worksheets("CALENDRIER_type_") 'définit l'onglet destination OD
Set PL = OD.Range("A1") 'initialise la plage PL
For COL = 3 To 36 Step 3 'boucle sur les 12 colonnes contenant les valeurs
    'définit la plage PL
    Set PL = IIf(PL.Cells.Count = 1, OD.Range(OD.Cells(2, COL), OD.Cells(32, COL)), Application.Union(PL, OD.Range(OD.Cells(2, COL), OD.Cells(32, COL))))
Next COL 'prochaine colonne de la boucle
PL.ClearContents 'efface les anciennes valeurs
TD = OS.Range("B17").CurrentRegion 'définit le tableau des dates TD
For I = 2 To UBound(TD, 1) 'boucle 1 : sur toutes les lignes I du tableau des dates TD (en partant de la seconde)
    For J = 1 To UBound(TD, 2) 'boucle 2 : sur toutes les colonnes J du tableau des dates TD
        If TD(I, J) <> "" Then 'condition : si la donnée ligne I colonne J de TD n'est pas vide
            NP = OS.Cells(9, J + 1) 'défifit le nom de la parution NP
            'définit la recherche R (recherche la date exacte dans l'onglet destination OD)
            Set R = OD.Cells.Find(TD(I, J), , xlFormulas, xlWhole)
            'si il existe au moins une occurrence trouvée, renvoie le nom de la parution NP dans la cellule correspondante
            If Not R Is Nothing Then R.Offset(0, 2).Value = NP
        End If 'fin de la condition
    Next J 'prochaine colonne de la boucle 2
Next I 'prochaine ligne de la boucle 1
End Sub

Encore mille merci ThauTheme c'est extra

Rechercher des sujets similaires à "afficher resultat calendrier fonction dates"