Alimenter un calendrier à partir d'une BD Excel
Bonjour à tous,
Je travail depuis quelques jours sur mon dossier, j'ai épluché les forums, je ne trouve pas la solution.
J'aimerai à partir d'un BD en feuille 1, en colonne A : des dates, en colonne B : le nom de la société et en colonne C : le nom du gestionnaire.
J'aimerai alimenter un calendrier qui se trouve en feuille 2, 3, 4, 5. C'est à dire que j'aimerai mettre le nom de la société ou des sociétés le jour du rdv et part gestionnaire (feuille 2, gestionnaire 1, feuille 3 gestionnaire 2...)
Le but étant de créer un agenda qui s'alimente automatiquement pour chaque gestionnaire.
J'ai essayé d'écrire une fonction sous VBA pour me permettre de d'alimenter le nom des sociétés dans le calendrier.
Problème, c'est fonction ne marche pas sur toutes les cellules, il y a des erreurs.
Function RechTous(v, champRech As Range, ChampRetour As Range, separateur)
a = champRech
temp = ""
For i = 1 To champRech.Count
If a(i, 1) = v Then
temp = temp & ChampRetour(i) & separateur
End If
Next i
RechTous = Left(temp, Len(temp) - 1)
End Function
De plus je n'arrive pas à "filtrer" ou à mettre un second critère qui serait les initiales du gestionnaire.
Si quelqu'un a une solution
Merci d'avance
Je vous joins le fichier ....
Merci Cappe Pierre pour ta réponse,
Cependant j'aimerai que les dates sélectionnées alimente mon calendrier sur les pages suivantes et par gestionnaire. Je ne pense pas que dtpicker le permet. Sinon je n'ai pas tout à fait saisi l'utilisation de dtpicker...
Bonjour,
Je ne suis pas sûr de bien comprendre mais je me lance.
Voici une fonction qui recherche la correspondance de dates, colonne des jours dans la feuille "Calendrier" et colonne des dates dans la feuille "Test", (c'est sur cette dernière qu'est faite la boucle) si il y a correspondance, retourne la valeur des colonnes situées à droite de la colonne des dates (feuille Test) séparées par un slash.
Il est par contre impératif que les dates de la feuille "Calendrier" soient bien des dates et non juste un nombre pour les jours car tu a des colonnes de dates avec un format personnalisé (affichage juste du jour), c'est ce qu'il faut pour la comparaison et des colonnes où seul un nombre a été saisi pour représenter le jour.
Un exemple d'utilisation de la formule où G5 est la cellule où se trouve la date (formaté pour que seul le jour soit affiché) et test!$A$2:$A$27 est la plage où est effectuée la recherche de correspondance :
=RENDEZVOUS(G5;test!$A$2:$A$27)
La fonction :
Function RENDEZVOUS(CelJour As Range, _
PlageDate As Range) As String
Dim Cel As Range
Dim Valeur As String
Application.Volatile
'parcour la plage des dates
For Each Cel In PlageDate
If Cel.Value <> "" Then
'si il y a correspondance, retourne le ou les nom(s) situé(s) dans
'les colonnes de droite séparé par un slash
If Cel.Value = CelJour.Value Then
Valeur = Valeur & Cel.Offset(, 1).Value & " / " & Cel.Offset(, 2).Value & vbCrLf
End If
RENDEZVOUS = Valeur
End If
Next Cel
End Function
Hervé.
Merci theze,
Ta réponse est très satisfaisante.
Ce qui serait top, se serait, si possible, alimenter le calendrier en fonction du gestionnaire. C'est à dire que dans une cellule, j'écris les initiales du gestionnaire (je mettrai par la suite un usefom pour le coté esthétique) et seul ses rdv apparaissent sur le calendrier, si je change les initiales le calendrier change de gestionnaire.
En tout cas je te remercie pour ton post qui est très utile.