Rentrer automatiquement les données d'une liste dans un calendrier

Bonjour à tous ! :smile:

Je suis assez débutant en VBA, et j’aurais besoin de votre aide pour un calendrier.
A partir d’une liste, j’aimerais répartir les différentes données aux dates correspondantes sur un calendrier (un mois par onglet). Certains évènements sont sur un seul jour, d’autres sur plusieurs jours (date de début jusqu’à date de fin). J’aimerais alors que ces évènements soient reportés à chaque jour correspondant sur le calendrier, avec à chaque fois les informations contenues dans les 3 premières colonnes.

Je vous remercie pour votre aide :pray: :pray:

CalendrierTest.xlsm (71,6 Ko)

Bonjour,

Rien qu’avec cette phrase, cela rendra la conception « très bordélique »
Il faut que je puise dans mes archives, mais il me semble que j’avais un truc du genre qui se réglait autrement par macro, avec clic sur le jour pour ajouter des « mentions » et les placer dans la cellule.
Si je retrouve, je fais signe, sinon le post est ouvert à tout ceux qui ont la solution et j’en serais ravi de compulser le résultat

1 J'aime

J’avoue ne pas avoir d’idée précise sur la complexité d’une telle demande!
Certaines activités peuvent être répétées plusieurs jours, mais après il suffit peut-être de placer plusieurs lignes avec chaque jour concerné pour alléger le côté « bordélique » ?

Merci pour ta réponse rapide en tous cas !

Bonjour

Testes cette solution ci-jointe et dis moi

Onglet « Liste interventions » bouton « Traitement »

Fais moi un retour

CalendrierTest.xlsm (79,1 Ko)

Ouaah c’est génial ! C’est vraiment ce que j’imaginais
Y a juste un problème, que je n’ai pas spécifié, c’est qu’il peut y avoir plusieurs données à intégrer dans un jour. Là il me semble que ça met la dernière donnée et supprime celle d’avant ?

Salut FFO,
Fait un test en rajoutant une intervention le même jour :crazy_face:

Non, mon principe traitais autrement
en cliquant sur une cellule du jour concerné, il affichait un UserForm pour y inscrire les besoins et se plaçais en mémoire dans la liste d’interventions avec toutes les infos du jour
et on pouvait en ajouter ou en soustraire à volonté

1 J'aime

Je vois (enfin très légèrement ahah)
T’aurais des références ou quoi pour commencer VBA avec les bonnes bases ?
En tous cas je découvre ce forum et je trouve ça génial, merci à vous 2 de m’aider !

Je suis en train de penser également, est-ce possible de supprimer toutes les données du tableau en appuyant sur le bouton, pour que l’ensemble se réinitialise et se mette à jour ? Ce qui permettrait par exemple d’utiliser des filtres dans le calendrier et de garder que les données choisies ?

Re,
Laisse un peu ton cerveau se reposer, attend déjà d’avoir un résultat pour la première demande et il faut être patient, tout ne se fait pas en claquant des doigts (moi, j’ai plus assez de doigts pour tester, ça marche peut-être)

Oui désolé ahah, c’était justement pour pas vous déranger trop longtemps mais effectivement, une chose à la fois c’est peut-être mieux :innocent:

Et cette version va t’elle mieux
Je ne remplace plus je rajoute avec une donnée en dessous de la précédente dans le mois et le jour considéré
J’ai rajouté une données au 03/03/2021 (la même date que celle de la première)
A cette date donc il y a les deux saisis l’une en dessous de l’autre

Testes et dis moi

CalendrierTest.xlsm (80,3 Ko)

1 J'aime

Re,
Trés bien, cela m’évite de me creuser le t^te
Il ne te reste plus qu’à supprimer les anciennes données pour ne pas les doubler, tripler, etc à chaque appui de traitement :+1:

Bonjour Mimimathy
Pour éviter de doubler et tripler une confirmation peut être rajouté et ainsi d’éviter comme tu le dis très justement des cliques malencontreux
C’est à notre interlocuteur de dire

1 J'aime

Re,
Eh non,
par principe, il va rajouter dans sa liste d’intervention une autre intervention et va cliquer sur traitement
et tout va se doubler sur les anciennes cellules d’interventions

1 J'aime

Oui c’est exactement ça, il faudrait tout supprimer avant tout dans le module pour éviter ces doublons lorsque je rajoute des lignes et que je fais le traitement

Re,
Place cette macro dans ton module et appelle la au début de ta macro

Sub RaZ()
Dim Ws As Worksheet, Wd As Worksheet, i%
Application.ScreenUpdating = False
Set Wd = Sheets("Liste interventions")
  For Each Ws In Worksheets
    If Ws.Name <> "Liste interventions" Then
      Sheets(Ws.Name).Activate
      Set Ws = Sheets(Ws.Name)
        For i = 4 To 12 Step 2
          Ws.Range(Ws.Cells(i, 2), Ws.Cells(i, 8)) = ""
        Next i
    End If
  Next Ws
  Sheets("Liste interventions").Activate
  Range("A1").Select
  Application.ScreenUpdating = True
End Sub

Je te propose cette version qui lorsque une ligne est traité la colore en vert pour ne pas être reprise au traitement suivant

Testes et dis moi

CalendrierTest.xlsm (80,5 Ko)

Ca semble marcher dans l’exemple, mais lorsque je l’applique à un tableau plus conséquent tout s’additionne. Peut-être qu’il faudrait laisser comme c’était pour le bouton Traitement, puis ajouter une macro pour tout vider dans un autre bouton ?

Re,
Teste ceci
CalendrierTest (2).xlsm (79,0 Ko)