Actualité informatique
Test comparatif matériel informatique
Jeux vidéo
Astuces informatique
Vidéo
Télécharger
Services en ligne
Forum informatique
01Business



|||-  

Fichier partager / fichier exclusif excel VBA

 

Ajouter une réponse
 

 
Page photos
 
     
Vider la liste des messages à citer
 
 Page :
1
Auteur
 Sujet :

Fichier partager / fichier exclusif excel VBA

Prévenir les modérateurs en cas d'abus 
STFj
stfj
Bébé forumeur (De 10 à 49 messages postés)
  1. Posté le 23/01/2012 à 11:11:49  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
Bonjour à tous,
 Ce matin, je suis confronté à un nouveau problème sur mon fichier excel qui est partager...

 Situation : Le fichier est partager sur le réseau, et utilise des macros VBA... En règle général général, il est impossible d'exécuter certaine macros sur un classeur partager. Or j'ai troucver une astuce un peu barbare pour executer quand même ces macro : Au lancement de la macro, je rend le fichier partager en mode exclusif, et a la fin de la macro je le remet en mode partager => Voici le code qui le permet :

 ''''''''''''''''''''''''''''''​'''''''''''''''''''Procédure pour rendre
 If ActiveWorkbook.MultiUserEditin​g Then
 Application.DisplayAlerts = False ' Pas de message d'erreur
 ActiveWorkbook.ExclusiveAccess ' Accès exclusif activé !
 Application.DisplayAlerts = False
 End If
 ''''''''''''''''''''''''''''''​'''''''''''''''''''exclusif le classeur
 Ma Macro
 ''''''''''''''''''''''''''''''​'''''''''''''''''''''''''Procé​dure pour
 If Not ActiveWorkbook.MultiUserEditin​g Then
 Application.DisplayAlerts = False
 ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.FullN​ame, accessMode:=xlShared
 Application.DisplayAlerts = False
 End If
 ''''''''''''''''''''''''''''''​''''''''''''''''''''''''Partag​er le classeur

 Problème rencontrer : Le fait de rendre exclusif le classeur, déconnecte tout les utilisateurs du fichiers sans le fermé (en gros il ne se doute même pas que le fichier n'est plus partager), et lorsque la macro réactive le mode partage, tout les utilisateurs qui n'ont pas lancé la macro se retrouve sur un "fichier bis" et perde les modifs si ils enregistre pas sur un nouveau nom.(chose que je veut éviter)

 Ainsi , je me demande si il est possible avant de rendre exclusif le classeur, de récupérer le nom des utilisateur connecté au fichier, le stocké sous forme de liste par exemple, pour que lorsque la macro réactive le mode partager, je charge le nom des utilisateurs qui était connectés auparavant...

 Est ce que quelqu'un voit un solution a se problème ou faut il que j'annule le partage du fichier sur le réseau = chose primordiale dans ce cas ???

 Merci par avance pour votre aide...
 CDT


stfj
Bébé forumeur (De 10 à 49 messages postés)
  1. Posté le 23/01/2012 à 14:24:14  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
=> Problème résolu : Notament grace a ceci http://www.vbfrance.com/c.aspx [...] JwYXJ0YWdl

 Petite erreur de frappe dans le code ici :

 Sub Startup()
 'Paul, mpep
 Dim ShowUsers
 Set ShowUsers = Application.CommandBars("Stand​ard" ).Controls.Add(Type:=msoCo​ntrolButton, ID:\=2040, ,Before:=13) ' Il fautsupprimé le "\"
 ShowUsers.Execute
 Application.CommandBars("Stand​ard" ).Controls(13).Delete

 End Sub


(Publicité)
jasol
  1. Posté le 14/02/2012 à 14:08:07  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
Bonjour, je m'excuse de vous déranger mais je suis tombé sur votre message en cherchant une réponse à mon problème. En effet, pour le boulot, j'ai mis au point un fichier avec une macro vba. Cette dernière fonctionne de cette facon : une fois que les utilisateurs ont renseignés les cases voulues, ils enregistrent les modifs, cette enregistrement génère le verrouillage des cellules renseignées pour éviter des erreurs non désirées. Mon souci est que la macro fonctionne correctement, dès lors que je partage le fichier, la macro ne fonctionne plus, j'ai essayer plusieurs méthodes mais en vain, j'ai également essayé la votre mais cela ne fonctionne pas non plus, voici ma macro :

 Sub WsLock(Optional Y)

Dim PWd$

PWd = "regnrdp-3"

Application.ScreenUpdating = False

If IsMissing(Y) Then

For i = 1 To Worksheets.Count

Worksheets(i).Protect PWd

[A1].Select

Next

Else

For i = 1 To Worksheets.Count

Worksheets(i).Unprotect PWd

[A1].Select

Next

End If
 End Sub
 Sub protege()

WsLock
 End Sub

 Sub DeverouillerCellulesVides()

'Commence par tout vérouiller

With Sheets("Sem1" )

.Unprotect "regnrdp-3"

With Intersect(.UsedRange, .Range("A1:J3000" ))

.Cells.Locked = True

'On Error Resume Next

.SpecialCells(xlCellTypeBlanks​).Locked = False

End With

For Each c In Sheets("Sem1" ).Range("A1:J3000​" )

If c <> "" Then

If c.MergeCells Then

c.MergeArea.Locked = True

End If

If IsEmpty(Range("A1" ).MergeArea) Then

Range("Sem1!A1" ).MergeArea.Loc​ked = False

End If

End If

Next

.Protect "regnrdp-3"

End With

With Sheets("Sem2" )

.Unprotect "regnrdp-3"

With Intersect(.UsedRange, .Range("A1:J3000" ))

.Cells.Locked = True

'On Error Resume Next

.SpecialCells(xlCellTypeBlanks​).Locked = False

End With

For Each c In Sheets("Sem2" ).Range("A1:J3000​" )

If c <> "" Then

If c.MergeCells Then

c.MergeArea.Locked = True

End If

If IsEmpty(Range("A1" ).MergeArea) Then

Range("Sem2!A1" ).MergeArea.Loc​ked = False

End If

End If

Next

.Protect "regnrdp-3"

End With

With Sheets("Sem3" )

.Unprotect "regnrdp-3"

With Intersect(.UsedRange, .Range("A1:J3000" ))

.Cells.Locked = True

'On Error Resume Next

.SpecialCells(xlCellTypeBlanks​).Locked = False

End With

For Each c In Sheets("Sem3" ).Range("A1:J3000​" )

If c <> "" Then

If c.MergeCells Then

c.MergeArea.Locked = True

End If

If IsEmpty(Range("A1" ).MergeArea) Then

Range("Sem3!A1" ).MergeArea.Loc​ked = False

End If

End If

Next

.Protect "regnrdp-3"

End With

With Sheets("Sem4" )

.Unprotect "regnrdp-3"

With Intersect(.UsedRange, .Range("A1:J3000" ))

.Cells.Locked = True

'On Error Resume Next

.SpecialCells(xlCellTypeBlanks​).Locked = False

End With

For Each c In Sheets("Sem4" ).Range("A1:J3000​" )

If c <> "" Then

If c.MergeCells Then

c.MergeArea.Locked = True

End If

If IsEmpty(Range("A1" ).MergeArea) Then

Range("Sem4!A1" ).MergeArea.Loc​ked = False

End If

End If

Next

.Protect "regnrdp-3"

End With


 End Sub

 Pouvez vous m'aider je vous prie?

 Page :
1

Aller à :
 

Sujets relatifs
[CODE] Recherche de macro a nom variable excel vba fichier dll commune shell de windows
integrer un fichier d'aide sous eclips Fusion de fichier DWG avec Adobe Acrobat 9 Pro
renommer un fichier Feuille Excel / SQL Server 2008 Express
Plus de sujets relatifs à : Fichier partager / fichier exclusif excel VBA