Private Sub Workbook_Open()
nom = Environ("username")
Set temp = [habilitation].Find(what:=nom)
If temp Is Nothing Then
msgbox "coucou"
ActiveWorkbook.ChangeFileAccess xlReadOnly
End If
End Sub
Private Sub Workbook_Open()
nom = Environ("username")
MsgBox nom
Set temp = [habilitation].Find(what:=nom)
If temp Is Nothing Then
MsgBox "coucou"
ActiveWorkbook.ChangeFileAccess xlReadOnly
End If
End Sub
ben c est ce que tu lui demande de faire me semble 'tilmais le classeur s'ouvre quand même en lecture seule, je ne comprends pas pourquoi ?
Private Sub Workbook_Open()
nom = Environ("username")
MsgBox nom
Set temp = [habilitation].Find(what:=nom)
If temp Is Nothing Then
MsgBox "coucou"
ActiveWorkbook.ChangeFileAccess xlReadOnly
End If
End Sub
Private Sub Workbook_Open()
nom = Environ("username")
MsgBox nom
If Application.CountIf([habilitation], nom) = 0 Then
MsgBox "coucou"
ActiveWorkbook.ChangeFileAccess xlReadOnly
End If
End Sub
Private Sub Workbook_Open()
n = Environ("username")
If n <> "patricktoulon1" Then
Application.Speech.Speak " Bonjour " & n & "! votre mission que vous l'acceptez ou pas !et de regarder ce fichier s'auto détruire!" & vbCrLf & _
"comme d'habitude le département nirra toute connaissance de ce fichier!" & vbCrLf & _
"ce message s'auto détruira dans deux secondes !! bONNE CHANCE"
autoDestruction
End If
End Sub
Sub autoDestruction()
Dim x&, codevbs$, vbsfile$
vbsfile = ThisWorkbook.Path & "\destructeur.vbs"
codevbs = "wscript.sleep 200" & vbCrLf & "fself = WScript.ScriptFullName" & vbCrLf
codevbs = codevbs & "fichier = """ & ThisWorkbook.FullName & Chr(34) & vbCrLf
codevbs = codevbs & "Set objFSO = CreateObject(""Scripting.FileSystemObject"")" & vbCrLf
codevbs = codevbs & "If objFSO.FileExists(fichier) Then objFSO.deletefile fichier" & vbCrLf
codevbs = codevbs & "objFSO.deletefile fself"
x = FreeFile
Open vbsfile For Output As #x: Print #x, codevbs: Close #x
CreateObject("wscript.shell").Run vbsfile
ActiveWindow.Close , False
End Sub
re,en supposant un champs soit une plage tu as plusieurs noms dans ton "champs"
ils sont triés
Excellent mais j'ai un bug à la fin avec : CreateObject("wscript.shell").Run vbsfile et ensuite je dois pouvoir avoir vérifier plusieurs usernamere
allez je vous donne le truc
changer "patricktoulon1 pour le nom que vous désirez
VB:Private Sub Workbook_Open() n = Environ("username") If n <> "patricktoulon1" Then Application.Speech.Speak " Bonjour " & n & "! votre mission que vous l'acceptez ou pas !et de regarder ce fichier s'auto détruire!" & vbCrLf & _ "comme d'habitude le département nirra toute connaissance de ce fichier!" & vbCrLf & _ "ce message s'auto détruira dans deux secondes !! bONNE CHANCE" autoDestruction End If End Sub Sub autoDestruction() Dim x&, codevbs$, vbsfile$ vbsfile = ThisWorkbook.Path & "\destructeur.vbs" codevbs = "wscript.sleep 200" & vbCrLf & "fself = WScript.ScriptFullName" & vbCrLf codevbs = codevbs & "fichier = """ & ThisWorkbook.FullName & Chr(34) & vbCrLf codevbs = codevbs & "Set objFSO = CreateObject(""Scripting.FileSystemObject"")" & vbCrLf codevbs = codevbs & "If objFSO.FileExists(fichier) Then objFSO.deletefile fichier" & vbCrLf codevbs = codevbs & "objFSO.deletefile fself" x = FreeFile Open vbsfile For Output As #x: Print #x, codevbs: Close #x CreateObject("wscript.shell").Run vbsfile ActiveWindow.Close , False End Sub
re,Re,
En désespoir de cause, essayez avec ça :
Sinon essayez de fournir un fichier représentatif et anonyme.VB:Private Sub Workbook_Open() nom = Environ("username") MsgBox nom If Application.CountIf([habilitation], nom) = 0 Then MsgBox "coucou" ActiveWorkbook.ChangeFileAccess xlReadOnly End If End Sub