VBA
Bonjour à tous j'ai un soucis de programmation, j'ai cette formule :
Private Sub CommandButton1_Click()
'Accés gestion utilisateur sur le bouton administrateur dans le menu général
If Me.TextBox1.Value = "lo@de%" Then
Unload Me
Sheets("ACCES").Activate
Else
MsgBox "Mot de passe incorrecte !", vbCritical, "MDP incorrecte"
End If
End Subça fonctionne très bien, sauf que j'aimerais qu'à la place de :
Sheets("ACCES").Activate
j'aimerais que ça ferme mon fichier et que ça me le rouvre automatiquement
Cette formule est sur un bouton dans un userform.
Merci en avance de votre aide et bon week end à tous !
Bonjour,
1) tout le monde vient sur le forum pour obtenir de l'aide, donc "à l'aide" n'est pas un titre correct et donc merci de le corriger.
2) si tu fermes ton classeur qui exécute la macro, la macro s'arrête, donc à ma connaissance, il n'y a pas de solution purement vba pour ton problème. Par ailleurs je me pose la question de savoir pourquoi tu estimes avoir besoin de faire cela. Connaissant ce besoin, on pourra peut-être te proposer d'autres solutions.
Bonjour Atomiik Loic, H2so4,
Il est possible d'inclure dans ta macro la fermeture du classeur et sa réouverture.
Par contre comme indiqué par H2so4, cela me semble moins pertinent dans ton besoin. Il me semble que tu ne souhaites pas qu'un utilisateur puisse accéder à la feuille ACCES et que seul l'administrateur puisse le faire.
Dans cette hypothèse il vaut mieux que le bouton administrateur ne soit pas accessible à un utilisateur. Ou sinon prévoir un mot de passe plus difficile. Au minimum 8 caractères. Et bien sur que ton programme soit protégé. Même si sous Excel la "protection" est faible.
Bonjour Xcellus,
Il est possible d'inclure dans ta macro la fermeture du classeur et sa réouverture.
Peux-tu me montrer comment il faut faire pour un fermer et puis rouvrir le classeur qui contient la macro ?
Bonjour Atomiik Loic, H2so4,
Il est possible d'inclure dans ta macro la fermeture du classeur et sa réouverture.
Par contre comme indiqué par H2so4, cela me semble moins pertinent dans ton besoin. Il me semble que tu ne souhaites pas qu'un utilisateur puisse accéder à la feuille ACCES et que seul l'administrateur puisse le faire.
Dans cette hypothèse il vaut mieux que le bouton administrateur ne soit pas accessible à un utilisateur. Ou sinon prévoir un mot de passe plus difficile. Au minimum 8 caractères. Et bien sur que ton programme soit protégé. Même si sous Excel la "protection" est faible.
Bonjour et merci à tous pour vos réactions rapides , tu as tout compris dans mon besoin.
J'aurais aimer en mode utilisateur sur le bouton administrateur dans le menu général avec un lien qui me balance dans la partie administrateur avec un mot de passe je l'ai fait mais ça ne fonctionne pas puisque je pense qu'il y a une protection dans l'utilitaire protec pratique rajouté à mon fichier.
la procédure est bonne car elle fonctionne dans plusieurs endroits de mon fichier.
alors j'avais dans l'idée de trouver une autre solution, celle de fermer et rouvrir le programme n'est peut être pas la bonne.
A nouveau,
Pour H2so4, la macro Ferme avant de lancer la clôture lance une procédure de réouverture présente dans le classeur en cours.
Le décalage est minime si le classeur n'a pas besoin de sauvegarde. Il peut être plus grand si besoin de sauvegarder. Ce type d'opération est surtout réservée à partir d'un autre classeur maître. Plutôt que sur un seul classeur ouvert.
Peux-tu me montrer comment il faut faire pour un fermer et puis rouvrir le classeur qui contient la macro ?
Sub Ferme()
ActTime = Time + 0.00015 ' note: pour un décalage en secondes
Application.OnTime ActTime, "Rouvre"
Workbooks("Fichier.xls").Close SaveChanges:=False 'ou xlsm ou autre type (classeur en cours), ou =True selon besoin
End Sub
Sub Rouvre()
Workbooks.Open ("Chemin complet du Fichier.xls") 'ou xlsm ou autre type
End SubPour Atomiik Loic, si tu utilises un utilitaire protégé. On peut difficilement te conseiller car l'auteur de cet utilitaire tient à son programme. On ne peut enfreindre sa protection (même si c'est possible) du fait de son droit sur le programme. Ensuite sans ton propre fichier posté il est là aussi difficile de donner un avis.
Bonjour Xcellus et merci pour ta réponse.
Ce type d'opération est surtout réservée à partir d'un autre classeur maître. Plutôt que sur un seul classeur ouvert.
A mon avis cela ne fonctionne pas si la macro se trouve dans le classeur que tu fermes et que rouvres. En tant cas, je ne suis pas parvenu à provoquer la réouverture avec la macro que tu as proposée.
A nouveau,
Pour H2so4, la macro Ferme avant de lancer la clôture lance une procédure de réouverture présente dans le classeur en cours.
Le décalage est minime si le classeur n'a pas besoin de sauvegarde. Il peut être plus grand si besoin de sauvegarder. Ce type d'opération est surtout réservée à partir d'un autre classeur maître. Plutôt que sur un seul classeur ouvert.
Peux-tu me montrer comment il faut faire pour un fermer et puis rouvrir le classeur qui contient la macro ?
Sub Ferme() ActTime = Time + 0.00015 ' note: pour un décalage en secondes Application.OnTime ActTime, "Rouvre" Workbooks("Fichier.xls").Close SaveChanges:=False 'ou xlsm ou autre type (classeur en cours), ou =True selon besoin End Sub Sub Rouvre() Workbooks.Open ("Chemin complet du Fichier.xls") 'ou xlsm ou autre type End SubPour Atomiik Loic, si tu utilises un utilitaire protégé. On peut difficilement te conseiller car l'auteur de cet utilitaire tient à son programme. On ne peut enfreindre sa protection (même si c'est possible) du fait de son droit sur le programme. Ensuite sans ton propre fichier posté il est là aussi difficile de donner un avis.
J’utilise un utilitaire protégé mais ayant acheter la licence, je pense que je suis en droit de modifier quoi que ce soit car elle m’appartient désormais ( comme quand on achète un pack office etc ) à moins du contraire mais je ne comprendrais pas .
A nouveau,
Pour H2so4, le code fourni fonctionne parfaitement avec ma version d'Excel, avec un seul classeur qui contient les 2 macros dans un module. Bien sur, l'application Excel ne doit pas être fermée. Seul, le classeur est fermé. J'ai même testé aussi à partir d'un fichier sur clé USB. Cela sans souci.
Pour Atomiik Loic, relire entièrement le contrat de licence inclus avec le logiciel. Seul l'Open-Source est modifiable pour l'adapter à son propre cas particulier.