Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 01/07/2009, 13h00   #1
Invité de passage
 
Inscription : juillet 2009
Messages : 2
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 2
Points : 1
Points : 1
Par défaut Problème macro en mode partagé - Labels

Bonjour, je suis débutant, le problème n'est donc certainement pas très complexe

J'ai 4 label remplis par des macros effectuant automatiquement des calculs simples lorsque certaines cellules sont modifiées.

La macro s'execute parfaitement si le fichier n'est pas partagé, mais s'il l'est, j'obtiens le message d'erreur suivant:

Citation:
La méthode 'Select de l'objet 'Shape' a échoué
Le code bloquant à cette ligne:

Code :
1
2
ActiveSheet.Shapes("Label 8").Select
Selection.Characters.Text = "Fixed: " & m
Le seul moyen que j'ai pu trouver c'est de "unshare" le fichier avant cette partie du code, puis de le share à nouveau à la fin de la macro.

avec
Code :
ActiveWorkbook.ExclusiveAccess
et
Code :
1
2
ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.FullName, _
accessMode:=xlShared
À présent tout fonctionne normalement, mais il y a maintenant un temps de latence très pénible, correspondant au passage share/unshare.

Il faut absolument que cette macro puisse s'executer rapidement. (elle s'execute souvent)

Any idea?

(désolé si je ne suis pas clair)

Dernière modification par AlainTech ; 05/07/2009 à 07h28. Motif: Balises
paki888 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2009, 13h55   #2
Membre confirmé
 
Inscription : octobre 2007
Messages : 232
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 232
Points : 235
Points : 235
Bonjour,

cela dépend si c'est un label issu des Contrôles de Formulaires, ou des Contrôles ActiveX..

Si c'est Formulaires, essaie ainsi : (je le pense, comme il y a un espace entre Label et 8....)

Code :
ActiveSheet.Shapes("Label 8").OLEFormat.Object.Caption = "Fixed: " & m
Si c'est ActiveX :

Code :
ActiveSheet.Shapes("Label8").DrawingObject.Object.Caption = "Fixed: " & m
je n'ai pas essayé en mode partagé....

Mais peut-être?

Quoique, d'après l'aide Excel (Fonctionnalités non disponibles sur Classeur Partagé), ils disent ceci (entre autres) :

Opérations impossibles : Insérer ou modifier des images ou d’autres objets

Opérations possibles : Vous pouvez afficher des images et des objets existants.

Donc, il vaudrait peut-être mieux passer par une cellule...
mapeh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2009, 14h34   #3
Invité de passage
 
Inscription : juillet 2009
Messages : 2
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 2
Points : 1
Points : 1
Ca fonctionne parfaitement !!!!!
Merci infiniment

(c'etait un "Contrôle de Formulaires")
paki888 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 14h22.


 
 
 
 
Partenaires

Hébergement Web