Macro avec msgbox pour validation multiples

  • Initiateur de la discussion Initiateur de la discussion djizzz
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

djizzz

XLDnaute Nouveau
D'abord Bonjour a tous.
oui, le titre est un peu .. "vague" ,
alors ci-joint un début de tableur qui est censé pemmettre aux cadre de ma boite de suivre leurs jours travaillés.
et qui sera censé aussi au boss de suivre et de valider semaine par semaine les jours effcetué par ses cadres.
les formules sont opérationnelles , ce qui me manque, c'est une msgbox (ou un truc equivalent) qui ouvre une boite de dialogue qui demande le N° de semaine a valider.
la validation entrainerai un verouillage des cellules de saisie (heures , commentaire , off) des jours de la semaine et remplirai les cases a gauche de la semaine : utilisateur qui valide et date de validation. + un petit "ok" dans la case du bas (ex A14)
genre une macro liée a une touche (forme de base) .. et au cas ou une autre macro "annul" qui permette aux gars de re-saisir leurs heure si erreur ou impossibilité.
la feuille serait donc verouillée avec un mot de passe, que seul le bos aura (pour validation).

dites-moi si je reve de penser un truc comme ou si c'est possible ???
mais je suis sur que c'est possible ... reste a voir la complexité ...

en tout cas, merci a tous et a ce forum d'exister, j'y pioche souvent moultes solutions !

a+
Djo
 

Pièces jointes

Re : Macro avec msgbox pour validation multiples

Bonjour

Ci après un fichier avec un début de réponse.
Un double click sur la case qui contient "nom d'utilisateur" lance la procédure.
Affichage d'un userform ( à améliorer )
Après validation copie des infos
Verrouillage de la zone

A tester et à modifier

JP
 

Pièces jointes

Dernière édition:
Re : Macro avec msgbox pour validation multiples

Bonjour dizz, jp14,

Une deuxième approche toujours avec userform.

Je n'ai pu terminer tels que tu le voulais, mais c'est une bonne base.

Mot de passe: boss


Edit: oupss le fichier n'était pas passé
 

Pièces jointes

Dernière édition:
Re : Macro avec msgbox pour validation multiples

merci a tout les deux.
c'est du bonheur qui se presage au loin !
JP : bravo , c'est tout a fait l'esprit.
Alex : merci aussi, mais y'a pas de PJ , alors je peux pas voir ce dont tu parles...

Djo
 
Re : Macro avec msgbox pour validation multiples

en fait , apres avoir vu ca, il serait plus simple de mettre dans le nom d'utilisateur le "username" et dans la date la date du jour de validation (sans avoir a remplir : aujourdhui() )
par contre, avoir un mot de passe dans la boite de dialogue (que seul le boss et la drh connaissent) serait plus a propos.
possible que la boite de dialogue affiche le N° de semaine ?
c'est de ma faute, je travaillais sur le fichier en meme temps et du coup le change en fonction de l'evolution.

encore merci.
Djo
je vais deja prendre ca et le bidouiller a la sauce "djo" .. on va voir la suite.
 
Re : Macro avec msgbox pour validation multiples

Re, Re,

ci-joint le fichier modifié, avec un partie de la solution de jp14,

L'usf comporte 2 boutons l'un pour la saisie et protection de la plage validée.
L'autre bouton pour le DRH pour dévérouiller les plages vérouillé.
Le mot de pass est "patron", tu peux le changer au besoin.

Regarde si cela te convient!
 

Pièces jointes

Re : Macro avec msgbox pour validation multiples

Bonjour Djizz, le forum,

ci-joint le fichier modifié avec l'username qui se mettra directement dans l'userform.

Pour info pour ne pas voir le mot de passe DRH, il faudra par la suite protéger également le projet VBA.

A te lire!
 

Pièces jointes

Re : Macro avec msgbox pour validation multiples

re bonjour a tous.
apres qqs temps je reviens !
merci a tous pour votre aide, c'est super
il me manquerai de finaliser l'histoire..
des trucs ont evolué depuis.
je souhaiterai que le "validateur" des semaines rentre un mot de passe pour lancer la macro.
ci-joint donc le code en l'etat actuel des choses /

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Count > 1 Then Exit Sub
If Target.Column <> 1 Then Exit Sub
Dim dl1 As Long ' dernière ligne
With Sheets(ActiveSheet.Name)
If InStr(1, Target.Value, "validation") > 0 Then
UserForm1.Show
If reponse = 0 Then Exit Sub
.Unprotect
Target.Offset(-1, 0).Value = Application.UserName
Target.Offset(2, 0).Value = Date
Target.Offset(3, 0).Value = "ok"


With .Rows(Target.Offset(-3, 0).Row & ":" & Target.Offset(3, 0).Row)
.Locked = True
.FormulaHidden = False
End With
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

End If
End With
End Sub



le nom d'utilisateur (boss ou drh) ainsi que la date sont automatique (pas besoin de renseigner ca, ils ne sont que 2 dans la boite a pouvoir le faire)

l'userform en l'etat actuel des chose n'est pas utile (j'ai enlevé dans VBA les lignes qui ne servait a rien...) , je voudrais la remplacer par une demande de mot de passe
comment faire pour avoir une userform qui demande (et verifie) un mot de passe ? (mdp unique pour tout les validateurs , genre "patron" ou autre).



d'autre part , quand la validation est en cour de lancement, une msg box s'ouvre (dans le code de l'userform) :


Option Explicit

Private Sub CommandButton1_Click()


Select Case MsgBox("Vous allez valider les heures de " & Environ("UserName"))

Case vbOK

Case vbCancel
Exit Sub
End Select
reponse = 1

Unload Me
End Sub

Private Sub CommandButton2_Click()
reponse = 0
Unload Me
End Sub

Private Sub UserForm_Click()

End Sub



comment faire pour que dans le texte de cette msg box soit ecrit le N° de la semaine qui est encours de validation ? (pour info le prob est que cette case est dépendante en fonction de chaque semaine : la case correspondante au N° de semaine est 3 case en dessous de la case "validation" qui sert a valider chaque semaine)

cela est un peu desordonné , je le sais. je suis + que novice en VBA. j'ai bidouillé, tenté de copier des trucs et des machins. il y en a surement qui sont en dépis du bon sens !!!
mais pour l'instant ca marche en l'etat...

merci a ceux qui me conprendrons et qui seraient en mesure de m'aider.

je ne peux pas poster le fichier excel, il est trop lourd ! (400 Ko et je suis limité a 48 Ko)..

merci a tous.
Djo
 
Re : Macro avec msgbox pour validation multiples

Bonjour a tous.
voila ou j'en suis :


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Count > 1 Then Exit Sub
If Target.Column <> 1 Then Exit Sub
Dim dl1 As Long ' dernière ligne
With Sheets(ActiveSheet.Name)
If InStr(1, Target.Value, "validation") > 0 Then
UserForm1.Show
If reponse = 0 Then Exit Sub
.Unprotect
Target.Offset(-1, 0).Value = Application.UserName
Target.Offset(2, 0).Value = Date
Target.Offset(3, 0).Value = "ok"


With .Rows(Target.Offset(-3, 0).Row & ":" & Target.Offset(3, 0).Row)
.Locked = True
.FormulaHidden = False
End With
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

End If
End With
End Sub

tout ca marche parfaitment. MAIS😱
ce que j'aurais besoin, c'est que pour l'execution de cette macro, une demande de mot de passe apparaisse . ce qui empecherai n'importe de la lancer.

comment faire ?😕
merci de votre aide !!!🙄

cordialement,
Djo😀😀😀
 
Re : Macro avec msgbox pour validation multiples

Re,

Sinon un essai avec ce que j'ai compris. j'ai repris l'ancien fichier que je t'avais proposé.

Ne t'arrête pas sur cela, mais observe la macro associée au double_click, elle renvoi vers un module qui lui reprend la macro que tu avais dans double_click.

je sais pas si je suis clair mais plus tôt que de long discours regarde le fichier 😉.

A te lire.

mdp: patron (pour lancer la macro)
mdp: boss (pour protection feuille)
 

Pièces jointes

Re : Macro avec msgbox pour validation multiples

Salut et merci alex.
en fait depuis hier j'ai trouvé ma solution.
je n'arrive pas a poster le fichier car il fait plus que 48 Ko (le maxi qui m'est alloué)
mais voici mon code en l'état , ca marche super je suis trop content.

Option Explicit

Dim psw As String



Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Target.Count > 1 Then Exit Sub
If Target.Column <> 1 Then Exit Sub
Dim dl1 As Long ' dernière ligne
With Sheets(ActiveSheet.Name)
If InStr(1, Target.Value, "validation") > 0 Then

psw = InputBox("entrer le mot de passe", "VALIDATION")
If Not psw = "toto" Then Exit Sub
.Unprotect "toto"
Target.Offset(-1, 0).Value = Application.UserName
Target.Offset(2, 0).Value = Date
Target.Offset(3, 0).Value = "ok"


With .Rows(Target.Offset(-3, 0).Row & ":" & Target.Offset(3, 0).Row)
.Locked = True
.FormulaHidden = False
End With
.Protect "toto", True, True, True

End If
End With
End Sub


en tout cas, 1000 merci a toi et a tous ceux qui m'ont aidé.

Chooo
Djo
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
23
Affichages
1 K
Réponses
21
Affichages
2 K
Retour