je repose une question pour laquelle je n'ai pas pu obtenir d'aide (utiliser
cstr(rgREF) ne marche pas non plus; et je voudrais être insensible au format
des données):
dans la fonction ci-dessous, largement due à l'aide de docm sur ce forum, je
rencontre un problème avec Excel 2003 sous xp, qui ne se produisait pas avec
Excel 97 sous W2000pro.
Lorsque les valeurs (1 à n) de rgREF ne sont pas au format texte, il génère
une erreur. Cette contrainte est bien gênante, surtout que le fichier est
partagé avec des collègues, qui n'ont pas de goût particulier pour les
raffinements informatiques, et me le font savoir vertement.
Y-a-t-il une solution pour que la fonction marche avec n'importe quel
format? (en particulier le format standard)
D'avance merci pour votre aide.
Bourby
Function ValeurMaxiDansListeDeRef(rgLISTE As Range, _
rgREF As Range, rgFIN As Range, rgDéBUT As Range) As Variant
Dim a, b, d, Ajout, x, y, rgVALEURS As Range
' ajout d'un ";" en fin de liste s'il n'y est pas déjà
If rgLISTE.Value = "" Then ValeurMaxiDansListeDeRef = "": Exit Function
If Right(rgLISTE.Value, 1) = ";" Then Ajout = "" Else Ajout = ";"
a = rgLISTE.Value & Ajout
' bouclage sur les occurences de ";"
While InStr(a, ";") > 0
b = InStr(a, ";")
d = Mid(a, 1, b - 1)
a = Mid(a, b + 1)
' recherche de la tâche et calcul de la date maxi
y = Application.Match(Trim(d), rgREF, 0)
x = Application.Index(rgVALEURS, y)
If x > ValeurMaxiDansListeDeRef Then ValeurMaxiDansListeDeRef = x
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour Bourby,
Elle est où ta ligne de code où tu dois utiliser : cstr(rgREF)
Dans ta procédure, le seul endroit où tu fais référence à ta variable de "TYPE RANGE" au niveau de la déclaration de ta fonction est celle-ci : y = Application.Match(Trim(d), rgREF, 0)
Et là , je ne vois pas comment tu peux transoformer rgRef par Cstr(rgRef) dans cette ligne de code !!!!!!!!!!
Il ne faut pas te surprendre si tu n'obtiens pas de réponse !
Salutations!
"Bourby" a écrit dans le message de news:
Bonjour,
je repose une question pour laquelle je n'ai pas pu obtenir d'aide (utiliser cstr(rgREF) ne marche pas non plus; et je voudrais être insensible au format des données):
dans la fonction ci-dessous, largement due à l'aide de docm sur ce forum, je rencontre un problème avec Excel 2003 sous xp, qui ne se produisait pas avec Excel 97 sous W2000pro.
Lorsque les valeurs (1 à n) de rgREF ne sont pas au format texte, il génère une erreur. Cette contrainte est bien gênante, surtout que le fichier est partagé avec des collègues, qui n'ont pas de goût particulier pour les raffinements informatiques, et me le font savoir vertement.
Y-a-t-il une solution pour que la fonction marche avec n'importe quel format? (en particulier le format standard)
D'avance merci pour votre aide.
Bourby
Function ValeurMaxiDansListeDeRef(rgLISTE As Range, _ rgREF As Range, rgFIN As Range, rgDéBUT As Range) As Variant Dim a, b, d, Ajout, x, y, rgVALEURS As Range
' ajout d'un ";" en fin de liste s'il n'y est pas déjà If rgLISTE.Value = "" Then ValeurMaxiDansListeDeRef = "": Exit Function If Right(rgLISTE.Value, 1) = ";" Then Ajout = "" Else Ajout = ";" a = rgLISTE.Value & Ajout
' bouclage sur les occurences de ";" While InStr(a, ";") > 0 b = InStr(a, ";") d = Mid(a, 1, b - 1) a = Mid(a, b + 1) ' recherche de la tâche et calcul de la date maxi y = Application.Match(Trim(d), rgREF, 0) x = Application.Index(rgVALEURS, y) If x > ValeurMaxiDansListeDeRef Then ValeurMaxiDansListeDeRef = x
Wend
End Function
Bonjour Bourby,
Elle est où ta ligne de code où tu dois utiliser : cstr(rgREF)
Dans ta procédure, le seul endroit où tu fais référence à ta variable de "TYPE RANGE" au niveau de la déclaration de ta
fonction est celle-ci :
y = Application.Match(Trim(d), rgREF, 0)
Et là , je ne vois pas comment tu peux transoformer rgRef par Cstr(rgRef) dans cette ligne de code !!!!!!!!!!
Il ne faut pas te surprendre si tu n'obtiens pas de réponse !
Salutations!
"Bourby" <Bourby@discussions.microsoft.com> a écrit dans le message de news:
2C534744-CDC7-444D-8925-0E89D841D6CD@microsoft.com...
Bonjour,
je repose une question pour laquelle je n'ai pas pu obtenir d'aide (utiliser
cstr(rgREF) ne marche pas non plus; et je voudrais être insensible au format
des données):
dans la fonction ci-dessous, largement due à l'aide de docm sur ce forum, je
rencontre un problème avec Excel 2003 sous xp, qui ne se produisait pas avec
Excel 97 sous W2000pro.
Lorsque les valeurs (1 à n) de rgREF ne sont pas au format texte, il génère
une erreur. Cette contrainte est bien gênante, surtout que le fichier est
partagé avec des collègues, qui n'ont pas de goût particulier pour les
raffinements informatiques, et me le font savoir vertement.
Y-a-t-il une solution pour que la fonction marche avec n'importe quel
format? (en particulier le format standard)
D'avance merci pour votre aide.
Bourby
Function ValeurMaxiDansListeDeRef(rgLISTE As Range, _
rgREF As Range, rgFIN As Range, rgDéBUT As Range) As Variant
Dim a, b, d, Ajout, x, y, rgVALEURS As Range
' ajout d'un ";" en fin de liste s'il n'y est pas déjà
If rgLISTE.Value = "" Then ValeurMaxiDansListeDeRef = "": Exit Function
If Right(rgLISTE.Value, 1) = ";" Then Ajout = "" Else Ajout = ";"
a = rgLISTE.Value & Ajout
' bouclage sur les occurences de ";"
While InStr(a, ";") > 0
b = InStr(a, ";")
d = Mid(a, 1, b - 1)
a = Mid(a, b + 1)
' recherche de la tâche et calcul de la date maxi
y = Application.Match(Trim(d), rgREF, 0)
x = Application.Index(rgVALEURS, y)
If x > ValeurMaxiDansListeDeRef Then ValeurMaxiDansListeDeRef = x
Elle est où ta ligne de code où tu dois utiliser : cstr(rgREF)
Dans ta procédure, le seul endroit où tu fais référence à ta variable de "TYPE RANGE" au niveau de la déclaration de ta fonction est celle-ci : y = Application.Match(Trim(d), rgREF, 0)
Et là , je ne vois pas comment tu peux transoformer rgRef par Cstr(rgRef) dans cette ligne de code !!!!!!!!!!
Il ne faut pas te surprendre si tu n'obtiens pas de réponse !
Salutations!
"Bourby" a écrit dans le message de news:
Bonjour,
je repose une question pour laquelle je n'ai pas pu obtenir d'aide (utiliser cstr(rgREF) ne marche pas non plus; et je voudrais être insensible au format des données):
dans la fonction ci-dessous, largement due à l'aide de docm sur ce forum, je rencontre un problème avec Excel 2003 sous xp, qui ne se produisait pas avec Excel 97 sous W2000pro.
Lorsque les valeurs (1 à n) de rgREF ne sont pas au format texte, il génère une erreur. Cette contrainte est bien gênante, surtout que le fichier est partagé avec des collègues, qui n'ont pas de goût particulier pour les raffinements informatiques, et me le font savoir vertement.
Y-a-t-il une solution pour que la fonction marche avec n'importe quel format? (en particulier le format standard)
D'avance merci pour votre aide.
Bourby
Function ValeurMaxiDansListeDeRef(rgLISTE As Range, _ rgREF As Range, rgFIN As Range, rgDéBUT As Range) As Variant Dim a, b, d, Ajout, x, y, rgVALEURS As Range
' ajout d'un ";" en fin de liste s'il n'y est pas déjà If rgLISTE.Value = "" Then ValeurMaxiDansListeDeRef = "": Exit Function If Right(rgLISTE.Value, 1) = ";" Then Ajout = "" Else Ajout = ";" a = rgLISTE.Value & Ajout
' bouclage sur les occurences de ";" While InStr(a, ";") > 0 b = InStr(a, ";") d = Mid(a, 1, b - 1) a = Mid(a, b + 1) ' recherche de la tâche et calcul de la date maxi y = Application.Match(Trim(d), rgREF, 0) x = Application.Index(rgVALEURS, y) If x > ValeurMaxiDansListeDeRef Then ValeurMaxiDansListeDeRef = x
Wend
End Function
Bourby
bonjour,
tu as bien compris ma difficulté; je veux récupérer la position dans rgREF de la valeur d. Si cette syntaxe ne convient pas, comment faudrait-il s'y prendre?
(je m'aperçois que le problème existait aussi sous 2000, mais mes références étaient de type a, b,c, etc... donc je ne m'en apercevais pas).
D'avance merci
Bourby
"michdenis" a écrit dans le message news:
Bonjour Bourby,
Elle est où ta ligne de code où tu dois utiliser : cstr(rgREF)
Dans ta procédure, le seul endroit où tu fais référence à ta variable de "TYPE RANGE" au niveau de la déclaration de ta
fonction est celle-ci : y = Application.Match(Trim(d), rgREF, 0)
Et là , je ne vois pas comment tu peux transoformer rgRef par Cstr(rgRef) dans cette ligne de code !!!!!!!!!!
Il ne faut pas te surprendre si tu n'obtiens pas de réponse !
Salutations!
"Bourby" a écrit dans le message de news:
Bonjour,
je repose une question pour laquelle je n'ai pas pu obtenir d'aide (utiliser
cstr(rgREF) ne marche pas non plus; et je voudrais être insensible au format
des données):
dans la fonction ci-dessous, largement due à l'aide de docm sur ce forum, je
rencontre un problème avec Excel 2003 sous xp, qui ne se produisait pas avec
Excel 97 sous W2000pro.
Lorsque les valeurs (1 à n) de rgREF ne sont pas au format texte, il génère
une erreur. Cette contrainte est bien gênante, surtout que le fichier est partagé avec des collègues, qui n'ont pas de goût particulier pour les raffinements informatiques, et me le font savoir vertement.
Y-a-t-il une solution pour que la fonction marche avec n'importe quel format? (en particulier le format standard)
D'avance merci pour votre aide.
Bourby
Function ValeurMaxiDansListeDeRef(rgLISTE As Range, _ rgREF As Range, rgFIN As Range, rgDéBUT As Range) As Variant Dim a, b, d, Ajout, x, y, rgVALEURS As Range
' ajout d'un ";" en fin de liste s'il n'y est pas déjà If rgLISTE.Value = "" Then ValeurMaxiDansListeDeRef = "": Exit Function If Right(rgLISTE.Value, 1) = ";" Then Ajout = "" Else Ajout = ";" a = rgLISTE.Value & Ajout
' bouclage sur les occurences de ";" While InStr(a, ";") > 0 b = InStr(a, ";") d = Mid(a, 1, b - 1) a = Mid(a, b + 1) ' recherche de la tâche et calcul de la date maxi y = Application.Match(Trim(d), rgREF, 0) x = Application.Index(rgVALEURS, y) If x > ValeurMaxiDansListeDeRef Then ValeurMaxiDansListeDeRef = x
Wend
End Function
bonjour,
tu as bien compris ma difficulté;
je veux récupérer la position dans rgREF de la valeur d.
Si cette syntaxe ne convient pas, comment faudrait-il s'y prendre?
(je m'aperçois que le problème existait aussi sous 2000, mais
mes références étaient de type a, b,c, etc... donc je ne m'en
apercevais pas).
D'avance merci
Bourby
"michdenis" <michdenis@hotmail.com> a écrit dans le message news:
uBNcDZmxEHA.4028@TK2MSFTNGP15.phx.gbl...
Bonjour Bourby,
Elle est où ta ligne de code où tu dois utiliser : cstr(rgREF)
Dans ta procédure, le seul endroit où tu fais référence à ta variable de
"TYPE RANGE" au niveau de la déclaration de ta
fonction est celle-ci :
y = Application.Match(Trim(d), rgREF, 0)
Et là , je ne vois pas comment tu peux transoformer rgRef par Cstr(rgRef)
dans cette ligne de code !!!!!!!!!!
Il ne faut pas te surprendre si tu n'obtiens pas de réponse !
Salutations!
"Bourby" <Bourby@discussions.microsoft.com> a écrit dans le message de
news:
je repose une question pour laquelle je n'ai pas pu obtenir d'aide
(utiliser
cstr(rgREF) ne marche pas non plus; et je voudrais être insensible au
format
des données):
dans la fonction ci-dessous, largement due à l'aide de docm sur ce forum,
je
rencontre un problème avec Excel 2003 sous xp, qui ne se produisait pas
avec
Excel 97 sous W2000pro.
Lorsque les valeurs (1 à n) de rgREF ne sont pas au format texte, il
génère
une erreur. Cette contrainte est bien gênante, surtout que le fichier est
partagé avec des collègues, qui n'ont pas de goût particulier pour les
raffinements informatiques, et me le font savoir vertement.
Y-a-t-il une solution pour que la fonction marche avec n'importe quel
format? (en particulier le format standard)
D'avance merci pour votre aide.
Bourby
Function ValeurMaxiDansListeDeRef(rgLISTE As Range, _
rgREF As Range, rgFIN As Range, rgDéBUT As Range) As Variant
Dim a, b, d, Ajout, x, y, rgVALEURS As Range
' ajout d'un ";" en fin de liste s'il n'y est pas déjà
If rgLISTE.Value = "" Then ValeurMaxiDansListeDeRef = "": Exit Function
If Right(rgLISTE.Value, 1) = ";" Then Ajout = "" Else Ajout = ";"
a = rgLISTE.Value & Ajout
' bouclage sur les occurences de ";"
While InStr(a, ";") > 0
b = InStr(a, ";")
d = Mid(a, 1, b - 1)
a = Mid(a, b + 1)
' recherche de la tâche et calcul de la date maxi
y = Application.Match(Trim(d), rgREF, 0)
x = Application.Index(rgVALEURS, y)
If x > ValeurMaxiDansListeDeRef Then ValeurMaxiDansListeDeRef = x
tu as bien compris ma difficulté; je veux récupérer la position dans rgREF de la valeur d. Si cette syntaxe ne convient pas, comment faudrait-il s'y prendre?
(je m'aperçois que le problème existait aussi sous 2000, mais mes références étaient de type a, b,c, etc... donc je ne m'en apercevais pas).
D'avance merci
Bourby
"michdenis" a écrit dans le message news:
Bonjour Bourby,
Elle est où ta ligne de code où tu dois utiliser : cstr(rgREF)
Dans ta procédure, le seul endroit où tu fais référence à ta variable de "TYPE RANGE" au niveau de la déclaration de ta
fonction est celle-ci : y = Application.Match(Trim(d), rgREF, 0)
Et là , je ne vois pas comment tu peux transoformer rgRef par Cstr(rgRef) dans cette ligne de code !!!!!!!!!!
Il ne faut pas te surprendre si tu n'obtiens pas de réponse !
Salutations!
"Bourby" a écrit dans le message de news:
Bonjour,
je repose une question pour laquelle je n'ai pas pu obtenir d'aide (utiliser
cstr(rgREF) ne marche pas non plus; et je voudrais être insensible au format
des données):
dans la fonction ci-dessous, largement due à l'aide de docm sur ce forum, je
rencontre un problème avec Excel 2003 sous xp, qui ne se produisait pas avec
Excel 97 sous W2000pro.
Lorsque les valeurs (1 à n) de rgREF ne sont pas au format texte, il génère
une erreur. Cette contrainte est bien gênante, surtout que le fichier est partagé avec des collègues, qui n'ont pas de goût particulier pour les raffinements informatiques, et me le font savoir vertement.
Y-a-t-il une solution pour que la fonction marche avec n'importe quel format? (en particulier le format standard)
D'avance merci pour votre aide.
Bourby
Function ValeurMaxiDansListeDeRef(rgLISTE As Range, _ rgREF As Range, rgFIN As Range, rgDéBUT As Range) As Variant Dim a, b, d, Ajout, x, y, rgVALEURS As Range
' ajout d'un ";" en fin de liste s'il n'y est pas déjà If rgLISTE.Value = "" Then ValeurMaxiDansListeDeRef = "": Exit Function If Right(rgLISTE.Value, 1) = ";" Then Ajout = "" Else Ajout = ";" a = rgLISTE.Value & Ajout
' bouclage sur les occurences de ";" While InStr(a, ";") > 0 b = InStr(a, ";") d = Mid(a, 1, b - 1) a = Mid(a, b + 1) ' recherche de la tâche et calcul de la date maxi y = Application.Match(Trim(d), rgREF, 0) x = Application.Index(rgVALEURS, y) If x > ValeurMaxiDansListeDeRef Then ValeurMaxiDansListeDeRef = x