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

Aide pour une fonction personnalisée

3 réponses
Avatar
DesseJ
Bonjour,


Je boucle depuis un petit moment pour =E9crire une fonction perso qui me
renverrait la date la plus ancienne pour une personne. Je vous joins un
exemple pour plus de clart=E9 :
http://cjoint.com/?dvqpwr5Mb8

En matricielle, la formule que j'utilise est la suivante :
{=3DMIN(SI(A2=3DFeuil1!$B$2:$B$7;Feuil1!$C$2:$C$7))}
A2 =E9tant la cellule qui contient l'information =E0 rechercher dans la
plage Feuil1!$B$2:$B$7, la plage Feuil1!$C$2:$C$10 =E9tant la plage de
dates.

La seule fonction que j'ai r=E9ussi =E0 =E9crire et qui fonctionne est la
suivante :
Function MonMin(MaValeur As Range)
Application.Volatile
MonMin=3D Evaluate("=3DMIN(IF(" &
MaValeur.AddressLocal(rowabsolute:=3DFalse, columnabsolute:=3DFalse) &
"=3DNomsPr=E9noms,DateD=E9but))")
End Function
Mais je suis oblig=E9 de nommer la plage de recherche et de renvoi avant
d'utiliser dans la feuille de calcul la formule =3DMonMin(A2)

Je n'ai pas r=E9ussi =E0 modifier la fonction pour que les arguments
soient bien pris en compte, la fonction MonMin2 donnant un r=E9sultat 0.


Merci d'avance pour votre pr=E9cieuse aide,
Steph D.

3 réponses

Avatar
DesseJ
Bonjour,

En effectuant des tests ce matin, j'ai vu que la fonction perso
suivante fonctionnait uniquement si les données sources
(MaPlageRecherche et MaValeurARenvoyer) se trouvaient sur le même
onglet. Si ces données se trouvent sur un autre onglet, le résultat
renvoyé est 0.

Comment puis-je, svp, contourner le "problème" ?
Merci, Steph D.


Function MonMin2(MaValeur As Range, MaPlageRecherche As Range,
MaValeurARenvoyer As Range)
Application.Volatile
MonMin2 = Evaluate("=MIN(IF(" &
MaValeur.Address(rowabsolute:úlse, columnabsolute:úlse) & "=" &
MaPlageRecherche.Address(rowabsolute:úlse, columnabsolute:úlse) &
"," & MaValeurARenvoyer.AddressLocal(rowabsolute:úlse,
columnabsolute:úlse) & "))")
End Function
Avatar
michdenis
Bonjour Desse,

Essaie ceci :

(pas tester)
'-------------------------
Function MonMin2(MaValeur As Range, MaPlageRecherche As Range, _
MaValeurARenvoyer As Range)

Application.Volatile
Dim SearchAddress As String
Dim MyVal As String
Dim SenndAddress As String
MyVal = MaValeur.Parent.Name & "!" & _
MaValeur.Address(rowabsolute:úlse, columnabsolute:úlse)
SearchAddress = MaPlageRecherche.Parent.Name & "!" & _
MaPlageRecherche.Address(rowabsolute:úlse, columnabsolute:úlse)
SenndAddress = MaValeurARenvoyer.Parent.Name & "!" & _
MaValeurARenvoyer.Address(rowabsolute:úlse, columnabsolute:úlse)

MonMin2 = Evaluate("=MIN(IF(" & MyVal & "=" & _
SearchAddress & "," & SenndAddress & "))")
End Function
'-------------------------


Salutations!




"DesseJ" a écrit dans le message de news:
Bonjour,

En effectuant des tests ce matin, j'ai vu que la fonction perso
suivante fonctionnait uniquement si les données sources
(MaPlageRecherche et MaValeurARenvoyer) se trouvaient sur le même
onglet. Si ces données se trouvent sur un autre onglet, le résultat
renvoyé est 0.

Comment puis-je, svp, contourner le "problème" ?
Merci, Steph D.


Function MonMin2(MaValeur As Range, MaPlageRecherche As Range,
MaValeurARenvoyer As Range)
Application.Volatile
MonMin2 = Evaluate("=MIN(IF(" &
MaValeur.Address(rowabsolute:úlse, columnabsolute:úlse) & "=" &
MaPlageRecherche.Address(rowabsolute:úlse, columnabsolute:úlse) &
"," & MaValeurARenvoyer.AddressLocal(rowabsolute:úlse,
columnabsolute:úlse) & "))")
End Function
Avatar
DesseJ
Bonjour Michdenis,

Comme toujours, c'est parfait. Un grand merci, je vais pouvoir
simplifier pas mal de formules evaluate pour mes collègues ;o))))

Bonne soirée,
Steph. D.