Acceder a une bibliotheque de fonctions dans un fichier xla ??

Acceder a une bibliotheque de fonctions dans un fichier xla ?? - VB/VBA/VBS - Programmation

Marsh Posté le 24-08-2006 à 11:03:03    

Bonjour,
 
J'ai un fichier module.xla qui contient une bibliotheque de fonctions et macros dont j'aimerai me servire.
Comment faire pour pouvoir y acceder depuis un autre classeur dans un autre repertoire du type monclasseur.xls ?
 
merci d'avance !  :hello:

Reply

Marsh Posté le 24-08-2006 à 11:03:03   

Reply

Marsh Posté le 24-08-2006 à 14:53:06    

bonjour,
rechercher un dossier nommé Macros Complémentaire
( en principe  dans ..\Application Date\Microsoft)
Metre ce fichier "blabla.xla" dans ce répertoire
Dans Excel : Outils / Macros complémentaires Cocher le fichier en question.
 
(Selon le cas le titre à cocher peut-être un peu différent du nom du fichier installé précédemment, mais en général un petit commentaire dans la boite de dialogue permet de vérifier qu'il s'agit de la bonne coche)
 
Les fonctions sont alors disponibles.
A+

Reply

Marsh Posté le 24-08-2006 à 17:33:33    

super merci ca marche !
 
j'aurai une autre question en faite maintenant !
 
J'aimerai éviter une erreur
en gros, j'ai une fonction
 
mafonction()
qui suivant les parametres en entrée me renvoie soit un entier soit fait bugguer le programme, est ce qu'il n'est pas possible lorsqu'ils ya une erreur de forcer le programme a continuer a s'éxécuter.
avec par exemple une condition
iferror(mafonction(entree) ) then cells(1,1)="attention il y a eu une erreur"
 
c'est possible ca ?
 

Reply

Marsh Posté le 24-08-2006 à 18:13:17    

oui !

Reply

Marsh Posté le 24-08-2006 à 18:19:31    

lol euh merci pour la réponse !
mais t'aurais pas plus de précisions ?
comme un exemple ou un truc dans le genre ?

Reply

Marsh Posté le 24-08-2006 à 19:13:16    

ben, euh merci pour la question...
mais t'aurais pas plus de précisions ?  
comme le code de ta fonction qui buggue enfin ce genre de détail quoi...
parce que sinon des ligne de code qui buggue ntou pas j'en ai des dizaines de milliers à toutes les sauces !
A+

Reply

Marsh Posté le 25-08-2006 à 09:20:10    

ah okay lol, mais en fait j'y ai pas access a cette fonction qui bug.
En fait j'ai un objet personne par exemple, et dedan des fois je peux faire un getAdresse(idPersonne), mais si la personne n'a pas été rentrée avec une adresse, alors elle n'a meme pas de proprieté adresse.
voila l'erreur
 
--------------------------------------------------------------------
Automation error (Error 440)
   
 
When you access Automation objects, specific types of errors can occur. This error has the following cause and solution:  
 
An error occurred while executing a method or getting or setting a property of an object variable. The error was reported by the application that created the object.  
Check the properties of the Err object to determine the source and nature of the error. Also try using the On Error Resume Next statement immediately before the accessing statement, and then check for errors immediately following the accessing statement.  
--------------------------------------------------------------------

Reply

Marsh Posté le 25-08-2006 à 10:02:27    

j'ai essayé:
try
 
catch
 
finally
 
mais ca ne passe pas en VBA vraimsemblablement

Reply

Marsh Posté le 25-08-2006 à 11:59:41    

bonjour,
faudra adapter à partir de cet exemple :

Code :
  1. Sub test()
  2. On Error GoTo GESTERR
  3. 'Instruction qui risque de provoquer une erreur....
  4. Dim i As Integer
  5. i = "blabla"
  6. MsgBox "Reprise"
  7. '.... Longue suite d'instruction
  8. Exit Sub
  9. GESTERR:
  10. Select Case Err
  11. Case 440: MsgBox "Erreur Automation"
  12. Resume Next
  13. Case Else: MsgBox "Erreur " & Err & " : " & Error
  14. End Select
  15. End Sub


 
Nota : Dans cet exemple il n'y a pas de MsgBox reprise car le Case Else provoque un débranchement.
si à la place du :
Dim i As Integer
i = "blabla"
tu mets une instruction qui provoque une erreur 440, Resume Next renverra à l'instruction suivante : MsgBox "Reprise"
A+

Reply

Marsh Posté le 25-08-2006 à 15:15:28    

nickel ! ca marche super merci ! ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed