Anti bouton mode creation [Résolu]

Signaler
Messages postés
59
Date d'inscription
vendredi 5 octobre 2012
Statut
Membre
Dernière intervention
6 mars 2017
-
Messages postés
59
Date d'inscription
vendredi 5 octobre 2012
Statut
Membre
Dernière intervention
6 mars 2017
-
Bonjour,
je suis entrain de tester une macro fourni par ucfoutu qui permet de reactiver automatiquement le bouton "mode creation"

dans un module :
Public Sub titi()
If Application.VBE.ActiveVBProject.Mode > 0 Then Range("A1") = Range("A1")
Application.OnTime Now + TimeValue("00:00:01"), "titi"
End Sub

et ceci dans la sub workbook_open
Application.OnTime Now + TimeValue("00:00:00"), "titi"

apres test j'ai du avec mon administrateur Office activer dans les parametres securité macros; l'"acces approuvé au modèle d'objet VBA". et cela fonctionne parfaitement.

Maintenant j'ai voulu crée une feuille ou se trouve la liste des personnes qui peuvent arreter la boucle pour pouvoir etre en mode creation. j'ai voulu rajouter une condition en ajoutant "and"
If Application.VBE.ActiveVBProject.Mode > 0 And Environ("username") <> Worksheets("droits").Range("A2") Then Range("A1") = Range("A1")


Mais ca marche pas la boucle continue

merci de votre aide

4 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
226
Bonjour,
Voilà qui montre que tu n'as pas compris la feinte de ucfoutu.
Le mode création est TOUJOURS interrompu dès que l'on envoie vba faire un petit tour sur la feuille de calcul. C'est tout bête, hein ? (MDR)

Or, que fais ton code ? il va voir ce qui est écrit en A2 (bé ... il y "fait un tour"

Que veux-tu faire, exactement ?
Si c'est permettre à certains d'entrer en mode création et l'interdire à d'autres, fais cette vérification d'entrèe de jeu, sans (surtout pas) faire un tour sur la feuille de calcul ...
Ainsi
Private Sub Workbook_Open()
Select Case Environ("username") ' on voit qui est là
Case "paul", "jacques", "bertrand", "pierre"
'on laisse passer ceux-là(on ne lance pas titi, qui ne se
'relancera donc pas)
Case Else
'pas l'un d'eux ? ==>> on lance titi, qui se relancera sans cesse
Application.OnTime Now + TimeValue("00:00:00"), "titi"
End Select
End Sub

Et on ne touche pas à la procédure titi du tout.

Il t'est également possible de faire autrement et d'aller plus loin (en demandant une identification et un mot de passe). Seule condition alors : que cette vérification se fasse sans les données d'une feuille de calcul (par exemple par exploitation d'un fichier txt)
Messages postés
59
Date d'inscription
vendredi 5 octobre 2012
Statut
Membre
Dernière intervention
6 mars 2017

Merci Ucfoutu
En Effet je n avais vraiment pas compris la feinte
Messages postés
59
Date d'inscription
vendredi 5 octobre 2012
Statut
Membre
Dernière intervention
6 mars 2017

en faite sur mon fichier partagé je ne peux pas utilisé la protection de feuille intrasequement.
Du coup je suis passé par des chemins detournés
En empechant la modification du fichier en mettant
dans le worbook
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Environ("username") = Worksheets("droits").Range("A1").Value Then
ElseIf Intersect(Target, Range("A6000")) Is Nothing Then

Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
End If
End Sub

mais ce code a une faille en appuyant sur le bouton mode creation, n importe qui peut modifer les feuilles....
d'ou cette recherche de code antidesactivation du mode creation
Je ne vois pas d autre solution pour suppléer la protection de feuille sur un fichier partagé
Messages postés
59
Date d'inscription
vendredi 5 octobre 2012
Statut
Membre
Dernière intervention
6 mars 2017

C'est nickel ca marche!!!!
par contre j'ai un "effet secondaire" sur certain PC...lorsque je veux le fermer par le biais du bouton fenetre il refuse...
j arrive a le fermer qu avec le bouton "quitter"...
bizarre