Bonsoir
Débutant en VBA, je souhaite mettre en service une application Excel pour gérer des commandes de personnel intérimaire. Je possède 2 bases de données (1 pour la commande, 1 pour les intérimaires) liées entre elles. Cette appli sera utilisée par une dizaine de collègue.
Lors de l'ouverture du fichier "Commandes", je souhaite :
- ouvrir également la base "Intérimaire" protégée par mot de passe
- supprimer la fonctionnalité glissement de Excel
- activer une macro Actualiser de "Commandes"
- intégrer une heure de début d'utilisation sur mon base "Commandes"
- me positionner sur la feuille "Feuille de Commande"
- mettre en place un compteur signalant à l'utilisateur une durée de connexion > 15 mns. S'il répond OUI à la Question Souhaitez-vous poursuivre? alors la macro Déconnexion doit se relancer 15 mns plus tard. S'il répond Non ou en cas d'absence de réponse sous 10 secondes, alors les 2 fichiers doivent se fermer avec sauvegarde
Lors de la fermeture du fichier "Commande", je souhaite :
Enregistrer le fichier Commandes et le fermer
Enregistrer le fichier Intérimaire et le fermer
Réactiver la fonctionnalité Glissement de Excel
En m'inspirant des discussions du forum, j'ai écrit
Private Sub Workbook_Open()
nomf = ActiveWorkbook.Name
Application.CellDragAndDrop = False
Call Actualiser1
Sheets("Feuille de commande").[S1] = Now()
Workbooks.Open ("F:\Intérim\Commandes Intérim\Liste des intérimaires.xls")
Workbooks(nomf).Activate
Sheets("Feuille de commande").Select
Application.OnTime Now + TimeValue("00:15:00"), "Déconnexion"
End Sub
Sub Déconnexion()
Dim rep
rep = MsgBox("Temps de connexion > 15 mn - Souhaitez-vous poursuivre?", _
vbQuestion + vbYesNo, "Fermeture du classeur")
If rep = vbYes Then Cancel = True
If rep = vbNo Then ActiveWorkbook.Close savechanges = True
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Workbooks("Liste des intérimaires.xls").Save
Workbooks("Liste des intérimaires.xls").Close
ActiveWorkbook.Save
Application.CellDragAndDrop = True
End Sub
Le programme d'ouverture se perd entre les noms de deux fichiers.
Le programme de Déconnexion ne réagit pas si aucune réponse de l'utilisateur
Le programme de Déconnexion ne semble pas générer de sauvegarde à la réponse NON et ne feme pas le fichier "Intérimaires"
Le programme de fermeture semble tourner correctement
Pouvez-vous m'aidez à affiner ce programme ?
Merci d'avance
Fab
Débutant en VBA, je souhaite mettre en service une application Excel pour gérer des commandes de personnel intérimaire. Je possède 2 bases de données (1 pour la commande, 1 pour les intérimaires) liées entre elles. Cette appli sera utilisée par une dizaine de collègue.
Lors de l'ouverture du fichier "Commandes", je souhaite :
- ouvrir également la base "Intérimaire" protégée par mot de passe
- supprimer la fonctionnalité glissement de Excel
- activer une macro Actualiser de "Commandes"
- intégrer une heure de début d'utilisation sur mon base "Commandes"
- me positionner sur la feuille "Feuille de Commande"
- mettre en place un compteur signalant à l'utilisateur une durée de connexion > 15 mns. S'il répond OUI à la Question Souhaitez-vous poursuivre? alors la macro Déconnexion doit se relancer 15 mns plus tard. S'il répond Non ou en cas d'absence de réponse sous 10 secondes, alors les 2 fichiers doivent se fermer avec sauvegarde
Lors de la fermeture du fichier "Commande", je souhaite :
Enregistrer le fichier Commandes et le fermer
Enregistrer le fichier Intérimaire et le fermer
Réactiver la fonctionnalité Glissement de Excel
En m'inspirant des discussions du forum, j'ai écrit
Private Sub Workbook_Open()
nomf = ActiveWorkbook.Name
Application.CellDragAndDrop = False
Call Actualiser1
Sheets("Feuille de commande").[S1] = Now()
Workbooks.Open ("F:\Intérim\Commandes Intérim\Liste des intérimaires.xls")
Workbooks(nomf).Activate
Sheets("Feuille de commande").Select
Application.OnTime Now + TimeValue("00:15:00"), "Déconnexion"
End Sub
Sub Déconnexion()
Dim rep
rep = MsgBox("Temps de connexion > 15 mn - Souhaitez-vous poursuivre?", _
vbQuestion + vbYesNo, "Fermeture du classeur")
If rep = vbYes Then Cancel = True
If rep = vbNo Then ActiveWorkbook.Close savechanges = True
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Workbooks("Liste des intérimaires.xls").Save
Workbooks("Liste des intérimaires.xls").Close
ActiveWorkbook.Save
Application.CellDragAndDrop = True
End Sub
Le programme d'ouverture se perd entre les noms de deux fichiers.
Le programme de Déconnexion ne réagit pas si aucune réponse de l'utilisateur
Le programme de Déconnexion ne semble pas générer de sauvegarde à la réponse NON et ne feme pas le fichier "Intérimaires"
Le programme de fermeture semble tourner correctement
Pouvez-vous m'aidez à affiner ce programme ?
Merci d'avance
Fab