Problème avec une macro

Le
Clochard
Bonjour,

J'ai un problème avec cette macro placée dans un module

Function plusgrandeE(plage As Range) As String
Application.Volatile
Dim v As Range
Dim pg As String
For Each v In [equipes]
If v = plage.Value Then pg = pg & "" & Range("B" & v.Row)
Next v
plusgrandeE = pg
End Function

À l'ouverture du fichier ou lorsque que je change de feuille le résultat
change constamment

Je dois donc régulièrement faire F9 pour obtenir le bon résultat

D'après vous Pourquoi ?


--

Clochard
Aimerais bien savoir.
Merci!
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
lSteph
Le #5001491
Bonjour,

ceci n'est pas une macro mais une fonction,celle-ci comprend
Application.volatile
il est donc normal que son résultat puisse changer lorsqu'il y a un
recalcul
si elle est utilisée directement dans la feuille.
Si cette fonction n'est pas appelée depuis une cellule de la feuille
mais en fonction d'une autre fonction ou d'une macro , il convient de
connaitre la procédure et l'évènement éventuel qui déclenchent s on
calcul.
Dans tous les cas, s'assurer que la plage de cellules concernée n'est
pas elle-même assujettie à un autre évènement.

Cordialement.
--
lSteph


On 22 oct, 14:32, Clochard
Bonjour,

J'ai un problème avec cette macro placée dans un module

Function plusgrandeE(plage As Range) As String
Application.Volatile
Dim v As Range
Dim pg As String
For Each v In [equipes]
If v = plage.Value Then pg = pg & "" & Range("B" & v.Row)
Next v
plusgrandeE = pg
End Function

À l'ouverture du fichier ou lorsque que je change de feuille... le ré sultat
change constamment...

Je dois donc régulièrement faire F9 pour obtenir le bon résultat

D'après vous... Pourquoi ?

--

Clochard
Aimerais bien savoir....
Merci!


Clochard
Le #5001451
Merci lSteph pour ton éclaircissement,

J'aimerais savoir, est-ce qu'il est possible de rendre une fonction... macro
--
Clochard
Aimerais bien savoir....
Merci!



Bonjour,

ceci n'est pas une macro mais une fonction,celle-ci comprend
Application.volatile
il est donc normal que son résultat puisse changer lorsqu'il y a un
recalcul
si elle est utilisée directement dans la feuille.
Si cette fonction n'est pas appelée depuis une cellule de la feuille
mais en fonction d'une autre fonction ou d'une macro , il convient de
connaitre la procédure et l'évènement éventuel qui déclenchent son
calcul.
Dans tous les cas, s'assurer que la plage de cellules concernée n'est
pas elle-même assujettie à un autre évènement.

Cordialement.
--
lSteph


On 22 oct, 14:32, Clochard
Bonjour,

J'ai un problème avec cette macro placée dans un module

Function plusgrandeE(plage As Range) As String
Application.Volatile
Dim v As Range
Dim pg As String
For Each v In [equipes]
If v = plage.Value Then pg = pg & "" & Range("B" & v.Row)
Next v
plusgrandeE = pg
End Function

À l'ouverture du fichier ou lorsque que je change de feuille... le résultat
change constamment...

Je dois donc régulièrement faire F9 pour obtenir le bon résultat

D'après vous... Pourquoi ?

--

Clochard
Aimerais bien savoir....
Merci!







lSteph
Le #5001291
comme je le disais, donc autrement, :
si elle est utilisée directement dans la feuille.
Si cette fonction n'est pas appelée depuis une cellule de la feuille
mais en fonction d'une autre fonction ou d'une macro , il convient de
connaitre la procédure et l'évènement éventuel qui déclenche nt son
calcul.
Dans tous les cas, s'assurer que la plage de cellules concernée n'est
pas elle-même assujettie à un autre évènement.



il conviendrait que tu précises ces éléments qui nous permettraient
de te répondre.

--
lSteph

On 22 oct, 15:26, Clochard
Merci lSteph pour ton éclaircissement,

J'aimerais savoir, est-ce qu'il est possible de rendre une fonction... ma cro
--
Clochard
Aimerais bien savoir....
Merci!


Bonjour,

ceci n'est pas une macro mais une fonction,celle-ci comprend
Application.volatile
il est donc normal que son résultat puisse changer lorsqu'il y a un
recalcul
si elle est utilisée directement dans la feuille.
Si cette fonction n'est pas appelée depuis une cellule de la feuille
mais en fonction d'une autre fonction ou d'une macro , il convient de
connaitre la procédure et l'évènement éventuel qui déclenche nt son
calcul.
Dans tous les cas, s'assurer que la plage de cellules concernée n'est
pas elle-même assujettie à un autre évènement.

Cordialement.
--
lSteph

On 22 oct, 14:32, Clochard
Bonjour,

J'ai un problème avec cette macro placée dans un module

Function plusgrandeE(plage As Range) As String
Application.Volatile
Dim v As Range
Dim pg As String
For Each v In [equipes]
If v = plage.Value Then pg = pg & "" & Range("B" & v.Row)
Next v
plusgrandeE = pg
End Function

À l'ouverture du fichier ou lorsque que je change de feuille... le résultat
change constamment...

Je dois donc régulièrement faire F9 pour obtenir le bon résultat

D'après vous... Pourquoi ?

--

Clochard
Aimerais bien savoir....
Merci!






garnote
Le #5001101
Salut Clochard,

Si, par exemple, la cellule G2 contient la valeur v
de ta fonction personnalisée, cette macro entrera
en G3 le pg de ta fonction..

Sub PGE()
Dim v As Range
Dim pg As String
For Each v In [equipes]
If v = [G2] Then pg = pg & "" & Range("B" & v.Row)
Next v
[G3] = pg
End Sub

Serge


"Clochard"
Merci lSteph pour ton éclaircissement,

J'aimerais savoir, est-ce qu'il est possible de rendre une fonction... macro
--
Clochard
Aimerais bien savoir....
Merci!



Bonjour,

ceci n'est pas une macro mais une fonction,celle-ci comprend
Application.volatile
il est donc normal que son résultat puisse changer lorsqu'il y a un
recalcul
si elle est utilisée directement dans la feuille.
Si cette fonction n'est pas appelée depuis une cellule de la feuille
mais en fonction d'une autre fonction ou d'une macro , il convient de
connaitre la procédure et l'évènement éventuel qui déclenchent son
calcul.
Dans tous les cas, s'assurer que la plage de cellules concernée n'est
pas elle-même assujettie à un autre évènement.

Cordialement.
--
lSteph


On 22 oct, 14:32, Clochard
Bonjour,

J'ai un problème avec cette macro placée dans un module

Function plusgrandeE(plage As Range) As String
Application.Volatile
Dim v As Range
Dim pg As String
For Each v In [equipes]
If v = plage.Value Then pg = pg & "" & Range("B" & v.Row)
Next v
plusgrandeE = pg
End Function

À l'ouverture du fichier ou lorsque que je change de feuille... le résultat
change constamment...

Je dois donc régulièrement faire F9 pour obtenir le bon résultat

D'après vous... Pourquoi ?

--

Clochard
Aimerais bien savoir....
Merci!









Publicité
Poster une réponse
Anonyme