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

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

4 réponses
Avatar
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

4 réponses

Avatar
MichD
Bonjour,

Peux-tu nous donner ta fonction personnelle?
Avatar
isabelle
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
Avatar
HD
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
Avatar
MichD
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
'----------------------------------------