Rapport de message :*
 

Re: Consigne aléatoire

Titre du sujet : Re: Consigne aléatoire
par Guy le 05/07/2010 13:00:31

Bonjour Wilplan,

Tout d'abord ma remarque sur la structure du code ne te visait nullement. Je l'ai voulue sous forme de mise en garde. L'enregistreur de macros est un bon ami, certes, mais un tant soit peu primitif comme codeur.

Ceci dit.

J’avais noté dans mon précédent message que l’erreur se produisait à l’exécution de
Selection.ClearContents
Si tu effaces les valeurs de la sélection en appuyant sur la touche Supprimer l’appel de la fonction de la cellule G3 provient de la cellule G3 alors que si tu utilises l’équivalent en code avec Selection.ClearContents l’appel provient du code VBA et dans ce cas Application.Caller porte l’erreur 2023 équivalent à #REF; ceci étant les propriétés .Height et .Width de Application.Caller provoquent une erreur 1004 puisqu’aucune largeur ou hauteur n’existe pour l’erreur 2023.

Pour contourner ce désagrément je n’ai rien trouvé de mieux que d’ajouter un cas particulier dans le gestionnaire d’erreurs.

Smileys_Erreur:
  Select Case Err.Number
 
    Case 0, 1004 ' Passe ou contourne l'erreur du Selection.ClearContents.
    Case -2147024809 ' Erreur de nom d'image
      MsgBox "Veillez à n'inclure que des noms d'images valides dans la formule de la cellule " & Application.Caller.Address(False, False), _
              vbCritical, "Nom d'image invalide!"
             
           
    Case Else ' Affiche l'erreur
      MsgBox "Erreur " & Err.Number & " (" & Err.Description & ") dans la procédure Smileys du Module modSmiley"

  End Select
 
Pas plus brillant qu'il faut mais ça marche. Somme toute je dois être un peu enregistreur de macros moi-même

Alors remplace le gestionnaire d'erreurs par celui fourni et dis-moi si la correction te convient.

En référence voir :

msdn.microsoft.com/en-us/library/bb220902%28office.12%29.aspx
www.cpearson.com/excel/sheetref.htm

Cordialement,

Guy