Outil de gestion d'un planning de visites

PERRINFAB

XLDnaute Nouveau
Bonsoir

Je dois planifier un nombre conséquent de visites médicales.
Ma volonté est de donner l'accès à un classeur excel aux personnes concernées afin qu'elles s'inscrivent.
Le principe :
- la personne s’inscrit sur le créneau horaire disponible qui lui convient
- une seule réservation par personne
- respecter la réservation du collègue

J'ai tenté quelques codes VBA mais mes connaissances sont plus que limitées.

Mes idées :

- la liste de choix serait dynamique (validation de données). Si le salarié a une valeur >1 dans la colonne B de l'onglet "Liste des personnes à convoquer", alors elle ne pourra plus sélectionner son nom sur d'autres réservations

- lors de la fermeture/sauvegarde du fichier, les cellules renseignées de l'onglet "Planning" sont bloquées en écriture. Cela éviterait que le suivant puisse être tenté de supprimer la réservation de son collègue
Toutefois les cellules pourront être déverrouillées par mot de passe

- fermeture automatique du fichier avec sauvegarde au bout de 2/3 minutes

Je ne sais pas si quelqu'un aurait des solutions susceptibles de me permettre d'avancer

Un grand merci d'avance
 

Pièces jointes

  • Planification visites test.xlsm
    93.3 KB · Affichages: 180

Calvus

XLDnaute Barbatruc
Bonjour Perrinfab, le forum,

Un essai ci-joint, non abouti, mais ça peut te donner une idée.
J'essaierai d'avancer plus tard si j'en ai le temps, car là je tourne autour du pot, mais ça coince sur une ligne de code..
Je n'ai donc pas mis le second module dans le fichier joint.

Pour l'instant, j'ai remplacé tes listes de validation par des combobox, et il faut lancer la macro manuellement pour qu'elle s'exécute.
Le code répond à la problématique de ne pas pouvoir réserver 2 fois pour un salarié.

Je reviendrai donc plus tard, mais je pense également que d'autres vont prendre la suite.

A+
 

Pièces jointes

  • Planification visites Perrinfab.xlsm
    112.2 KB · Affichages: 77

JBARBE

XLDnaute Barbatruc
Bonsoir à tous,
A tester !
Je présume que l'interdiction de s'inscrire 2 fois ne s'applique que par jour ( cela n'était pas spécifié)
Mot de passe VBA > 1234
Mot de passe pour la validation des noms !
En cas de suppression de nom >>> Mot de passe + message " Voulez-vous supprimer tout ce qui ce rapporte à ce NOM s'il est unique" :
Yes>> que lorsqu'il reste ce nom uniquement ( je n'ai pas trouver une autre méthode )
bonne nuit !
 

Pièces jointes

  • Planification visites test.xlsm
    299.1 KB · Affichages: 56
Dernière édition:

PERRINFAB

XLDnaute Nouveau
Bonjour
Merci de vos modifications et apports. J'ai continué à avancé sur mon support
- ma liste de choix est désormais dynamique (=> une seule inscription possible)
- interdiction de modifier une cellule déjà renseignée afin que le suivant ne puisse être tenté de supprimer la réservation de son collègue
Toutefois les cellules peuvent être déverrouillées par mot de passe "Modif"

2 problèmes persistent
- si le PC utilisé n'a pas donné accès aux macros, toutes mes protections vba disparaissent
Comment imposer d'activer les macro à un utilisateur ? J'ai bien vu quelques posts sur les sites mais je ne parviens pas à comprendre le lien entre l'affichage / non affichage des feuille et l'activation des macros.
- lors de la sélection de son nom
- si la cellule n'est pas vide, le programme interdit la modification
- si la cellule est vide, le programme demande la validation à l'utilisateur (OK ou Cancel)
- si la répons est cancel, je voudrais que le contenu de la cellule soit effacé et passage à la cellule suivante => c'est à ce niveau que mon code boucle et redemande systématiquement la validation du rendez-vous
- si la réponse est OK, passage à la cellule suivante

Merci de vos conseils
 

Pièces jointes

  • Test planification.xlsm
    106.4 KB · Affichages: 100

PERRINFAB

XLDnaute Nouveau
Bonsoir

Quelqu'un connaît-il la réponse à ces questions :
- Comment imposer d'activer les macro à un utilisateur ? J'ai bien vu quelques posts sur les sites mais je ne parviens pas à comprendre le lien entre l'affichage / non affichage des feuille et l'activation des macros.
- j'ai un souci dans le code VBA de Workbook.
Si la réponse est cancel, je voudrais que le contenu de la cellule soit effacé et passage à la cellule suivante => c'est à ce niveau que mon code boucle et redemande systématiquement la validation du rendez-vous

Merci

Private Sub Worksheet_Change(ByVal Target As Range)

If VerifVide = False And VerifModif = False Then
VerifModif = True
Application.Undo
MsgBox "La date est déjà réservée ! Veuillez sélectionner un autre rendez-vous"

Else
VerifModif = False
Dim ligne As Integer
Dim colonne As Integer
With ActiveCell
ligne = .Row
colonne = .Column
End With
If MsgBox("Etes-vous certain(e) de vouloir réserver cette date ?", vbOKCancel) <> vbOK Then
ActiveCell.ClearContents

End If
End If
End Sub
 

JBARBE

XLDnaute Barbatruc
Bonsoir

Quelqu'un connaît-il la réponse à ces questions :
- Comment imposer d'activer les macro à un utilisateur ? J'ai bien vu quelques posts sur les sites mais je ne parviens pas à comprendre le lien entre l'affichage / non affichage des feuille et l'activation des macros.
- j'ai un souci dans le code VBA de Workbook.
Si la réponse est cancel, je voudrais que le contenu de la cellule soit effacé et passage à la cellule suivante => c'est à ce niveau que mon code boucle et redemande systématiquement la validation du rendez-vous

Merci

Private Sub Worksheet_Change(ByVal Target As Range)

If VerifVide = False And VerifModif = False Then
VerifModif = True
Application.Undo
MsgBox "La date est déjà réservée ! Veuillez sélectionner un autre rendez-vous"

Else
VerifModif = False
Dim ligne As Integer
Dim colonne As Integer
With ActiveCell
ligne = .Row
colonne = .Column
End With
If MsgBox("Etes-vous certain(e) de vouloir réserver cette date ?", vbOKCancel) <> vbOK Then
ActiveCell.ClearContents

End If
End If
End Sub
Bonjour à tous,
Peut-être cette ligne est incorrect :
If MsgBox("Etes-vous certain(e) de vouloir réserver cette date ?", vbOKCancel) <> vbOK Then
ActiveCell.ClearContents

Mettre :
Reponse = Msgbox("Etes-vous certain(e) de vouloir réserver cette date ?",vbYesNo + vbQuestion)
if Reponse=vbNo then
ActiveCell.ClearContents
else
Exit Sub
End If

Ou :
Reponse = Msgbox("Etes-vous certain(e) de vouloir réserver cette date ?",vbYesNo + vbQuestion)
if Reponse=vbNo then
Target.ClearContents
else
Exit Sub
End If



 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
315 091
Messages
2 116 117
Membres
112 665
dernier inscrit
JPHD