Partager un classeur .xlsm sous excel 2007

Fermé
Joss0109 Messages postés 137 Date d'inscription dimanche 17 août 2008 Statut Membre Dernière intervention 26 septembre 2016 - 22 sept. 2016 à 17:40
Joss0109 Messages postés 137 Date d'inscription dimanche 17 août 2008 Statut Membre Dernière intervention 26 septembre 2016 - 26 sept. 2016 à 16:46
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
A voir également:

5 réponses

thev Messages postés 1962 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 18 février 2025 705
22 sept. 2016 à 21:48
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.
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 255
23 sept. 2016 à 01:02
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
0
Joss0109 Messages postés 137 Date d'inscription dimanche 17 août 2008 Statut Membre Dernière intervention 26 septembre 2016 53
26 sept. 2016 à 10:27
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
0
thev Messages postés 1962 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 18 février 2025 705
Modifié par thev le 26/09/2016 à 15:27
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


0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Joss0109 Messages postés 137 Date d'inscription dimanche 17 août 2008 Statut Membre Dernière intervention 26 septembre 2016 53
26 sept. 2016 à 16:46
Merci à toi c'est sympas, je test ca et te tiens au courant !

Bonne soirée
0