Microsoft 365 Planning horaire remplit par un tableau

Eve30600

XLDnaute Nouveau
Bonjour,
Après maintes recherches et ne trouvant pas la solution, je me tourne vers vous.
J'ai un fichier de rendez-vous qui se remplit par un formulaire. En cette période de Covid-19, nous avons souhaité figer des rendez-vous plus strictes et qui évitent d'avoir plusieurs rendez-vous simultanées (ce que nous faisions avant).
J'ai donc rajouté un planning et je souhaiterais que se remplissent la date et l'heure.
Merci de votre aide et prenez soin de vous.
 

Pièces jointes

  • 0 SUIVI RDV FICHE RDV2.xlsm
    152.8 KB · Affichages: 45
Solution
bonjour eve bonjourbbb38 bonjour le fil bonjour le forum
dans le classeur ci-dessous
le même horaire peux être attribué à tous les collaborateurs
impossibilité de saisir si la plage est un rendez vous pris.
planning sur la plage horaire du #15
sur clic droit visualisation de tous les rendez vous de la plage horaire.
création d'un index en ligne 1 de la feuille planning, ce qui permet en ligne 2, de choisir n'importe quel horaire.
creation sur le formulaire d'un cadre image qui permet d'afficher la photo du collaborateur, après l'avoir renseigné dans la feuille données. (si cette fonction ne vous interesse pas, il suffit dans le formulaire dans propriété, de passer le cadre image visible de true a false, mais surtout ne le supprimer pas...

GALOUGALOU

XLDnaute Accro
re eve30600 bonsoir le forum
le message du mail que vous pouvez configurer dans le module mail

Prise de rendez vous avec photo evelyne le 02/07/2020 à 08:15

voici le code (plus facile avec display, plus compliqué avec send donc j'ai choisi display, ce qui vous oblige à une confirmation d'envoie, mais qui permet une modification du mail.)
VB:
Sub EnvoyerMail22()
Dim lemail As Variant
Set lemail = CreateObject("Outlook.Application")
With lemail.CreateItem(olMailItem)
.Subject = "Information rendez-vous"
.To = Sheets("Mail").Range("C1").Text
.Body = "Prise de rendez vous avec " & Sheets("Mail").Range("D1").Text & " le " & Sheets("Mail").Range("e1").Text & " " & " " & "à " & Sheets("Mail").Range("f1").Text
.display
'.Send
End With
End Sub

le bon fonctionnement dépend de outlook.
pour la mise au point (activation de librairie et outlook) je vous invite à lire ce tuto

MODIFICATION
ajout d'une feuille MAIL, le mail est envoyé a partir des informations déposées dans cette feuille par le formulaire
modification du formulaire
ajout d'une textbox pour récupérer l'adresse mail du collaborateur
ajout d'une colonne dans la feuille données avec les adresses mail des collaborateurs.

le code du formulaire
Code:
Private Sub UserForm_Initialize()
li = ActiveCell.Row
co = ActiveCell.Column
HeureRDV.Value = Format("00:00", "hh:mm")
 DateRDV.Value = Format(DateValue(Date), "dd/mm/yyyy")
    dateappel.Value = Format(DateValue(Date), "dd/mm/yyyy")
    DateRDV = Cells(li, 68)
    HeureRDV = Cells(2, co).Text
    Index_horaire = Cells(1, co)
  
  
        Dim LastLig As Long
LastLig = Sheets("Données").Cells(Rows.Count, "G").End(xlUp).Row
Me.ComboBox1.RowSource = "Données!G2:G" & LastLig
 ComboBox1 = Cells(3, 6) 'après le chargement de la combobox

End Sub



Private Sub Fixe_Change()


Dim Texte As String
Texte = Fixe.Text
Select Case Len(Texte)
Case 2, 5, 8, 11
Texte = Texte & " "
End Select
Fixe.Text = Texte
End Sub

Private Sub Portable_Change()


Dim Texte As String
Texte = Portable.Text
Select Case Len(Texte)
Case 2, 5, 8, 11
Texte = Texte & " "
End Select
Portable.Text = Texte
End Sub

Private Sub Valider_Click()
 Application.ScreenUpdating = False
Sheets("RDV").Select
 
'Recuperation de la derniere ligne et inscription des données
Dim RDV As Integer
If NomPrenom <> "" Then
 RDV = Range("a65000").End(xlUp).Row + 1
 DateRDV.Value = Format(DateRDV.Value, "dd/mm/yyyy")
  Cells(RDV, 1).Value = DateSerial(Right(dateappel, 4), Mid(dateappel, 4, 2), Left(dateappel, 2))
  Cells(RDV, 2).Value = Prispar.Value
  Cells(RDV, 6).Value = Avecqui.Value
  Cells(RDV, 7).Value = NomPrenom.Value
  Sheets("Mail").Cells(1, 3) = TextBoxMail
  Sheets("Mail").Cells(1, 4) = NomPrenom.Value
  Sheets("Mail").Cells(1, 5) = DateRDV
  Sheets("Mail").Cells(1, 6) = HeureRDV
  Cells(RDV, 9).Value = Adresse.Value
  Cells(RDV, 10).Value = Parcelle.Value
  Cells(RDV, 11).Value = Fixe.Value
  Cells(RDV, 12).Value = Portable.Value
  Cells(RDV, 13).Value = Courriel.Value
  Cells(RDV, 14).Value = Objet.Value
  Cells(RDV, 15).Value = TeneurRDV.Value
  Cells(RDV, 16).Value = Actions.Value
  Cells(RDV, 17).Value = Remarques.Value
  Cells(RDV, 4).Value = DateSerial(Year(DateRDV.Value), Month(DateRDV.Value), Day(DateRDV.Value))
  Cells(RDV, 5).Value = HeureRDV.Value
  Cells(RDV, 3).Value = DA.Value
      Cells(RDV, 18).Value = Index_horaire.Value
    Cells(RDV, 19).Value = Index_collaborateur.Value
    Else
    MsgBox "Aucun enregistrement réalisé"
    End If
Unload Me

 Call EnvoyerMail22
 
 On Error GoTo GestionErreur
Call TRI_RDV
Call SUPPRIMER
Sheets("Planning").Select
Range("a5").Select
ActiveWindow.ScrollRow = ActiveCell.Row
ActiveWindow.ScrollColumn = ActiveCell.Column
 Application.ScreenUpdating = True
 
     Exit Sub
GestionErreur:
 Application.ScreenUpdating = True
End Sub

j'ai fait ça un peu rapidement, prenez le temps de vérifier que le classeur est fonctionnel.
le but final est que vous maitrisiez totalement la conception de ce classeur pour pouvoir le reproduire et le modifier en fonction de vos problématiques.
cordialement
galougalou
 

Pièces jointes

  • RDV AVEC MAIL.xlsm
    538.1 KB · Affichages: 18

Eve30600

XLDnaute Nouveau
Bonjour Galougalou, bonjour le forum,
Merci pour votre travail et votre générosité.
Hélas, je viens de tester l'envoi de mail mais il ne fonctionne pas correctement. Le mail part mais n'arrive pas. J'ai fait plusieurs essais, j'ai cherché mais je n'ai pas trouvé ce qui coince, cela dépasse mes compétences. Je suis désolée de faire à nouveau appel à vous.
Merci pour votre aide et bonne journée!
Eve
 

GALOUGALOU

XLDnaute Accro
re eve30600

le test que j'ai effectué avec des boites mail valides a fonctionné correctement chez moi. j'ai expédié et récupéré sur les différentes adresses.
donc comme ça je dirait soit de vérifier la configuration de outlook, ou alors, peut-être (je dis bien peut-être), comme le message part mais n'arrive pas, la saisie de l'adresse est incorrecte (un espace en trop).
quoi qu'il en soit, si le message mail est édité,que outlook s'ouvre et que vous avez accès au bouton envoyer, que vous arrivez à l'envoyer, le plus difficile est fait.

différente piste pour solutionner le problème;
1er - ouvrir votre logiciel de messagerie et faite un copier coller de l'adresse à partir de excel et vérifier la bonne exécution en émission et réception.
ou 2eme - faite un clic gauche dans excel sur l'adresse mail et vérifier la bonne exécution en émission et réception.
ou 3eme- alors l'inverse, écrire un message à partir de outlook et vérifier la bonne exécution en émission et réception, puis faite un copier de l'adresse pour la coller dans le classeur excel et revérifiez la bonne éxécution.
cordialement
galougalou
 
Dernière édition:

GALOUGALOU

XLDnaute Accro
re eve30600
une précision :
dans le classeur et dans la feuille Données, la colonne F doit-être renseigné avec les adresses e-mail de vos collaborateurs.

je viens de tester avec des adresses sur gmail.com, yahoo.fr, laposte.net.
avec un temps de latence d'environ 1mn, tout fonctionne
cordialement
galougalou
 
Dernière édition:

Eve30600

XLDnaute Nouveau
Re Galougalou,
Je viens d'avoir la réponse car nous avons outlook web app et outlook n'est pas configuré sur nos postes. Cela ne peut donc pas fonctionner. Dommage! merci quand même pour tout le temps que vous m'avez consacré.
Bonne journée!
Eve
 

GALOUGALOU

XLDnaute Accro
re eve
je vous propose une autre solution en envoyant en direct un mail sans se servir de outlook
pour cela il suffit d'avoir une adresse gmail valide. si tel n'est pas le cas il suffira d'en ouvrir une.
cela demande un peu de préparation, je vous poste la solution ce soir
cordialement
galougalou
 

GALOUGALOU

XLDnaute Accro
re eve

envoie d'un mail automatiquement après la mise à jour classeur avec la méthode CDO, une fonction et un code vba, une boite mail gmail (pour la simplicité du serveur smtp)

alt+f11 pour ouvrir l'éditeur vba et rajouter dans le classeur excel le module complémentaire microsoft cdo for windows

cdo.gif





dans le code vba du module renseigner votre adresse mail et votre mot de passe

VB:
.Item(cdoSendUserName) = "[B][COLOR=rgb(226, 80, 65)]votre_adresse@gmail.com[/COLOR][/B]"

.Item(cdoSendPassword) = "[B][COLOR=rgb(226, 80, 65)]votre_mot_de_passe[/COLOR][/B]"

si vous préférez une solution avec une boite de dialogue, mais qui imposera à chaque envoie de renseigner la boite mail et le mot de passe

Code:
.Item(cdoSendUserName) = inputBox("Veuillez saisir votre identifiant gmail")

.Item(cdoSendPassword) = InputBox("Veuillez saisir votre mot de passe gmail")

tout ceci dans le code ci-dessous
Code:
Function GetSMTPServerConfig() As Object

Dim Cdo_Config As New CDO.Configuration
Dim Cdo_Fields As Object

Set Cdo_Fields = Cdo_Config.Fields
With Cdo_Fields
.Item(cdoSendUsingMethod) = cdoSendUsingPort
.Item(cdoSMTPServer) = "smtp.gmail.com"
.Item(cdoSMTPServerPort) = 465
.Item(cdoSendUserName) = "votre_adresse@gmail.com" 'renseigner votre adresse mais possibilité de choisir la boite de dialogue
.Item(cdoSendPassword) = "votre_mot_de_passe" 'renseigner votre mot de passe mais possibilité de choisir la boite de dialogue
.Item(cdoSMTPAuthenticate) = cdoBasic
.Item(cdoSMTPUseSSL) = True
.Update
End With

Set GetSMTPServerConfig = Cdo_Config
Set Cdo_Config = Nothing
Set Cdo_Fields = Nothing
End Function

pour le fonctionnement d'ensemble même principe que le précédent classeur, par le formulaire une feuille nommée mail est renseignée en 1er ligne avec le contenu des textbox, et le mail est envoyé automatiquement. une boite de dialogue confirme l'envoie, vous pouvez la supprimer.

j'ai testé avec des adresses personnelles, le système est totalement fonctionnel.
attention n'oublier pas de renseigner les informations de votre boite mail.
si vous avez un problème d'autorisation avec l'adresse GMAIL, contacter votre administrateur réseau.

cordialement
galougalou
 

Pièces jointes

  • RDV AVEC MAIL v3.xlsm
    528.6 KB · Affichages: 24

Eve30600

XLDnaute Nouveau
Bonjour le forum, bonjour Galougalou,
Depuis plus de 18 mois nous utilisons le fichier de rendez-vous et cela nous a grandement facilité l tâche. Merci encore pour toute l'aide apporté.
J'ai du "réparé" le fichier plusieurs fois car j'ai des collègues qui font parfois des manipulations hasardeuses.
Néanmoins, je bloque sur une correction et j'ai besoin du soutien du forum: La combobox de sélection de l'intervenant a malencontreusement été supprimée et je n'arrive pas à la repositionner malgré plusieurs tentatives.
Merci de votre aide !
Bonne journée à tous !
Eve
 

Pièces jointes

  • SUIVI RDV FICHE RDV2 v8 pour correction.xlsm
    589.7 KB · Affichages: 4

GALOUGALOU

XLDnaute Accro
re eve30600 bonjour le forum
Heureux de savoir que le classeur vous est utile.
la combobox2 dans la feuille a disparu, elle devrait être présente mais où ?
pour faire simple pour résoudre ce problème
insérer une nouvelle combobox dans la feuille (onglet développeur, insérer un contrôle activex, combobox.
Identifier son numéro et en supposant que ce soit le numéro 3, (comme dans le classeur ci-joint) mettre ces deux codes dans l'événement feuille. votre combobox sera dynamique et s'adaptera à la liste.

dans Worksheet_Activate
VB:
ComboBox3.List = Sheets("Données").Range("G2:G" & Sheets("Données").Range("G65536").End(xlUp).Row).Value

et indépendamment
VB:
Private Sub ComboBox3_Change()
Range("f3") = ComboBox3
End Sub
cordialement
galougalou
 

Pièces jointes

  • Copie de SUIVI RDV FICHE RDV2 v8 pour correction.xlsm
    578.8 KB · Affichages: 3

ChTi160

XLDnaute Barbatruc
Bonjour Eve
Bonjour GALOUGALOU
Eve tu dis :
J'ai du "réparé" le fichier plusieurs fois car j'ai des collègues qui font parfois des manipulations hasardeuses.
Comment ce fait il que ce soit possible ?
Il doit y avoir possibilité de protéger donc d'éviter ce genre de mésaventure (protection)
A voir !
Bonne fin de journée
Jean marie
 

GALOUGALOU

XLDnaute Accro
re eve bonjour chti160

je viens de consulter votre classeur et analyser vos choix
je pense que vous n'avez pas bien maitrisé l'intérêt des formules, car le planning devrait se résumer à une vision sur deux, trois, quatre semaines. le classeur avec des formules sur plus de 1000 jours, pénalise fortement la vitesse de calcul, c'est un peu contre productif.
si vous souhaitez un planning sur trois ans sur la plage planning, les formules n'ont plus aucun intérêt.
je vais vous préparer deux classeurs, un avec la solution que vous avez développée, un autre avec le classeur conforme au projet initial.
dans les deux cas, la remarque de chti160 est pertinente, les opérateurs ne devrait pas pouvoir détruire l'organisation du classeur, cela demande un minimum de protection.
a tout hasard, ci dessous un exemple d'une macro dans l'événement feuille (Planning) protégeant la colonne A de toute modification (mais qui sous cette forme est conflictuelle avec la recherche semaine)
VB:
Private Sub Worksheet_SelectionChangeold(ByVal Target As Range)
Dim lig As Long
On Error Resume Next
If Not Application.Intersect(Target, Range("A1:A1000")) Is Nothing Then
lig = ActiveCell.Row
MsgBox "Cellule protégée, contactez votre administrateur "
Cells(lig, 2).Select
End If
End Sub
une proposition d'ici à deux ou trois jours
cordialement
galougalou
 

GALOUGALOU

XLDnaute Accro
re Eve30600
en préambule, dans le classeur du fil 41 beaucoup de formule sont détruites, ce qui rend le fonctionnement du classeur non pertinent et renvoie des informations non conformes. si cela est du a l'intervention de vos collaborateurs, il est important de sécurisé son fonctionnement. c'est pourquoi dans les deux solutions proposées, les formules sont protégées par des macros dans l'événement feuilles de chaque onglet, le code vba est protégé par mot de passe, l'accès à la feuille Données est protégée par mot de passe. dans les deux cas le mot de passe est "eve30600".
Exemple : un clic dans la colonne A de la feuille planning renvoie dans la colonne B, ce qui rend impossible la modification de la date. la sélection de plusieurs cellules est impossible etc etc
Je tiens à préciser que toutes ces protections ne protège pas de la malveillance, uniquement de la maladresse.

De plus si vous validez l'utilisation du classeur au sein de votre entreprise il faut sécuriser la pérennité des informations. Pour cela, tous les débuts de semaine, à l'ouverture du classeur une sauvegarde avec l'enregistrement d'une copie du classeur sera faite dans un dossier identifié par l'année.
Pour ne pas envahir votre bureau, il sera nécessaire de créer un dossier dans lequel sera déposé le classeur source.
le dossier année sera créé automatiquement à chaque changement de millésime. Pendant l'année, ce dossier se remplira avec toutes les sauvegardes du début de semaine.

deux solutions proposées
dans les deux classeur vous ouvrez un calendrier pour la sélection de date

la 1er solution avec formule
La page planning a été réduite à la vision d'un mois et une semaine. la sélection semble plus pratique par mensualité plutôt que par numéro de semaine. les formules réduites à une dimension raisonnable rendent le classeur plus réactif.
La sélection du mois et de l'année positionne le planning. Les informations collectées renvoyées dans la feuille RDV seront conforme à la sélection
l'avantage de cette solution, la visibilité est réduite à un mois, mais il n'y a pas de limite à la prise de rendez vous.



Deuxième solution

Dans cette solution dans les feuilles planning l'historique de plus de 10 jours (à déterminer dans la feuille Données) est supprimé, mais dans la feuille RDV l'historique reste présent 600 jours et est consultable. Dans cette solution la visibilité et la possibilité de rendez-vous se fait sur ~environ trois ans suivant la date du jour.
à l'ouverture il faudra saisir le mot de passe et procéder à la création d'onglets. un bouton déclenchera la macro qui créera autant d'onglet que de collaborateurs dans la colonne G. chaque onglets sera nommé par le nom du collaborateur
l'avantage de cette solution, la visibilité sur les feuilles planning se fait sur trois ans. Chaque collaborateur visualise son planning en totalité. les formules utiles dans le 1er classeur ne sont pas nécessaire
A découvrir sans modération
cdt
galougalou
ps le calendrier figurant dans les classeurs, a été développé par Dudu, membre de xld
 

Pièces jointes

  • SUIVI RDV FICHE RDV2 V.FORMULE.xlsm
    374.1 KB · Affichages: 6
  • SUIVI RDV FICHE RDV2 V.ONGLETS perpétuel v4.xlsm
    484.3 KB · Affichages: 6
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 370
Messages
2 087 693
Membres
103 641
dernier inscrit
anouarkecita2