instructions VBA ne fonctionnant pas en mode partagé

Philippe

XLDnaute Occasionnel
Bonjour le forum,

Je suis toujours sur mon appli de gestion partagée d’agendas en réseau…
Je rencontre deux problèmes de taille :

Pour permettre l’utilisation simultanée à plusieurs j’ai donc activé « partager le classeur », puis « permettre une modif. Multiutilisateurs »
Les feuilles du classeur sont protégées afin d’éviter des manipulations indésirables en dehors des zones autorisées.
Dans cette configuration :

Pour écrire dans des zones « non autorisées » que j’utilise pour stocker des variables, en VBA, j’utilisais :
Worksheet..Unprotect
‘ Ecriture des données
Worksheet..Protect

Et cela génère un message d’erreur…. (qui ne se produit plus si on décoche l’option « multiutilisateurs »)

Même problème pour la sélection de formes automatiques que j’utilise pour indiquer dans quel agenda on se trouve et le nom du patient à qui on est en train de donner un RDV..

Worksheet. .Shapes("AutoShape 17").Select
Selection.Characters.Text = Label8

Ne marche pas non plus en mode “multiutilisateur”

Y a-t-il un moyen de contourner ces difficultés ???

Merci d’avance pour votre aide car le passage de ma version monoposte qui marche parfaitement à une version réseau commence à me miner le moral… (lol)

A+
Philippe
 

Staple1600

XLDnaute Barbatruc
Re : instructions VBA ne fonctionnant pas en mode partagé

Bonjour

Peut etre des infos à glaner ici

Ce lien n'existe plus


A tester
source: Daily Dose of Excel » Workbook Object

'unshare
Application.DisplayAlerts = False
ThisWorkbook.ExclusiveAccess
Application.DisplayAlerts = True

'Do stuff here

're-share
Application.DisplayAlerts = False
ThisWorkbook.SaveAs , , , , , , xlShared
Application.DisplayAlerts = True
 
Dernière édition:

Philippe

XLDnaute Occasionnel
Re : instructions VBA ne fonctionnant pas en mode partagé

Bonjour Staple, et une fois encore merci de te pencher sur mes problèmes de réseau

donc si je comprends bien, une fois le classeur chargé du serveur je le met en accès exclusif, ce qui devrait réactiver la sélection d'objets et le deprotection-protection de la feuille. Quand j'ai terminé mes modifs je sauvegarde en mode partagé (xlshared)..

Cas d'école:

Je charge, je modifie A1 sur la feuille 1, un autre utilisateur modifie B1 sur la feuille 1, si il sauvegarde après moi il y aura sur le serveur l'ancienne valeur de A1 ? ou bien si je coche "mettre à jour les mofifs à chaque enregistrement" dans les options avancées du partage du classeur, le version qu'il va sauvegarder après moi aura les modifs en A1 (donc la mienne)et en B1 (la sienne)?

J'espère ne pas être trop confus...

A+
Phlippe
 

Staple1600

XLDnaute Barbatruc
Re : instructions VBA ne fonctionnant pas en mode partagé

Re

N'ayant de PC en reseau

La seul aide que je peux t'apporter

C'est d'utiliser un moteur de recherche

edit: qui parfois me renvoie sur XLD :)
Lien supprimé

avec ces mots-clés:

vba excel "shared workbook"

vba excel "classeur partagé" réseau

"ThisWorkbook.ExclusiveAccess" filetype:xls

"ThisWorkbook.ExclusiveAccess" filetype:xla

"ThisWorkbook.ExclusiveAccess" filetype:txt
Et quand je trouve des infos que je pense suceptibel de t'aider

je les poste ici en espérant que cela puisse t'aider.

exemple immédiat: aie il faut etre germanophone (enfin ca reste compréhensible)
Code:
Private Sub Workbook_open() 
 
Dim strWbName As String 
 
On Error Resume Next 
Application.ScreenUpdating = False 
Application.Calculation = xlCalculationManual 
'---------------MultiUser---------------- 
'stellt die Arbeitsmappe im Freigabemodus ein 
If Not ThisWorkbook.MultiUserEditing = True Then 
Application.DisplayAlerts = False 
With ThisWorkbook 
If .KeepChangeHistory Then .KeepChangeHistory = False If .ConflictResolution Then .ConflictResolution = xlLocalSessionChanges 'Ànderungen des lokalen Benutzers werden immer akzeptiert 
If .PersonalViewListSettings Then .PersonalViewListSettings = False 'Persönliche Filtereinstellungen werden gelöscht 
If .PersonalViewPrintSettings Then .PersonalViewPrintSettings = False 'Persönliche Druckeinstellungen werden gelöscht 
If .HighlightChangesOnScreen Then HighlightChangesOnScreen = False 'Aenderungen werden am Bildschirm nicht hervorgehoben 
If .ListChangesOnNewSheet Then .ListChangesOnNewSheet = False 'Aenderungen werden nicht in einem sep. Blatt dokumentiert 
If .AutoUpdateFrequency Then .AutoUpdateFrequency = 0 
End With 
ThisWorkbook.SaveAs Filename:=ActiveWorkbook.FullName, _ 
accessMode:=xlShared 
Application.DisplayAlerts = True 
End If 
'---------------MultiUser---------------- 
'Zurückstellen ScreenUpdating und Calculation usw. 
 
End Sub 
 
 
'Einstellungen vor dem Schliessen der Arbeitsmappe 
 
Private Sub Workbook_BeforeClose(Cancel As Boolean) 
 
Dim varUsers As Variant 
 
On Error Resume Next 
Application.ScreenUpdating = False 
Application.Calculation = xlCalculationManual 
'---------------MultiUser---------------- 
'Der letzte Anwender stellt die Arbeitsmappe wieder in den ExcluseModus ein, 
'd.h. die Freigabe ist beendet (minimiert den Speicherplatz) 
If ThisWorkbook.MultiUserEditing = True Then 
varUsers = ThisWorkbook.UserStatus 
If IsNumeric(UBound(varUsers, 1)) = True Then 
If Not UBound(varUsers, 1) > 1 Then 
Application.DisplayAlerts = False 
ThisWorkbook.ExclusiveAccess 
ThisWorkbook.SaveAs Filename:=ThisWorkbook.FullName, _ 
accessMode:=xlExclusive 
End If 
End If 
End If 
'---------------MultiUser----------------
 
Dernière édition:

Statistiques des forums

Discussions
311 721
Messages
2 081 927
Membres
101 842
dernier inscrit
seb0390