Délai fermeture automatique du classeur

:rofl: :rofl: :rofl: :rofl:
Non, à ma connaissance. Mais si tu as des idées en terme d’amélioration de l’expérience utilisateur, je suis preneur. J’imagine bien que tu ne puisses plus te rappeler du fonctionnement de l’appli dans les détails, tu y as mis tellement de petits trucs et astuces intéressants.

Etudie un peu ce point. sachant que le MDP de connection pour un usager est « Toto » (ne laisse accessible que STAT et CONNECTION) et le mien est « dupont » (je serai toujours le seul à le savoir, donne accès aussi à MOT DE PASSE), est-il possible de m’éviter d’oublier de remettre le troisième MDP « dupont » (qu’on devrait changer pour éviter la confusion) après ouverture de STATS?

Je suggère cette idée parce que je pense que l’usager connecté avec MDP « Toto » ne pourra jamais accéder à MOT DE PASSE. Je me trompe?

Merci d’étudier et de faire la manip (bouton au autre, je sais pas!) si possible.

« Etudie un peu ce point. sachant que le MDP de connection pour un usager est « Toto » (ne laisse accessible que STAT et CONNECTION) et le mien est « dupont » (je serai toujours le seul à le savoir, donne accès aussi à MOT DE PASSE), est-il possible de m’éviter d’oublier de remettre le troisième MDP « dupont » (qu’on devrait changer pour éviter la confusion) après ouverture de STATS? »

A l’ouverture du classeur au moment de la saisie du mot de passe « Toto » ou « Dupont » le traitement bride l’ensemble des onglets les rendant invisibles et en fonction de celui saisi débride partiellement ou intégralement le classeur
Je peux à ce niveau verrouiller l’onglet « STAT » avec un mot de passe qui serait intégré dans l’onglet « MOT DE PASSE »
Pour le déverrouiller c’est celui qu’il faudra utiliser
Si un doute subsiste le concernant il suffira d’aller le consulter
Reste si on le verrouille à la main de ne pas se tromper et de mettre impérativement le même au risque ne pas pouvoir le déverrouiller avec celui dans l’onglet
Sinon seul un bouton de verrouillage dans cet onglet enlèvera ce risque car il ira le chercher

Maintenant le choix t’appartient
A toi de me dire

Sinon seul un bouton de verrouillage dans cet onglet enlèvera ce risque car il ira le chercher

Si j’ai bien compris, dans ce cas, il me suffira de cliquer sur STAT --> saisir un MDP (autre « dupont » pour éviter la confusion. Ce sera aussi écrit dans MOT DE PASSE) --> y faire mes choses puis ressortir avec clique sur la croix. Le clique sur la croix, ferme STAT et le verrouille automatique de telle sorte qu’à la reouverture de STAT, le même MDP me sera demandé. C’est ça? Si oui, je suis preneur parce que je serai le seul à connaitre et avoir accès à MOT DE PASSE (ce sera toujours le cas parce que le MDP « Toto » ne le permet pas) !

« Le clique sur la croix, ferme STAT et le verrouille automatique de telle sorte qu’à la reouverture de STAT, le même MDP me sera demandé »

Presque cela si ce n’est que ce n’est à la fermeture du classeur que le verrouillage s’opèrera mais à l’ouverture dans la même phase que celle qui invite à saisir « dupont » ou « Toto »
Le réaliser à la fermeture n’est pas fiable à 100% on peux sortir à la sauvage avec par exemple l’activation des 3 touches CTR/ALT/SUPR et gestionnaire d’application et fermer Excel
A l’ouverture après cette manipulation l’onglet « STAT » ne sera pas verrouillé
Tandis-que si je le verrouille à l’ouverture c’est infaillible
Je peux te le proposer demain sur une nouvelle version à tester
A toi de voir

Ok. Je testerai pour voir…
Entretemps, je garde au chaud ce que tu as fait aujourd’hui :smiley: ça déjà bien fait ses preuves !
A demain,

Bonjour

Ci-joint une nouvelle version
2 boutons supplémentaires onglet « STATS »
Bouton « Verrouillage » : verrouille l’onglet en utilisant le mot de passe onglet « MOT DE PASSE » cellule C2
Bouton « Déverrouillage » après saisi du mot de passe dans une boîte de dialogue après comparaison de celui de l’onglet « MOT DE PASSE » cellule C2 si identique déverrouille la feuille « STATS »
sinon envoie un message « Mot de passe erroné » et laisse en place le verrouillage
Le verrouillage et le déverrouillage peuvent s’effectuer par la procédure classique mais attention au verrouillage par ce biais de saisir le même mot de passe que celui de l’onglet « MOT DE PASSE » cellule C2
Pour tout nouveau de passe bien mettre à jour l’onglet « MOT DE PASSE » cellule C2
D’une manière générale pour éviter une distorsion entre les mots de passe n’utiliser que les boutons pour verrouiller ou déverrouiller
Le changement de mot de passe est à effectuer dans l’onglet « MOT DE PASSE » cellule C2 uniquement

Pour fiabiliser ce fonctionnement et éviter tout oubli de verrouillage j’ai intégré le verrouillage de l’onglet « STATS » dans le traitement de connexion à l’ouverture du classeur et à l’activation du bouton « CONNEXION »
Ainsi quoi qui l’arrive l’ouverture du classeur se fera avec l’onglet « STATS » toujours verrouillé
J’ai mis comme mot de passe ( onglet « MOT DE PASSE » cellule C2) : dupond et non dupont de l’ouverture du classeur
Ci-joint donc ton classeur avec ces adaptations
Essaies et donnes tes remarques

LE BON test fermeture.xlsm (68,8 Ko)

Bonjour,
Je teste et compare à la dernière version…
Merci,

Re,

Bravo, que du bon. J’adopte cette version. Juste 1 ou 2 petits trucs :

  • Tout d’abord, il y a l’ancien problème de date (anglais / français d’après moi) qui persiste dans cette version. J’avais cru le corriger dans le VBA. Le problème est par exemple que si tu écris par le Formulaire 03-04-2020, il s’écrit dans DONNEES 4/3/2020. Il y a toujours inversion du jour et du mois et non respect du format (03-04-2020) au niveau de DONNEES (aux 2 différentes dates !). Et si tu le réglais ?

  • Connecté pour la toute première fois à cette version, et après avoir renseigné le formulaire, le résultat obtenu après click sur enregistrement est sur l’image ci-dessous. Ce qui est curieux est que même après plusieurs essais, cette erreur ne s’est plus jamais reproduire. Cela pourra-t-il être un problème un jour ou pas ?

2020-06-16 12_36_13-UserForm1

« Tout d’abord, il y a l’ancien problème de date (anglais / français d’après moi) qui persiste dans cette version. J’avais cru le corriger dans le VBA. Le problème est par exemple que si tu écris par le Formulaire 03-04-2020, il s’écrit dans DONNEES 4/3/2020. Il y a toujours inversion du jour et du mois et non respect du format (03-04-2020) au niveau de DONNEES (aux 2 différentes dates !). Et si tu le réglais ? »

Je t’avais préconisé pour une bonne gestion des dates de mettre les colonnes correspondantes onglet « DONNEES » colonne A et H en format texte sinon il y a des anomalies d’affichage notamment dans la combobox1 on en avais longuement échangé
J’ai retrouvé ces colonnes avec des formats autre que Texte
J’ai donc pris mon courage à 2 mains et après avoir mis ces 2 colonnes en format texte les dates étant devenues des chiffres je les aient toutes ressaisies à la main
La présentation est maintenant correcte dans l’onglet « DONNEES » ainsi que dans le formulaire dans la combobox1
A maintenir impérativement ces 2 colonnes en format Texte pour un résultat satisfaisant notamment dans la restitution des dates dans le formulaire
Toute fois des erreurs d’instruction format dans les lignes de codes derrière le bouton « MODIFIER » ainsi :

If Me.TextBox2 <> «  » Then
Sheets(« DONNEES »).Cells(ligne, 8) = Format(Me.TextBox2, « mm/dd/yyyy »)
End If

If Me.TextBox14 <> «  » Then
Sheets(« DONNEES »).Cells(ligne, 1) = Format(Me.TextBox14, « mm/dd/yyyy »)
End If

que j’ai remis d’aplomb ainsi :

If Me.TextBox2 <> «  » Then
Sheets(« DONNEES »).Cells(ligne, 8) = Format(Me.TextBox2, « dd/mm/yyyy »)
End If

If Me.TextBox14 <> «  » Then
Sheets(« DONNEES »).Cells(ligne, 1) = Format(Me.TextBox14, « dd/mm/yyyy »)
End If

Idem derrière le bouton « ENREGISTRER »

N’est tu pas intervenu dessus car je suis surpris de toutes ces coquilles ?
Faire un imper oui mais autant (4 format erronés)

De plus j’avais tout testé tout marchait bien

Côté date donc tout est OK test à l’appui

Pour le message d’erreur concernant la feuille protégée j’y est été confronté
Après recherche et différents tests c’est un peu le mystère surtout que si on opère le débogage et que par F5 on ré-enclenche le traitement plus de message il se déroule jusqu’à son terme
Je n’ai pas eu d’autre choix que d’inclure juste avant la ligne qui engendre l’anomalie cette ligne de code qui l’évite et fais poursuivre la suite de la procédure donc sans cet arrêt intempestif :

On Error Resume Next

Après plusieurs tests plus de blocage

A vérifier bien-sur

Je te joint donc ton fichier avec toutes ces corrections
Fais des essais et dis moi

LE BON test fermeture.xlsm (75,8 Ko)

Waouh, quelle maitrise !?!

Pour les dates, ne cherche pas longtemps, le coupable est bien moi dans mes tentatives de résolution du problème de format. Vraiment désolé de t’avoir laisser ressaisir les dates. J’aurais dû te dire que toutes les données de cette appli sont encore fictives… Juste clique et tire…

Je profite à comprendre le rôle de « On Error Resume Next », ça me fait penser à « SI ERREUR » en formule. Au passage, à mon avis, cette erreur est due à la sophistication des codes et leur ordre d’enclenchement. Elle est si minime, qu’il est laborieux de la retrouver. Mais comme il y a toujours une astuce…

Avec un tel coaching, bientôt je vais rédiger des petits codes ou mieux réadapter les codes tout fait. N’étant pas informaticien de formation (et déjà occupé par ailleurs), je préfère poursuivre le dernier objectif à condition de me faire progressivement les bases.

Merci, je teste et te dis,

Une précision

Cette parade n’est pas une solution idéale car si elle permet de s’affranchir de blocage elle a le désavantage de supprimer tous les blocages potentiels celui qui nous met en difficulté c’est le but mais aussi tous ceux qui pourrait intervenir pour une raison ou pour une autre ce n’est pas le but et donc de permettre un traitement sans interruption jusqu’à son terme d’avoir un résultat inattendu complément altéré suite à des bugs non signalés et de ne pas savoir où ils se situent dans le code
Donc ce rafistolage est la solution de dernier recours faute de mieux en réponse à un dysfonctionnement qui ne peux être résolu différemment

A utiliser donc avec précaution

Petites explications qui a son importance

…tu as placé « On Error… » uniqument au Formulaire / bouton enregistré / entre with et end with. Si je comprends bien, il ne faut pas en abuser et à ne pas donner une portée générale sur tout un module ou classeur.

Bonjour
« …tu as placé « On Error… » uniqument au Formulaire / bouton enregistré / entre with et end with. Si je comprends bien, il ne faut pas en abuser et à ne pas donner une portée générale sur tout un module ou classeur. »

Oui ce n est que dans cette procédure que j ai eu ce souci donc j ai mis cette parade uniquement à ce niveau
Elle ne touche pas les autres traitement
Au gré de ceux qui pourrait subir le même désordre il faudra leur inclure cette rustine

Il faut être conscient de sa portée qui peut être une solution salvatrice mais aussi un potentiel handicap
Lors de souci sur le résultat obtenu qui n est pas celui attendu sur une procédure dotée d une telle instruction il faut envisager temporairement de l inhiber pour relever tous les bugs que ne permet pas sa présence active en évitant celui que normalement il est censé traité en jouant sur les données à traiter
Pas toujours très simple
Une arme à double tranchant

Bonjour,

Je comprends mieux. Comme « On Error… » est placé au bouton enregistrement, le seul problème possible qu’il pouvait poser est de plus ou moins mal enregistrer les infos saisies comme le résultat d’un calcul… Comme tu as fait les tests, ce ne sera pas le cas.

Je te partage une idée (peut être pas vraie !) qui peut expliquer ce petit bug. Si tu regardes STAT de ton dernier fichier, tu constateras par exemple que la formule que j’y ai introduite ne prend pas en compte toute la colonne « I » comme je l’ai corrigé dans le mien : NB.SI(DONNEES!I:I;« Féminin »). Lorsque j’avais ouvert le fichier et eu le bug, je me suis dit que le problème était à ce niveau. Après cette correction et plusieurs essais, l’erreur ne s’est plus produite. Sachant que le bouton enregistré insère les infos saisies dans DONNEES et dans STATS à la vitesse de l’éclair, cela peut-il justifier ce bug?

Ensuite, comme je continue de scruter ton code, j’ai constaté (ce n’est pas nouveau. J’avais oublié de signaler ce léger souci esthétique) qu’à :

  • l’enregistrement (voir l’image), si je clique sur « oui », l’enregistrement « est » pris en compte dans DONNEES (ce résultat est attendu) et une popup confirme « L’information a été enregistrée »

  • Mais si je clique « non », l’enregistrement « n’ est pas » pris en compte dans DONNEES (ce résultat est attendu), mais la popup confirme toujours « L’information a été enregistrée » au lieu du contraire. Cela peux-il être remédié ?

2020-06-17 12_42_24-UserForm1

Autre point. Habituellement, lorsqu’on fait une erreur de saisie de MDP, le « classeur se ferme après 1 essai ». Est-il possible que ce soit plutôt « l’application qui se ferme directement et après un 2e essai » ? Cela vaut la peine. De toute façon après la fermeture du classeur, il faut fermer l’application à la main, l’ouvrir puis ressaisir le MDP. Il me semble que la procédure « arret » peut être réutiliser à ce niveau.

« Je te partage une idée (peut être pas vraie !) qui peut expliquer ce petit bug. Si tu regardes STAT de ton dernier fichier, tu constateras par exemple que la formule que j’y ai introduite ne prend pas en compte toute la colonne « I » comme je l’ai corrigé dans le mien : NB.SI(DONNEES!I:I;« Féminin »). Lorsque j’avais ouvert le fichier et eu le bug, je me suis dit que le problème était à ce niveau. Après cette correction et plusieurs essais, l’erreur ne s’est plus produite. Sachant que le bouton enregistré insère les infos saisies dans DONNEES et dans STATS à la vitesse de l’éclair, cela peut-il justifier ce bug? »

Bonne analyse mais pourquoi en ENREGISTRER et pas en MODIFIER qui a la même incidence à ce niveau
De plus pourquoi un bug au moment de l’activation du bouton qui stop le traitement sur l’intégration d’une donnée dans l’onglet « DONNEES » traitement qui se poursuit sans aucune interruption jusqu’à son terme par la simple activation de la touche F5 alors qu’aucune autre intervention de quel que nature que ce soit n’est effectué lors de cet arrêt

Pour moi cela reste du domaine du mystère

Tu peux faire des essais en inhibant la ligne de code rajoutée (On Error Resume Next) en mettant une petite côte au début et d’essayer tes manipulations de formules onglet « STATS »
Tu es toujours à temps de la remettre en supprimant cette petite côte
Je te laisse la main sur ce point

« l’enregistrement (voir l’image), si je clique sur « oui », l’enregistrement « est » pris en compte dans DONNEES (ce résultat est attendu) et une popup confirme « L’information a été enregistrée » »
« Mais si je clique « non », l’enregistrement « n’ est pas » pris en compte dans DONNEES (ce résultat est attendu), mais la popup confirme toujours « L’information a été enregistrée » au lieu du contraire. Cela peux-il être remédié ? »

C’est corrigé

« Autre point. Habituellement, lorsqu’on fait une erreur de saisie de MDP, le « classeur se ferme après 1 essai ». Est-il possible que ce soit plutôt « l’application qui se ferme directement et après un 2e essai » ? Cela vaut la peine. De toute façon après la fermeture du classeur, il faut fermer l’application à la main, l’ouvrir puis ressaisir le MDP. Il me semble que la procédure « arret » peut être réutiliser à ce niveau. »

Cette évolution est mise en place dans cette version

Fais des essais et dis moi

LE BON test fermeture.xlsm (77,3 Ko)

Merci, ça marche nickel,

« Tu peux faire des essais en inhibant la ligne de code rajoutée (On Error Resume Next) en mettant une petite côte au début… »

Je vois, il me suffit de mettre On Error Resume Next en commentaire « ’ » et de faire mes tests ou de la laisser en commentaire jusqu’au jour où le bug reviendrait. Ainsi, on aura l’avantage de peut être mieux reconnaitre les actions effectuées avant le bug ou de simplement réactiver la gestion de l’erreur le cas échéant. Ce qui relancerait la recherche en douceur.

Je reviendrai vers toi en cas de petites idées d’évolution…

Bonsoir FFO,

Apli_Stats.xlsm (81,4 Ko)

Voici quelques idées d’évolution de l’Apli_Stats justifiées pour te faciliter la tâche, anticiper ou reconsidérer ma demande. Les codes qui suivent ont été générés avec le générateur de macro. Ils ne sont pas dans le fichier Excel ci-joint.

  • Ce code imprime en PDF les pages 1 et 2 de l’onglet STATS.

Option Explicit
Sub Imprime_Stats()
ChDir « C:\Users\TOSHIBA\Documents »
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
« C:\Users\TOSHIBA\Documents\Test_Imprime.pdf », Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
From:=1, To:=2, OpenAfterPublish:=True
End Sub

Peux-tu :

avant l’impression, me permettre de définir les pages à imprimer (exemple : 1; 3-4) ? (pour ne pas imprimer les pages inutiles)

avant l’impression, me permettre de nommer le fichier Pdf qui sera généré ? (pour ne pas écraser les anciens documents imprimés)

placer un bouton imprime_Stats sur l’onglet CONNEXION ? (parce que c’est le seul onglet autant accessible avec MDP Toto et dupont. Ainsi, tout usager peut imprimer et récupérer le document STATS en Pdf après l’avoir fermer à la main)

  • Ce code actualise l’onglet STATS (pour ne pas cliquer sur « actualiser tout » après
    un lot de saisie sur le formulaire)

Option Explicit
Sub Actualiser_Stats()
ActiveWorkbook.RefreshAll
End Sub

Peux-tu :

programmer l’actualisation de l’onglet STATS lorsqu’on clique sur les boutons ENREGISTRER, MODIFIER du formulaire ? (et peut-être à d’autres situations que j’ignore)

J’aimerais effectuer un copier-coller du contenu de l’onglet STATS de Excel vers une page Word. Ainsi, sur Word, il serait possible de rédiger des rapports plus élaborés en y ajoutant du texte en plus des graphiques et des tableaux provenant de Excel.

Peux-tu donc :

m’écrire la macro qui copie le contenu de l’onglet STATS et le colle sur un fichier
Word ouvert ? (qui peut être fermé à la main)

Rappel, je reste ouvert à toutes tes propositions d’amélioration ou de reconsidération
de ma demande.

Merci d’avance,

Bonjour
Je te réponds dès que possible

« Ce code imprime en PDF les pages 1 et 2 de l’onglet STATS. »

Ce code n imprime pas mais enregistre les pages ciblées en format « pdf »

« avant l’impression, me permettre de définir les pages à imprimer (exemple : 1; 3-4) ? »

Dans le code que tu M as fourni la ligne qui détermine les pages :
From:=1, To:=2,
Ne permet pas ce genre d écriture : exemple : 1; 3-4
Soit on cible de la page 1 à 4 soit il faut le réaliser en 2 fois donc 2 fichiers
Je fouinerai sur internet à la recherche d un plus approprié

Je ne serai pas disponible ce jour
Normalement demain je suis à l oeuvre

Donnes moi les réponses à mes interrogations

"avant l’impression, me permettre de définir les pages à imprimer (exemple : 1; 3-4) ? (pour ne pas imprimer les pages inutiles)

avant l’impression, me permettre de nommer le fichier Pdf qui sera généré ? (pour ne pas écraser les anciens documents imprimés)

placer un bouton imprime_Stats sur l’onglet CONNEXION ? (parce que c’est le seul onglet autant accessible avec MDP Toto et dupont. Ainsi, tout usager peut imprimer et récupérer le document STATS en Pdf après l’avoir fermer à la main)"

C’est fait mais sur la base d’une saisie de page qui se suivent et non segmentée ainsi :

1/4 (exporte les pages 1 à 4) en .pdf répertoire : C:\Users\TOSHIBA\Documents

et non 1/3-4) pour n’exporter que les feuilles 1/3/4

une boîte de dialogue demande le nom d’enregistrement (ne pas mettre l’extension .pdf inscrit en dur dans le code)

Le document pdf est enregistré dans le répertoire ci-dessus et reste ouvert pour manuellement enclencher l’impression

« programmer l’actualisation de l’onglet STATS lorsqu’on clique sur les boutons ENREGISTRER, MODIFIER du formulaire ? (et peut-être à d’autres situations que j’ignore) »

intégré derrière le bouton « ENREGISTRER » et « MODIFIER » du formulaire

« m’écrire la macro qui copie le contenu de l’onglet STATS et le colle sur un fichier
Word ouvert ? (qui peut être fermé à la main) »

Macro réalisé sur la base de l’onglet « STATS » colonne A à C 1° ligne jusqu’à la dernière ligne de la colonne A

2 boutons supplémentaires onglet « CONNEXION » :

« Imprime STATS » : pour la création des fichiers pdf en relation avec l’onglet « STATS »
« Word » pour la recopie sur un document word de l’onglet « STATS »

Je pense avoir répondu à tes attentes

Ci-joint cette nouvelles versions avec toutes ces évolutions

Fais des tests et dis moi

Apli_Stats.xlsm (88,2 Ko)

Bonjour,
Merci.
Je teste et te dis.

Par ailleurs, je te demande de bien vouloir regarder la demande en VBA que le membre Lastrate m’a faite…

Bien cordialement,