gratifiant > microsoft.* > microsoft.excel

HD (26/06/2014, 12h16)
Bonjour,

Je viens de créer des fonctions personnelles. Je fais appelles à ces
fonctions dans les cellules et celà fonctionne maintenant bien.

Par contre, en cas d'erreur de saisie d'un des arguments, je voudrais
pouvoir afficher l'emplacement de la cellule qui fait appel à la
fonction personnelle.

Exemple:
En cellule J542 j'ai une formule personnelle:
=Quantité(45;89)

Je voudrais pouvoir avoir l'info de l'emplacement de la cellule qui fait
appel à la fonction Quantité dans ma fonction donc colonne 10, ligne
542.

Comment faire ?

Cordialement,

HD
MichD (26/06/2014, 13h46)
Bonjour,

Peux-tu nous donner ta fonction personnelle?
isabelle (26/06/2014, 13h54)
bonjour,

MsgBox Cells.Find(What:="=Quantité(", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, MatchCase:=False).Address

isabelle

Le 2014-06-26 06:16, HD a écrit :
[..]
HD (26/06/2014, 14h41)
> Peux-tu nous donner ta fonction personnelle? Voici un exemple :

Function Quantité(t as double, s as double) as Double
dim ret as long

if t > 100 then
ret=MsgBox("Valeur t dépasse la valeur autorisée en cellule " &
mescoordonnéesdecellules & ".",VbExclamation,"")
else
mon_traitement
end if
End function

Je voudrais pouvoir faire afficher les coordonnées de la cellules où
l'on a tapé la formule =Quantité(121;3)
Ainsi, si une erreur a été faite sur la cellule R1230 l'utilisateur
saura qu'il lui faut modifier sa formule à cet endroit précis.

@+
HD
MichD (26/06/2014, 15h14)
Si dans ta fonction, tu ajoutes cette ligne de code en début de procédure
la variable X représente l'adresse de la cellule où la fonction est traitée.

Comment veux-tu afficher cette information dans ton fichier?

X = Application.Caller.Address

Tu pourrais adapter ta fonction comme ceci :

'----------------------------------------
Function Quantité(t As Double, s As Double) As Double
Dim GestionErreur As String
On Error GoTo GestionErreur
Dim ret As Long

X = Application.Caller.Address
If t > 100 Then
ret = MsgBox("Valeur t dépasse la valeur autorisée en cellule " & _
mescoordonnéesdecellules & ".", vbExclamation, "")
Else
Quantité = t * s 'ou autre code...
End If
Exit Function

GestionErreur:
MsgBox "Un problème avec la formule de cette cellule : " & X
End Function
'----------------------------------------
Discussions similaires