[VBA] Fonction personnelle... savoir l'emplacement de la cellule où se trouve un appel de cette fonction
4 réponses
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.
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.
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.
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
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
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.
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
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 '----------------------------------------
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
'----------------------------------------
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 '----------------------------------------