Fichier partagée et userform

Ok mais ca me bloque si la personne veut faire autre chose sur le logiciel est-il possible de fermer la fenêtre par la croix rouge et si la personne retente de retourner sur l'ordre de mission si vérrou mis la fenêtre patience revient?

Pour la deuxieme erreur je n'ai pas l'option debogage j'ai juste cette erreur et il me demande de faire fin de tache....

je doit partir je réessai demain et je vous tient au courant merci bonne soirée.

Bonsoir,

ci-jointe nouvelle version à tester

Bonjour, je viens d'essayer ta dernière version ça ma l'air parfait ta réalisé toute mes attentes un grand merci pour ta patience et ta disponibilité..

Si je vois d'autre soucis je ne manquerai pas de te les faire remonter mille merci.

bonjour Thev

J'aurai une autre requête s'il te plait j'aimerai pouvoir modifier un ordre de mission pour pouvoir le réimprimer si erreur.

quand j'ouvre mon userform" supprimer un ordre de mission" j'aimerai sélectionner la ligne dans la listbox et appuyer sur le bouton modification et que les informations de mon tableau synthèse ordre de mission en fonction de la ligne sélectionné retourne dans l'userform Ordre de mission pour me permettre de le modifier et de le réimprimer?

Merci.

Bonsoir,

ci-jointe proposition.

Attention! Des instructions pour gérer l'utilisation du formulaire Ordre de Mission avaient disparu dans la version que vous m'avez renvoyée

Public Sub Workbook_Open()
    '.........................................................................    
    'remise à blanc du verrou si ce classeur n'est pas ouvert par un autre utilisateur
    With ThisWorkbook
        If UBound(.UserStatus) = 1 Then Names.Add Name:="verrou", RefersTo:="=""""": ThisWorkbook.Save
    End With
'API de simulation d'entrée clavier
#If VBA7 Then
    Private Declare PtrSafe Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As LongPtr, ByVal dwExtraInfo As LongPtr)
#Else
    Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
#End If
Const VK_SNAPSHOT = 44
Const VK_LMENU = 164
Const KEYEVENTF_KEYUP = 2
Const KEYEVENTF_EXTENDEDKEY = 1

'variables du module
Dim fermeture_formulaire As Boolean

Bonjour Thev,

Je viens d’essayer la modification ca fonctionne presque parfaitement la seule erreur que j'ai c'est quand je modifie l'ordre de mission et que je le réimprime il me l'enregistre dans ma synthèse ordre de mission mais me l'incrémente .

J'aimerai que si c'est une modification il me modifie la ligne en fonction du numéro de l'ordre de mission?

Peut tu m'expliquer ce code la

'API de simulation d'entrée clavier
#If VBA7 Then
    Private Declare PtrSafe Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As LongPtr, ByVal dwExtraInfo As LongPtr)
#Else
    Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
#End If
Const VK_SNAPSHOT = 44
Const VK_LMENU = 164
Const KEYEVENTF_KEYUP = 2
Const KEYEVENTF_EXTENDEDKEY = 1

'variables du module
Dim fermeture_formulaire As Boolean

et ou dois je le mettre?

Merci.

Bonjour,

il s'agit des instructions figurant en tête du code associé au formulaire "Ordredemission".

Pour l'API "keybd_event" , il s'agit d'instructions de compilation permettant son fonctionnement à la fois en 64 et 32 bits.

La variable booléenne "fermeture_formulaire" doit être impérativement placée en tête du code afin qu'elle soit reconnue par les procédures "Initialize" et "Terminate"

Ok merci pour les explications.

Pour ma première question comment puis je éviter que ça m’incrémente l'ordre de mission dans la synthèse quand je le modifie l'ordre de mission? me faut il creer un deuxieme bouton d'impression qui s'ouvre que quand je clique sur modification et supprimer la ligne de code qui permet d'incrementer?

Merci.

ci-jointe nouvelle version

encore un grand merci pour ta disponibilité et ta rapidité de réponse ca fonctionne parfaitement.

Rebonjour Thev,

j'ai une nouvelle erreur qui est apparue au moment d'imprimer l'ordre de mission j'ai l'erreur la méthode de l'objet range à échoué dans cette partie de code

With Feuil4
    If UserForms.Count = 1 Then Set cell = .Columns("A").Find("", Range("titre_num_ordre")): If cell Is Nothing Then Set cell = Range("titre_num_ordre").Offset(1)
    If UserForms.Count > 1 Then Set cell = .Columns("A").Find(Ordredemission.TxtN°ordredemission.Value)
    Lgi = cell.Row

surligner en jaune:

Set cell = .Columns("A").Find("", Range("titre_num_ordre"))

J'ai une erreur aussi impossible d'afficher une feuille non modale lorsque une feuille modale est affichée quand je clique sur modifier ordre de mission

Merci.

Bonsoir,

Vous avez a priori la même version d'Excel que moi. Je n'ai aucune de ses erreurs sur le fichier que je vous ai communiqué.

"titre_num_ordre" doit figurer dans le gestionnaire de noms du classeur.

J'ai néanmoins apporté quelques modifications dont un calendrier plus complet

ci-jointe nouvelle version.

Un grand merci encore du très bon travail très rapide merci M. THEV.

Pour améliorer encore un peu le programme dans l'ordre de mission y aurait -il un système plus sympa pour sélectionner l'heure de départ et de retour? quelque chose de plus intuitif...

Bonjour,

Pour sélectionner l'heure, peut-être cette proposition.

Bonjour Thev,

Merci c'est très bien comme proposition ça me parait plus sympa....

Bonne journée.

Rechercher des sujets similaires à "fichier partagee userform"