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.
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
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 » ?
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 ?
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é
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)
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
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
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
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
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
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 ?