[VBA] Fonction personnelle... savoir l'emplacement de la cellule où se trouve un appel de cette fonction

Le
HD
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichD
Le #26220482
Bonjour,

Peux-tu nous donner ta fonction personnelle?
isabelle
Le #26220552
bonjour,

MsgBox Cells.Find(What:="=Quantité(", After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, MatchCase:úlse).Address

isabelle

Le 2014-06-26 06:16, HD a écrit :
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
HD
Le #26220612
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
Le #26220732
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
'----------------------------------------
Publicité
Poster une réponse
Anonyme