Créer une boite de dialogue pour communiquer entre deux services Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
B
Braters
Membre dévoué
Membre dévoué
Messages : 579
Appréciations reçues : 10
Inscrit le : 23 décembre 2015
Version d'Excel : 2013 FR

Message par Braters » 28 juin 2018, 14:14

Moi je vois une connexion avec un fichier "process.xls", mais pas dans une formule, peut être dans une liste de noms (voir dans Gestionnaire des noms, onglet "Formules").

Hm je ne sais pas, chez moi ca fonctionne, tu peux ajouter cette phrase juste au dessus de Kill :
On Error Resume Next

Et j'attend que tu me dises ce que tu préfères pour limiter l'utilisation du fichier.

A plus !
:btres:
M
MakeThemSuffer
Jeune membre
Jeune membre
Messages : 30
Inscrit le : 26 juin 2018
Version d'Excel : 2013 FR

Message par MakeThemSuffer » 28 juin 2018, 14:41

Effectivement je vois aussi cette liaison avec process , mais c'est le dossier où se situait le formulaire avant que vous me conseilliez de mettre dans un dossier qui sera partagé.
Or je n'utilise plus ce dossier ni même ce fichier process.xls. Je ne sais même plus où je lai mis.

Pour limiter le fichier je pense qu'un code est lus simple à réaliser

merci ;;)
M
MakeThemSuffer
Jeune membre
Jeune membre
Messages : 30
Inscrit le : 26 juin 2018
Version d'Excel : 2013 FR

Message par MakeThemSuffer » 28 juin 2018, 14:55

EDIT : problème des liaisons résolu
M
MakeThemSuffer
Jeune membre
Jeune membre
Messages : 30
Inscrit le : 26 juin 2018
Version d'Excel : 2013 FR

Message par MakeThemSuffer » 28 juin 2018, 15:02

J'ai un nouveau petit problème : lorsque je clique sur la case "partie complété " dans le formulaire, j'ai une erreur et le mode "remplie" ne s'affiche plus dans la liste des mission : voici le code
Private Sub CheckBox1_Click()

ActiveWorkbook.Save
Miss = Mid(ThisWorkbook.Name, 12, Len(ThisWorkbook.Name) - 25)
MsgBox Miss
Workbooks("projet.xlsm").Activate
Ligne = ActiveWorkbook.Sheets("Feuil1").Range("A3:A" & ActiveWorkbook.Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row).Find(Miss).Row
ActiveWorkbook.Sheets("Feuil1").Range("F" & Ligne).Value = "Remplie"
ThisWorkbook.Close

End Sub
c'est la ligne "Ligne = ActiveWorkbook.Sheets("Feuil1").Range("A3:A" & ActiveWorkbook.Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row).Find(Miss).Row" qui est en jaune

je vous joins mes fichiers, j'ai du faire une bêtise en les modifiant un peu

PS : dans le formulaire j'ai également rajoutée deux cases a coché dans la partie nav, mais je n'arrive pas a agrandir les textes "autorisé" et "refusé". Excel 2003 était plus facile pour ça puisque j'avais reussi avec les deux autres cases
formulaire VIERGE partagé OPS & M.xlsm
(48.04 Kio) Téléchargé 2 fois
projet.xlsm
(40.05 Kio) Téléchargé 1 fois
B
Braters
Membre dévoué
Membre dévoué
Messages : 579
Appréciations reçues : 10
Inscrit le : 23 décembre 2015
Version d'Excel : 2013 FR

Message par Braters » 28 juin 2018, 17:09

Re,

Voilà, j'ai mis en place le mot de passe à l'ouverture.
Pour l'instant le code c'est 1234, tu peux le modifier en L1 (colonne masquée).

Le mot de passe pour verrouiller la feuille et la déverrouiller c'est 1234 à changer dans la macro si tu le souhaites dans la procédure du USF_Service. Cela a pour effet de bloquer la saisie et masquer les boutons si ce n’est pas un opérationnel et de débloquer la saisie et faire apparaître les boutons si c'est une opé.

Pour l'erreur sur la ligne :
Ligne = ActiveWorkbook.Sheets("Feuil1").Range("A3:A" & ActiveWorkbook.Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row).Find(Miss).Row
C'est réglé. Par contre impossible de modifier la taille des case à cocher que tu as mises désolé.

A plus !
projet.xlsm
(43.05 Kio) Téléchargé 3 fois
formulaire VIERGE partagé OPS & M.xlsm
(50.74 Kio) Téléchargé 5 fois
1 membre du forum aime ce message.
:btres:
M
MakeThemSuffer
Jeune membre
Jeune membre
Messages : 30
Inscrit le : 26 juin 2018
Version d'Excel : 2013 FR

Message par MakeThemSuffer » 29 juin 2018, 09:41

J'ai trouvé un petit problème : Si le mot de passe rentré est incorrect , une petite fenêtre s'ouvre pour me le dire, mais impossible de quitter cette fenêtre et bloque donc l'utilisation d'excel et la seule solution est de forcer l’arrêt via le gestionnaire de taches. Pas très pratique :lole:

De plus, quelles sont les lignes de code a modifier pour changer le code ? J'ai tenté de mettre 0000 au lieu de 1234 sur les deux lignes ou il y avais 1234 mais visiblement ça n'a pas suffit et c'est comme cela que j'ai trouvé le beug.

EDIT : j'ai trouvé comment modifier le mot de passe, mais si le service nav agrandie la colonne L il pourra le voir non ?

merci a bientôt
formulaire VIERGE partagé OPS & M.xlsm
(50.74 Kio) Téléchargé 1 fois
projet.xlsm
(38.61 Kio) Pas encore téléchargé
Modifié en dernier par MakeThemSuffer le 29 juin 2018, 10:02, modifié 1 fois.
B
Braters
Membre dévoué
Membre dévoué
Messages : 579
Appréciations reçues : 10
Inscrit le : 23 décembre 2015
Version d'Excel : 2013 FR

Message par Braters » 29 juin 2018, 10:01

Effectivement, cela est embêtant :lole:

Peux-tu modifier la macro CommandButton1 dans la procédure "ThisWorkbook" par ceci stp :
Private Sub CommandButton1_Click()

Dim code$
Dim saisie$
saisie = TextBox1.Value
code = Range("L1").Value
If saisie <> code Then
    MsgBox "Mot de passe incorrect"
    TextBox1.Value = ""
Else
    ActiveSheet.Unprotect ("1234")
    For Each Bouton In ActiveSheet.Shapes
        Bouton.Visible = True
    Next Bouton
    Unload Me
End If

End Sub
En fait il y a 2 codes, un pour le service (celui que tu veux), et un code qui protège la feuille via excel (celui de la macro)

Celui de la macro n'est pas nécessairement à modifier car les utilisateurs ne sont pas censés essayer de Déverrouiller la feuille manuellement. Par contre tu peux modifier le code dans la cellule L1 qui celui-là représente le mot de passe que l'opé doit saisir dans le userform ! Donc pour ton exemple, tu peux laisser 1234 dans les macros mais mettre 0000 dans la cellule L1, dans ce cas, les opé devront saisir 0000 étant donné que le 1234 n'a pas d'impact pour les utilisateurs.

A plus !
1 membre du forum aime ce message.
:btres:
M
MakeThemSuffer
Jeune membre
Jeune membre
Messages : 30
Inscrit le : 26 juin 2018
Version d'Excel : 2013 FR

Message par MakeThemSuffer » 29 juin 2018, 11:43

Merci le système de code marche a merveille.

Cependant jai de nouveau le problème de la dernière fois concernant la case a cocher qui doit marquer "rempli" sur le fichier projet

une fenetre saffiche indiquant : erreur dexcution 91 variable dobjet ou variable de bloc with non definie

et toujours cette phrase en jaune
Ligne = ActiveWorkbook.Sheets("Feuil1").Range("A2:A" & ActiveWorkbook.Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row).Find(Miss).Row


EDIT : j'ai résolu ce problème : en fait j'avais changé le code qui créait le nom du formulaire de la mission, de façon a ce qu'une date soit écrit jj-mm-aaaa au lieu de jjmmaaaa (pas très comprehensible), et c'est ça qui faisait planter. C'est un détail mais j'ai remis la format jjmmaaaa pour ne pas avoir l'erreur

Mon tuteur m'a également conseillé d'envoyer un mail au bureau de nav dès qu'une mission est ajoutée pour les prévenir et daller voir le dossier contenant la liste des mission, et demander le remplissage de cette fiche , donc l'idée serait d'envoyer ce mail dès que la case a cocher du bureau opération est cliquée.
Une idée intéressante aussi serait que le bureau nav envoie un mail en retour pour indiquer qu'ils ont rempli la fiche.
Vous pensez que c'est faisable ? Ils utilisent Outlook donc ça devrait simplifier la chose.

Et un petit détail, dans la fiche formulaire, il y a une case qui redemande les dates (debut et fin) de la mission, est-il possible de récupérer la date de début déjà rentrée dans le fichier "projet" ? (ils sont un peu fainéants )


PS : si ça peut aider, je crois que le code pour envoyer un mail est le suivant :
Dim OutApp As Object
    Dim OutMail As Object

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    On Error Resume Next
    With OutMail
        .To = ""
        .CC = ""
        .BCC = ""
        .Subject = ""
        .Body = ""
        

        .display
        .send
   
   On Error GoTo 0

    Set OutMail = Nothing
    Set OutApp = Nothing
    
    End With

A bientôt !

EDIT : l'idée d'un mail a chaque mission ajoutée risque de spammer si le bureau OPS rentrent plusieurs missions le même jour, peut - être qu'un bouton "prévenir bureau nav" serait plus pratique, si ce bouton demande quelles sont les nouvelles missions ajoutées a signaler. A moins que vous voyez une meilleure solution ? :lol:
formulaire VIERGE partagé OPS & M.xlsm
(50.64 Kio) Téléchargé 2 fois
projet.xlsm
(41.93 Kio) Pas encore téléchargé
B
Braters
Membre dévoué
Membre dévoué
Messages : 579
Appréciations reçues : 10
Inscrit le : 23 décembre 2015
Version d'Excel : 2013 FR

Message par Braters » 29 juin 2018, 16:55

Re,

Ah oui je comprend mieux, si tu souhaites ajouter 2 tirets pour la date, sur la ligne suivante :
Miss = Mid(ThisWorkbook.Name, 12, Len(ThisWorkbook.Name) - 25)
'il faut changer le 25 par 27 (représente le nombre de caractères en additionnant. "formulaire_" et "_jjmmaaaa.xlsm"
Ensuite, la date de début de mission vient maintenant se mettre directement dans la fiche de mission.

Et aussi plus important, j'ai rajouté l'option pour l'envoie de mail, je t'explique :

J'ai crée un nouveau bouton "Envoyer mail". Si c'est le bureau opé qui utilise le fichier (feuille déverrouiller), alors le bouton ouvre un userform où l'opé doit sélectionner les missions qui doivent être complétées et envoie un mail au bureau de nav avec la liste des missions qu'il a sélectionné.

quand le nav ouvre le fichier (verrouillage de la feuille) il complète les fiches puis appuie sur le bouton "Envoyer mail", là un message apparaît et lui demande s'il veut bien envoyer un mail au bureau des opé. Si oui, alors petit mail pour dire que les fiches disponibles ont été complétées.

Bien sûr, il faut saisir l'adresse exacte dans la macro, ainsi qu'un titre pour les mails, tu peux aussi revoir le message en lui-même, j'ai écris un truc rapide.
La macro pour un mail des opé vers les nav se situe dans l'userform USF_Mail, elle s'appelle Envoi_Mail_Ops()
La macro pour un mail des nav vers les opé se situe dans le module Mail, elle s'appelle Envoi_Mail_Nav()

N'hésite pas si tu as des questions !

A plus !
projet.xlsm
(46.32 Kio) Téléchargé 4 fois
1 membre du forum aime ce message.
:btres:
M
MakeThemSuffer
Jeune membre
Jeune membre
Messages : 30
Inscrit le : 26 juin 2018
Version d'Excel : 2013 FR

Message par MakeThemSuffer » 2 juillet 2018, 09:32

Merci tout fonctionne vraiment très bien 8[] , le système pour sélectionner plusieurs missions pour envoyer un mail est vraiment bien, ça
serait super si on pouvais faire la même chose pour supprimer plusieurs missions, j'ai essaye en m'inspirant du code mais je n'ai pas réussi :lole:


EDIT : en fait j'arrive a copier l'userform mais pour coder le bouton valider qui supprime la je bloque
formulaire VIERGE partagé OPS & M.xlsm
(49.74 Kio) Téléchargé 2 fois
projet.xlsm
(49.63 Kio) Téléchargé 4 fois
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message