Bonjour Johan, Christian, le Forum
Et bien ce Johan a de la suite dans les idées, je le vois dans je ne sais plus combien de fils pour cette histoire de password...
Sinon pour Christian très joli travail, avec ce "WorkFlow" des procédures. Mais si je peux me permettre deux ou trois remarques à la volée, (les contributeurs et contributrices permanent(e)s de ce Forum, savent bien que je ne peux m'en empécher !! lol)
Ceci :
Sub Ferme_MotDePasse1()
Me.TextBox1.Value = ""
MotDePasse1.Hide
Unload MotDePasse1
End Sub
Peut s'écrire le plus simplement du monde comme ci-dessous, pour exactement le même résultat (Unload vide de la mémoire le contenu de tous les Controls, si ces valeurs on été entrées en "RunTime", à l'opposé des valeurs entrées en "DesignMode" dans la fenêtre Propriété)
De plus Hide est inutile quand il est suivi de Unload.
Sub Ferme_MotDePasse1()
Unload MotDePasse1
End Sub
Ceci :
Public NomAccès As Variant
Public MotAccès As Variant
Ces deux Variables ne sont que des Variable de Type String de longueur variable, inutile de leur réserver autant d'espace mémoire, d'autant plus en Public Global.
Pour Info :
String (variable-length) = 10 bytes + string length 0 to approximately 2 billion
Variant (with characters) = 22 bytes + string length Same range as for variable-length String
Sur une mini application comme celle-ci, ce n'est pas catastrophique, mais il vaut mieux toujours prendre des bonnes habitudes.
Public NomAccès As String
Public MotAccès As String
Ceci :
Sub FermeFormatFeuille()
CommandBars(1).Controls(5).Controls(4).Enabled = False
End Sub
Attention, il faut toujours faire attention à deux choses :
1) on n'évite de trafiquer les barre d'outils des Users (surtout sur un Forum de partage de connaissance) quand on n'a pas la maîtrise absolue de ce que l'on fait.
2) Et pour commencer par avoir un peu de maîtrise, on ne se réfère jamais au numéro d'Index des Items des Barres d'outils.
En utilisant les index numbers cette méthode est subordonée à ce que toutes les machines n'aient jamais subies aucune personnalisation des CommandBars... (sinon c'est le "Big wouaille" !!)
Donc on se réferra à leur l'ID number ....Voici un lien interressant :
=>
Un cadeau Microsoft avec la list des ID de tous les controlspour Excel 2000
De plus en général il est hautement recommandé de mettre en place une gestion d'erreur. Et de toutes les erreurs possibles, car sinon en cas de plantage on laisse le User avec son Excel en "vrac".
Il reste aussi ces Byte "I" non déclarées qui vont aussi passer comme Variant, c'est dommage...
Pour le reste, je pense que tu t'es bien débrouillé sans passer par un Tableau (Dynamic Array) pour ta macro "NommeLesZones", bien que celà engendre tout plein de "Select"... Mais je pense que c'est un bon exercice déjà comme celà.
Voilà, ces remarques ne sont en aucun cas des reproches, car le plus important ici est de partager nos connaissances, ce que tu sembles très bien faire.
Bon Dimanche Après Midi
@+Thierry