Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Excel partagé et fonction VBA ?

3 réponses
Avatar
mennetrier
Bonjour,

Sous excel 2003, pour r=E9duire la taille d'un classeur partag=E9 sur le
r=E9seau, j'ai cr=E9e des fonctions VBA =E0 la place de formules longues
r=E9p=E9t=E9es des milliers de fois. Exemple :

=3DDocAbb(C522) =E0 la place de =3DIF(C522=3D"";"";VLOOKUP(C522;lists!$N$3:=
$Q
$1182;2;0))

Avec la fonction:
Function DocAbb(CellRef)
If CellRef.Value =3D "" Then
DocAbb =3D ""
Else
DocAbb =3D Application.VLookup(CellRef.Value, Range("lists!
N3:R55"), 2, 0)
End If
End Function

Cela fonctionne nickel sur mon poste et en multipliant cela sur une
15zaine de colonnes, j'arrive =E0 r=E9duire le fichier de 8Mb =E0 1,4Mb !
Mais voil=E0, une fois le fichier sur le r=E9seau en mode partag=E9, cela
fonctionne pour l'utilisateur 1, mais cela ne fonctionne pas pour
l'utilisateur 2 qui a dans les cellules avec l'appel =E0 mes fonctions
une erreur NAME?
Si l'utilisateur 2 re-ouvre le fichier, il a m=EAme une erreur VBA avec
le pop-up "Automation error" et une boucle infinie qui se cr=E9e car
impossible de fermer VBA editor ou excel. Le pop-up revient sans arr=EAt
et il faut tuer excel par la mani=E8re forte !

Je ne sais vraiment pas comment investiguer ce probl=E8me. Les id=E9es
sont donc bienvenues et les t=E9moignages de fichiers partag=E9es avec du
VBA seraient bienvenus aussi pour =EAtre s=FBr de la faisabilit=E9.

Merci par avance.
Cordialement,
Samuel

3 réponses

Avatar
FabriceR
Bonjour,

C'est juste une hypothese mais la macro n'est peut etre tout simplement pas
enregistrée dans le classeur concernée.



a écrit dans le message de news:

Bonjour,

Sous excel 2003, pour réduire la taille d'un classeur partagé sur le
réseau, j'ai crée des fonctions VBA à la place de formules longues
répétées des milliers de fois. Exemple :

=DocAbb(C522) à la place de =IF(C522="";"";VLOOKUP(C522;lists!$N$3:$Q
$1182;2;0))

Avec la fonction:
Function DocAbb(CellRef)
If CellRef.Value = "" Then
DocAbb = ""
Else
DocAbb = Application.VLookup(CellRef.Value, Range("lists!
N3:R55"), 2, 0)
End If
End Function

Cela fonctionne nickel sur mon poste et en multipliant cela sur une
15zaine de colonnes, j'arrive à réduire le fichier de 8Mb à 1,4Mb !
Mais voilà, une fois le fichier sur le réseau en mode partagé, cela
fonctionne pour l'utilisateur 1, mais cela ne fonctionne pas pour
l'utilisateur 2 qui a dans les cellules avec l'appel à mes fonctions
une erreur NAME?
Si l'utilisateur 2 re-ouvre le fichier, il a même une erreur VBA avec
le pop-up "Automation error" et une boucle infinie qui se crée car
impossible de fermer VBA editor ou excel. Le pop-up revient sans arrêt
et il faut tuer excel par la manière forte !

Je ne sais vraiment pas comment investiguer ce problème. Les idées
sont donc bienvenues et les témoignages de fichiers partagées avec du
VBA seraient bienvenus aussi pour être sûr de la faisabilité.

Merci par avance.
Cordialement,
Samuel
Avatar
SamyTerje
Merci Fabrice, mais elles sont bien dans le même classeur !
D'ailleurs, j'ai trouvé cette explication ( http://dj.joss.free.fr/reso.h tm
) très compliquée de Laurent Longre. Je m'en vais essayer même si cel a
me parait bien compliqué !

Je vous tiens au courant.
Samuel

Bonjour,

C'est juste une hypothese mais la macro n'est peut etre tout simplement p as
enregistrée dans le classeur concernée.



Avatar
SamyTerje
Avec l'explication de Laurent Longre, cela fonctionne et mon classeur
partagé connait maintenant mes fonctions VBA pour tous les
utilisateurs !
Merci Laurent encore une fois mais il faut ajouter quand même à la FAQ
que cela marche qu'avec la sécurité des macros à Medium. Au dessus,
cela ne fonctionne pas.

Malheureusement, je suis maintenant sur une autre erreur... Grrrr !
Certaines de mes fonctions me renvoient un code #VALUE! mais pas
toutes alors qu'elles sont très semblables. Le plus rageant, c'est
qu'un simple clique dans la cellule et ENTER valide la fonction et le
résultat est calculé !!! Je suis sûr que vous avez une solution, non ?

Merci d'avance.
Cordialement,
Samuel


On Aug 7, 1:02 pm, SamyTerje wrote:
Merci Fabrice, mais elles sont bien dans le même classeur !
D'ailleurs, j'ai trouvé cette explication (http://dj.joss.free.fr/reso. htm
) très compliquée de Laurent Longre. Je m'en vais essayer même si c ela
me parait bien compliqué !

Je vous tiens au courant.
Samuel