Utilisation de macros complémentaires

  • Initiateur de la discussion Initiateur de la discussion Natiffar
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Natiffar

XLDnaute Nouveau
Bonjour,

Après avoir fait un bon survol du net, je reste bloqué sur un code VB sous Excel.

J'ai créé une macro qui colore une ligne entière en fonction de la valeur de la première cellule de la ligne. Par ailleurs, selon la valeur de cette première cellule, je verrouille ou déverrouille d'autres cellules.
Tout fonctionne très bien, mais comme bien des utilisateurs, je me confronte à un problème dès que je souhaite mettre ce fichier en partage (avec l'option partage d'Excel).

J'ai tenté d'enregistrer ce code dans un fichier .xla puis de l'activer dans les macros complémentaires. Il se charge bien au démarrage d'Excel mais rien ne se passe lorsque je le teste, même pas un bug 🙂. Je pense que mon problème vient de la relation entre le code et le fichier sur lequel je souhaite l'appliquer. Mais je patauge...

Quelqu'un pourrait-il m'aider ?
Je me permets de poster également mon code pour vous donner une idée:
-----------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

Workbooks("K:\XXXX\XXXX.xls").Sheets("BBB").Unprotect "xxxxxxxx"

If Workbooks("K:\XXXX\XXXX.xls").Sheets("BBB").ActiveCell.Column = 1 Then

i = ActiveCell.Row
MaVariable = ActiveCell.Value


Select Case MaVariable
Case "Terminé"
Range(Cells(i, 2), Cells(i, 26)).Locked = True
Range(Cells(i, 1), Cells(i, 26)).Interior.ColorIndex = 43
Case "Refusé / Annulé"
Range(Cells(i, 2), Cells(i, 26)).Locked = False
Range(Cells(i, 1), Cells(i, 26)).Interior.ColorIndex = 3
Case "Commandé"
Range(Cells(i, 2), Cells(i, 26)).Locked = False
Range(Cells(i, 1), Cells(i, 26)).Interior.ColorIndex = 45
Case "En attente"
Range(Cells(i, 2), Cells(i, 26)).Locked = False
Range(Cells(i, 1), Cells(i, 26)).Interior.ColorIndex = 2
Case "Validé"
Range(Cells(i, 2), Cells(i, 26)).Locked = False
Range(Cells(i, 1), Cells(i, 26)).Interior.ColorIndex = 44
Case ""
Range(Cells(i, 2), Cells(i, 26)).Locked = False
Range(Cells(i, 1), Cells(i, 26)).Interior.ColorIndex = 2
End Select

Else

If Workbooks("K:\XXXX\XXXX.xls").Sheets("BBB").ActiveCell.Column > 1 Then
GoTo 2

End If
End If

2 Workbooks("K:\XXXX\XXXX.xls").Sheets("BBB").Protect "password"

End Sub
--------------------------------------------------

J'espère que quelqu'un pourra m'éclairer. Merci d'avance.

Natiffar
 
Re : Utilisation de macros complémentaires

Bonsoir Natiffar,

Pas sûr de ma réponse, mais il me semble qu'une macro complémentaire travaille sur le PC où est ouvert le fichier.

Dés lors qu'il est en partage, cela ne fonctionne plus, même si les utilisateurs ont installés ta macro.

Il serait, peut-être, plus judicieux de mettre le code directement dans le fichier. Encore que là, je ne suis pas sûr du fonctionnement en partage.

Je n'ai plus accés à cette possibilité (retraite) et ne peut donc pas la tester.

J'attends aussi d'autres intervenants sur le sujet.

Bonne soirée.

Jean-Pierre
 
Re : Utilisation de macros complémentaires

Merci pour vos réponses.

J'ai lu en fouillant sur le forum qu'il était possible de faire fonctionner des macros en mode partagé à condition de les placer dans un fichier .xla enregistré dans le même dossier que le fichier .xls. Il faut bien sûr installer la macro complémentaire dans le fichier .xls afin qu'elle soit chargée au démarrage.
Mais il faut faire quelques modifications sur le code pour qu'il intervienne bien sur le .xls concerné. C'est surtout sur cet aspect là que je coince.

Par ailleurs, Microsoft indique effectivfement qu'il n'est pas possible de déprotéger/protéger un classeur une fois le partage mis en place. Alors peut être est-il possible de contourner le problème. En fait, je protège mon classeur principalement pour que les utilisateurs ne modifient pas la mise en page, mais s'il existe une autre solution pour simplement bloquer des cellules, je suis partant. Peut-être en les rendant non sélectionnables,...

Jeanpierre, si tu souhaite faire des essais de partage c'est possible même si tu n'es pas en réseau. Il s'agit de l'option Partage de classeur d'Excel. Les bugs apparaissent dès que la fonction partage est enclenchée et que l'on tente de faire fonctionner le code.


Si vous avez d'autres idées, je suis preneur.

En attendant, encore merci.

Cordialement,

Natiffar
 
Re : Utilisation de macros complémentaires

Re,

Pour répondre à ceci : "possible de faire fonctionner des macros en mode partagé à condition de les placer dans un fichier .xla enregistré dans le même dossier que le fichier .xls"

Une Xla n'a pas besoin d'être dans le même dossier. Une Xla, une fois reconnue peut-être n'importe où. Sur le poste s'entend.

Ensuite et pour finir, en réseau et en partagé, peu de macros fonctionnent, que dire des Xla ?

Pas d'autres idées ce soir.

Je t'espère une réponse favorable, mais moi je n'en vois pas

Jean-Pierre
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
568
Retour