Partager un classeur .xlsm sous excel 2007
Joss0109
Messages postés
143
Statut
Membre
-
Joss0109 Messages postés 143 Statut Membre -
Joss0109 Messages postés 143 Statut Membre -
Bonjour à tous,
J'ai créé un classeur excel 2007 avec plusieurs macros.
Ce classeur ce compose principalement de deux feuilles :
- Une consacrée au Menu (avec plusieurs boutons d'action)
- La deuxième sert a stocker toutes les données dans un tableau avec une mise en page conditionnelle
Les boutons d'actions de la 1ere me servent à manipuler le tableau se trouvant sur la deuxième feuille (masquer/afficher des colonnes avec "MDP"... modifier la mise en page du tableau... etc...)
J'ai aujourd'hui 8 personnes sur le réseau susceptibles d'utiliser cette application et de l'alimenter.
-Quand je veux le partager, je rencontre deux problèmes :
- Désactivation des macros !
- il me demande de faire sauter la mise en forme conditionnelle sur mon tableau et de mettre une mise en page "classique" (ce qui massacre mon tableau....)
Si quelqu'un à une solution, ça serait bien !
PS : en vba je suis preneur !!!
Merci a vous
Joss
J'ai créé un classeur excel 2007 avec plusieurs macros.
Ce classeur ce compose principalement de deux feuilles :
- Une consacrée au Menu (avec plusieurs boutons d'action)
- La deuxième sert a stocker toutes les données dans un tableau avec une mise en page conditionnelle
Les boutons d'actions de la 1ere me servent à manipuler le tableau se trouvant sur la deuxième feuille (masquer/afficher des colonnes avec "MDP"... modifier la mise en page du tableau... etc...)
J'ai aujourd'hui 8 personnes sur le réseau susceptibles d'utiliser cette application et de l'alimenter.
-Quand je veux le partager, je rencontre deux problèmes :
- Désactivation des macros !
- il me demande de faire sauter la mise en forme conditionnelle sur mon tableau et de mettre une mise en page "classique" (ce qui massacre mon tableau....)
Si quelqu'un à une solution, ça serait bien !
PS : en vba je suis preneur !!!
Merci a vous
Joss
5 réponses
-
Bonjour,
D'abord, le fait de partager le classeur ne désactive pas les macros mais empêche seulement leur modification.
Ensuite, une solution est de ne pas partager le classeur en :
1- le mettant en lecture seule recommandée,
2- gérant une file d'attente d'écriture dès qu'il est demandé de l'alimenter. -
Bonjour,
idem pour les MFC, elles ne sont pas incompatibles mais :
Ajout ou modification de mises en forme conditionnelles
Les mises en forme conditionnelles existantes continuent à apparaître lorsque les valeurs des cellules changent, mais vous ne pouvez pas modifier ces mises en forme ni redéfinir les conditions.
eric
-
Bonjour Messieurs et merci de vos réponses !
Si je ne partage pas le classeur, comment puis-je avoir un fichier qui puisse être alimenté par plusieurs personnes en même temps ? sinon à quoi bon… je ne comprends pas…
Comment gérer la file d’attente ?
D’autre part, voici le message qu’excel me permets quand je souhaite partager, peut-être que ca vous parlera :
« Impossible de partager ce classeur car il contient des tableaux excel ou des nappages XML. Pour partager ce classeur, convertissez les tableaux en plages et supprimez les nappages XML… »
… et il m’indique la procédure pour convertir, et il me fait sauter mes mises en page conditionnelles et je me retrouve avec des tableaux merdiques…
Voilà !
Peut-être avez-vous d’autres éléments de réponse, ça serait sympas !!!
Merci à vous les gars !
Joss -
bonjour,
ci-dessous exemple de code pour gérer une file d'attente de 5 secondes en écriture pour un classeur non partagé
Private Sub Workbook_Open()
Application.DisplayAlerts = False
If ThisWorkbook.ReadOnly Then
réponse = MsgBox("Voulez-vous modifier ce fichier ?", vbYesNo + vbDefaultButton2)
If réponse = vbYes Then
Nom_fichier = ThisWorkbook.Path & "\" & ThisWorkbook.Name
'..... contrôle libre accès classeur pour modification sinon attente 5 secondes .......................................
Do While IsWorkBookOpenForWrite(Nom_fichier)
date_fin = DateAdd("s", 5, Now)
Application.Wait date_fin
Loop
'..... lancement nouvelle instance Excel avec ouverture fichier pour modification ....................................
Set xl = New Application
xl.Visible = True
xl.Workbooks.Open fileName:=Nom_fichier, IgnoreReadOnlyRecommended:=True
'..... fermeture instance Excel avec ouverture fichier en lecture seule ....................................
Application.Quit
End If
End If
End Sub
Function IsWorkBookOpenforwrite(ByVal Nom_fichier As String) As Boolean
Dim no_fichier As Long
On Error Resume Next
no_fichier = FreeFile()
Open Nom_fichier For Binary Access Read Lock Read Write As #no_fichier
If Err.Number = 0 Then IsWorkBookOpenforwrite = False _
Else IsWorkBookOpenforwrite = True
Close no_fichier
End Function -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Merci à toi c'est sympas, je test ca et te tiens au courant !
Bonne soirée