Anti bouton mode creation

Résolu
mikmak78 Messages postés 59 Date d'inscription vendredi 5 octobre 2012 Statut Membre Dernière intervention 6 mars 2017 - 17 juin 2015 à 15:44
mikmak78 Messages postés 59 Date d'inscription vendredi 5 octobre 2012 Statut Membre Dernière intervention 6 mars 2017 - 18 juin 2015 à 15:50
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

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
17 juin 2015 à 17:22
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)
2
mikmak78 Messages postés 59 Date d'inscription vendredi 5 octobre 2012 Statut Membre Dernière intervention 6 mars 2017
18 juin 2015 à 09:57
Merci Ucfoutu
En Effet je n avais vraiment pas compris la feinte
0
mikmak78 Messages postés 59 Date d'inscription vendredi 5 octobre 2012 Statut Membre Dernière intervention 6 mars 2017
18 juin 2015 à 10:54
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é
0
mikmak78 Messages postés 59 Date d'inscription vendredi 5 octobre 2012 Statut Membre Dernière intervention 6 mars 2017
18 juin 2015 à 15:50
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
0
Rejoignez-nous