J'aimerais savoir s'il est possible de faire une fonction avec deux
param=E8tres.
Parce que j'ai essay=E9 mais ma syntaxe ne doit pas =EAtre correcte parce
que =E7a bugge.
J'ai =E9crit:
Public Function ClassementF(ColonneScore, ColonneClt)
End Function
Sub Classement()
ClassementF ("J","A")
End Sub
Et il bugge quand j'appelle la fonction. (il y a des trucs dans ma
fonction, mais il bugge avant de les lire donc je ne les ai pas =E9crits
dans ce message)
Il me semble que tu ne définis pas tes Variables ...
et ... quelle est ta UDF ...?
Ca veut dire quoi UDF ? Effectivement je ne définis pas mes variables, mais si je n'en mets qu'une, ça marche.
Si je fais:
Public Function ClassementF (ColonneClt) End Function
Sub Classement() ClassementF ("A") End Sub
Je n'ai pas de problème.
Merci
LSteph
Bonjour,
J'aimerais savoir s'il est possible de faire une fonction avec deux paramètres. Bien sûr exemple simpliste:
Function hypoth(x As Single, y As Single) As Single hypoth = (x ^ 2 + y ^ 2) ^ (1 / 2) End Function
Public Function ClassementF Attention selon le sens de classement s'il s'agit de classer (tri)une
fonction n'a pas vocation à déplacer des éléments dans une feuille. Une fonction renvoie un résultat. Alors c'est peut-être pour cela que tu ajoutes une sub en dessous
fonction, mais il bugge avant de les lire donc je ne les ai pas écrits
Précisément si tu veux qu'on y voit quelque chose faut tout mettre et dire ce que tu veux faire avec quoi, parce que là "classement" c'est pas tout clair au niveau de ce que tu veux utiliser ,ensuite obtenir et où.
Cordialement.
-- lSteph
Bonjour,
J'aimerais savoir s'il est possible de faire une fonction avec deux paramètres. Parce que j'ai essayé mais ma syntaxe ne doit pas être correcte parce que ça bugge.
J'ai écrit:
Public Function ClassementF(ColonneScore, ColonneClt) End Function
Sub Classement() ClassementF ("J","A") End Sub
Et il bugge quand j'appelle la fonction. (il y a des trucs dans ma fonction, mais il bugge avant de les lire donc je ne les ai pas écrits dans ce message)
Comment dois-je faire?
Merci de votre aide Stéphanie
Bonjour,
J'aimerais savoir s'il est possible de faire une fonction avec deux
paramètres.
Bien sûr exemple simpliste:
Function hypoth(x As Single, y As Single) As Single
hypoth = (x ^ 2 + y ^ 2) ^ (1 / 2)
End Function
Public Function ClassementF
Attention selon le sens de classement s'il s'agit de classer (tri)une
fonction n'a pas vocation à déplacer des éléments dans une feuille.
Une fonction renvoie un résultat. Alors c'est peut-être pour cela que tu
ajoutes une sub en dessous
fonction, mais il bugge avant de les lire donc je ne les ai pas écrits
Précisément si tu veux qu'on y voit quelque chose faut tout mettre
et dire ce que tu veux faire avec quoi, parce que là "classement" c'est
pas tout clair au niveau de ce que tu veux utiliser ,ensuite obtenir et où.
Cordialement.
--
lSteph
Bonjour,
J'aimerais savoir s'il est possible de faire une fonction avec deux
paramètres.
Parce que j'ai essayé mais ma syntaxe ne doit pas être correcte parce
que ça bugge.
J'ai écrit:
Public Function ClassementF(ColonneScore, ColonneClt)
End Function
Sub Classement()
ClassementF ("J","A")
End Sub
Et il bugge quand j'appelle la fonction. (il y a des trucs dans ma
fonction, mais il bugge avant de les lire donc je ne les ai pas écrits
dans ce message)
J'aimerais savoir s'il est possible de faire une fonction avec deux paramètres. Bien sûr exemple simpliste:
Function hypoth(x As Single, y As Single) As Single hypoth = (x ^ 2 + y ^ 2) ^ (1 / 2) End Function
Public Function ClassementF Attention selon le sens de classement s'il s'agit de classer (tri)une
fonction n'a pas vocation à déplacer des éléments dans une feuille. Une fonction renvoie un résultat. Alors c'est peut-être pour cela que tu ajoutes une sub en dessous
fonction, mais il bugge avant de les lire donc je ne les ai pas écrits
Précisément si tu veux qu'on y voit quelque chose faut tout mettre et dire ce que tu veux faire avec quoi, parce que là "classement" c'est pas tout clair au niveau de ce que tu veux utiliser ,ensuite obtenir et où.
Cordialement.
-- lSteph
Bonjour,
J'aimerais savoir s'il est possible de faire une fonction avec deux paramètres. Parce que j'ai essayé mais ma syntaxe ne doit pas être correcte parce que ça bugge.
J'ai écrit:
Public Function ClassementF(ColonneScore, ColonneClt) End Function
Sub Classement() ClassementF ("J","A") End Sub
Et il bugge quand j'appelle la fonction. (il y a des trucs dans ma fonction, mais il bugge avant de les lire donc je ne les ai pas écrits dans ce message)
Comment dois-je faire?
Merci de votre aide Stéphanie
LSteph
:o)) ??? Union des Démocrates Français
On 16 déc, 12:21, Carim wrote:
Bonjour,
Il me semble que tu ne définis pas tes Variables ...
et ... quelle est ta UDF ...?
Ca veut dire quoi UDF ? Effectivement je ne définis pas mes variables, mais si je n'en mets qu'une, ça marche.
Si je fais:
Public Function ClassementF (ColonneClt) End Function
Sub Classement() ClassementF ("A") End Sub
Je n'ai pas de problème.
Merci
:o)) ???
Union des Démocrates Français
On 16 déc, 12:21, Carim <carim...@yahoo.com> wrote:
Bonjour,
Il me semble que tu ne définis pas tes Variables ...
et ... quelle est ta UDF ...?
Ca veut dire quoi UDF ?
Effectivement je ne définis pas mes variables, mais si je n'en mets
qu'une, ça marche.
Si je fais:
Public Function ClassementF (ColonneClt)
End Function
Il me semble que tu ne définis pas tes Variables ...
et ... quelle est ta UDF ...?
Ca veut dire quoi UDF ? Effectivement je ne définis pas mes variables, mais si je n'en mets qu'une, ça marche.
Si je fais:
Public Function ClassementF (ColonneClt) End Function
Sub Classement() ClassementF ("A") End Sub
Je n'ai pas de problème.
Merci
steph05
On 16 déc, 12:32, LSteph wrote:
Bonjour,
J'aimerais savoir s'il est possible de faire une fonction avec deux paramètres. Bien sûr exemple simpliste:
Function hypoth(x As Single, y As Single) As Single hypoth = (x ^ 2 + y ^ 2) ^ (1 / 2) End Function
Public Function ClassementF Attention selon le sens de classement s'il s'agit de classer (tri)une
fonction n'a pas vocation à déplacer des éléments dans une feuille . Une fonction renvoie un résultat. Alors c'est peut-être pour cela que tu ajoutes une sub en dessous
fonction, mais il bugge avant de les lire donc je ne les ai pas écrit s
Précisément si tu veux qu'on y voit quelque chose faut tout mettre et dire ce que tu veux faire avec quoi, parce que là "classement" c'est pas tout clair au niveau de ce que tu veux utiliser ,ensuite obtenir et o ù.
Cordialement.
-- lSteph
Alors voilà l'explication de ce que je veux faire. Je cherche à faire le classement d'une compétition, mettre 1 à celui qui a le plus de points, 2 au deuxième ... et mettre la même place si j'ai des ex-aequo. J'y arrive, mais comme cette compétition comporte plusieurs manches, je veux répéter ce classement à chaque manche. Au lieu de réécrire 4 fois la même chose, j'aimerais paramétrer ma macro.
Ma fonction entière est:
Public Function ClassementF(ColonneClt)
'En attendant d'arriver à mettre les deux paramètres ColonneScore = "J"
'Classer selon le cumul Cells.Select Selection.Sort Key1:=Range(ColonneScore & "3"), Order1:=xlDescending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal
' Mettre 1 au rang du premier en donnant comme rang le N° de ligne moins 2 Range(ColonneClt & "3").Select ActiveCell.FormulaR1C1 = "=ROW(RC[" & DiffColonne & "])-2"
' Au suivant mettre son N° de ligne -2 s'il est différent du précédent,sinon mettre comme le précédent For Each LaCellule In Range(ColonneClt & "4", ColonneClt & ligne) LaCellule.FormulaR1C1 = "=+IF(RC[" & DiffColonne & "]=R[-1]C[" & DiffColonne & "],R[-1]C,ROW(RC[-1])-2)" Next LaCellule
Sub Classement() 'Classer selon le cumul: Score=J, Clt=A ClassementF ("A") End Sub
Merci beaucoup de m'aider!
On 16 déc, 12:32, LSteph <lecocost...@frite.fr> wrote:
Bonjour,
J'aimerais savoir s'il est possible de faire une fonction avec deux
paramètres.
Bien sûr exemple simpliste:
Function hypoth(x As Single, y As Single) As Single
hypoth = (x ^ 2 + y ^ 2) ^ (1 / 2)
End Function
Public Function ClassementF
Attention selon le sens de classement s'il s'agit de classer (tri)une
fonction n'a pas vocation à déplacer des éléments dans une feuille .
Une fonction renvoie un résultat. Alors c'est peut-être pour cela que tu
ajoutes une sub en dessous
fonction, mais il bugge avant de les lire donc je ne les ai pas écrit s
Précisément si tu veux qu'on y voit quelque chose faut tout mettre
et dire ce que tu veux faire avec quoi, parce que là "classement" c'est
pas tout clair au niveau de ce que tu veux utiliser ,ensuite obtenir et o ù.
Cordialement.
--
lSteph
Alors voilà l'explication de ce que je veux faire.
Je cherche à faire le classement d'une compétition, mettre 1 à celui
qui a le plus de points, 2 au deuxième ... et mettre la même place si
j'ai des ex-aequo.
J'y arrive, mais comme cette compétition comporte plusieurs manches,
je veux répéter ce classement à chaque manche.
Au lieu de réécrire 4 fois la même chose, j'aimerais paramétrer ma
macro.
Ma fonction entière est:
Public Function ClassementF(ColonneClt)
'En attendant d'arriver à mettre les deux paramètres
ColonneScore = "J"
'Classer selon le cumul
Cells.Select
Selection.Sort Key1:=Range(ColonneScore & "3"),
Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom,
_
DataOption1:=xlSortNormal
' Mettre 1 au rang du premier en donnant comme rang le N° de ligne
moins 2
Range(ColonneClt & "3").Select
ActiveCell.FormulaR1C1 = "=ROW(RC[" & DiffColonne & "])-2"
' Au suivant mettre son N° de ligne -2 s'il est différent du
précédent,sinon mettre comme le précédent
For Each LaCellule In Range(ColonneClt & "4", ColonneClt & ligne)
LaCellule.FormulaR1C1 = "=+IF(RC[" & DiffColonne & "]=R[-1]C[" &
DiffColonne & "],R[-1]C,ROW(RC[-1])-2)"
Next LaCellule
J'aimerais savoir s'il est possible de faire une fonction avec deux paramètres. Bien sûr exemple simpliste:
Function hypoth(x As Single, y As Single) As Single hypoth = (x ^ 2 + y ^ 2) ^ (1 / 2) End Function
Public Function ClassementF Attention selon le sens de classement s'il s'agit de classer (tri)une
fonction n'a pas vocation à déplacer des éléments dans une feuille . Une fonction renvoie un résultat. Alors c'est peut-être pour cela que tu ajoutes une sub en dessous
fonction, mais il bugge avant de les lire donc je ne les ai pas écrit s
Précisément si tu veux qu'on y voit quelque chose faut tout mettre et dire ce que tu veux faire avec quoi, parce que là "classement" c'est pas tout clair au niveau de ce que tu veux utiliser ,ensuite obtenir et o ù.
Cordialement.
-- lSteph
Alors voilà l'explication de ce que je veux faire. Je cherche à faire le classement d'une compétition, mettre 1 à celui qui a le plus de points, 2 au deuxième ... et mettre la même place si j'ai des ex-aequo. J'y arrive, mais comme cette compétition comporte plusieurs manches, je veux répéter ce classement à chaque manche. Au lieu de réécrire 4 fois la même chose, j'aimerais paramétrer ma macro.
Ma fonction entière est:
Public Function ClassementF(ColonneClt)
'En attendant d'arriver à mettre les deux paramètres ColonneScore = "J"
'Classer selon le cumul Cells.Select Selection.Sort Key1:=Range(ColonneScore & "3"), Order1:=xlDescending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal
' Mettre 1 au rang du premier en donnant comme rang le N° de ligne moins 2 Range(ColonneClt & "3").Select ActiveCell.FormulaR1C1 = "=ROW(RC[" & DiffColonne & "])-2"
' Au suivant mettre son N° de ligne -2 s'il est différent du précédent,sinon mettre comme le précédent For Each LaCellule In Range(ColonneClt & "4", ColonneClt & ligne) LaCellule.FormulaR1C1 = "=+IF(RC[" & DiffColonne & "]=R[-1]C[" & DiffColonne & "],R[-1]C,ROW(RC[-1])-2)" Next LaCellule
alors tu as une fonction toute faite pour cela directement dans excel Grande.Valeur
voici en exemple (deux versions):
http://cjoint.com/?mqnBJZXR4M
http://cjoint.com/?mqnCZnAdDy
Ce sujet a été traité souvent dans le forum et il en ressort des exemples aussi bien avec que sans vba: http://www.excelabo.net/moteurs/motsclefs.php?mot=grande.valeur http://www.excelabo.net/moteurs/motsclefs.php?mot=comparer http://www.excelabo.net/moteurs/motsclefs.php?mot=classements
-- lSteph
On 16 déc, 12:32, LSteph wrote:
Bonjour,
J'aimerais savoir s'il est possible de faire une fonction avec deux paramètres. Bien sûr exemple simpliste:
Function hypoth(x As Single, y As Single) As Single hypoth = (x ^ 2 + y ^ 2) ^ (1 / 2) End Function
Public Function ClassementF Attention selon le sens de classement s'il s'agit de classer (tri)une
fonction n'a pas vocation à déplacer des éléments dans une feuille. Une fonction renvoie un résultat. Alors c'est peut-être pour cela que tu ajoutes une sub en dessous
fonction, mais il bugge avant de les lire donc je ne les ai pas écrits
Précisément si tu veux qu'on y voit quelque chose faut tout mettre et dire ce que tu veux faire avec quoi, parce que là "classement" c'est pas tout clair au niveau de ce que tu veux utiliser ,ensuite obtenir et où.
Cordialement.
-- lSteph
Alors voilà l'explication de ce que je veux faire. Je cherche à faire le classement d'une compétition, mettre 1 à celui qui a le plus de points, 2 au deuxième ... et mettre la même place si j'ai des ex-aequo. J'y arrive, mais comme cette compétition comporte plusieurs manches, je veux répéter ce classement à chaque manche. Au lieu de réécrire 4 fois la même chose, j'aimerais paramétrer ma macro.
Ma fonction entière est:
Public Function ClassementF(ColonneClt)
'En attendant d'arriver à mettre les deux paramètres ColonneScore = "J"
'Classer selon le cumul Cells.Select Selection.Sort Key1:=Range(ColonneScore & "3"), Order1:=xlDescending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal
' Mettre 1 au rang du premier en donnant comme rang le N° de ligne moins 2 Range(ColonneClt & "3").Select ActiveCell.FormulaR1C1 = "=ROW(RC[" & DiffColonne & "])-2"
' Au suivant mettre son N° de ligne -2 s'il est différent du précédent,sinon mettre comme le précédent For Each LaCellule In Range(ColonneClt & "4", ColonneClt & ligne) LaCellule.FormulaR1C1 = "=+IF(RC[" & DiffColonne & "]=R[-1]C[" & DiffColonne & "],R[-1]C,ROW(RC[-1])-2)" Next LaCellule
Sub Classement() 'Classer selon le cumul: Score=J, Clt=A ClassementF ("A") End Sub
Merci beaucoup de m'aider!
Re,
alors tu as une fonction toute faite pour cela directement dans excel
Grande.Valeur
voici en exemple (deux versions):
http://cjoint.com/?mqnBJZXR4M
http://cjoint.com/?mqnCZnAdDy
Ce sujet a été traité souvent dans le forum et il en ressort
des exemples aussi bien avec que sans vba:
http://www.excelabo.net/moteurs/motsclefs.php?mot=grande.valeur
http://www.excelabo.net/moteurs/motsclefs.php?mot=comparer
http://www.excelabo.net/moteurs/motsclefs.php?mot=classements
--
lSteph
On 16 déc, 12:32, LSteph <lecocost...@frite.fr> wrote:
Bonjour,
J'aimerais savoir s'il est possible de faire une fonction avec deux
paramètres.
Bien sûr exemple simpliste:
Function hypoth(x As Single, y As Single) As Single
hypoth = (x ^ 2 + y ^ 2) ^ (1 / 2)
End Function
Public Function ClassementF
Attention selon le sens de classement s'il s'agit de classer (tri)une
fonction n'a pas vocation à déplacer des éléments dans une feuille.
Une fonction renvoie un résultat. Alors c'est peut-être pour cela que tu
ajoutes une sub en dessous
fonction, mais il bugge avant de les lire donc je ne les ai pas écrits
Précisément si tu veux qu'on y voit quelque chose faut tout mettre
et dire ce que tu veux faire avec quoi, parce que là "classement" c'est
pas tout clair au niveau de ce que tu veux utiliser ,ensuite obtenir et où.
Cordialement.
--
lSteph
Alors voilà l'explication de ce que je veux faire.
Je cherche à faire le classement d'une compétition, mettre 1 à celui
qui a le plus de points, 2 au deuxième ... et mettre la même place si
j'ai des ex-aequo.
J'y arrive, mais comme cette compétition comporte plusieurs manches,
je veux répéter ce classement à chaque manche.
Au lieu de réécrire 4 fois la même chose, j'aimerais paramétrer ma
macro.
Ma fonction entière est:
Public Function ClassementF(ColonneClt)
'En attendant d'arriver à mettre les deux paramètres
ColonneScore = "J"
'Classer selon le cumul
Cells.Select
Selection.Sort Key1:=Range(ColonneScore & "3"),
Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom,
_
DataOption1:=xlSortNormal
' Mettre 1 au rang du premier en donnant comme rang le N° de ligne
moins 2
Range(ColonneClt & "3").Select
ActiveCell.FormulaR1C1 = "=ROW(RC[" & DiffColonne & "])-2"
' Au suivant mettre son N° de ligne -2 s'il est différent du
précédent,sinon mettre comme le précédent
For Each LaCellule In Range(ColonneClt & "4", ColonneClt & ligne)
LaCellule.FormulaR1C1 = "=+IF(RC[" & DiffColonne & "]=R[-1]C[" &
DiffColonne & "],R[-1]C,ROW(RC[-1])-2)"
Next LaCellule
alors tu as une fonction toute faite pour cela directement dans excel Grande.Valeur
voici en exemple (deux versions):
http://cjoint.com/?mqnBJZXR4M
http://cjoint.com/?mqnCZnAdDy
Ce sujet a été traité souvent dans le forum et il en ressort des exemples aussi bien avec que sans vba: http://www.excelabo.net/moteurs/motsclefs.php?mot=grande.valeur http://www.excelabo.net/moteurs/motsclefs.php?mot=comparer http://www.excelabo.net/moteurs/motsclefs.php?mot=classements
-- lSteph
On 16 déc, 12:32, LSteph wrote:
Bonjour,
J'aimerais savoir s'il est possible de faire une fonction avec deux paramètres. Bien sûr exemple simpliste:
Function hypoth(x As Single, y As Single) As Single hypoth = (x ^ 2 + y ^ 2) ^ (1 / 2) End Function
Public Function ClassementF Attention selon le sens de classement s'il s'agit de classer (tri)une
fonction n'a pas vocation à déplacer des éléments dans une feuille. Une fonction renvoie un résultat. Alors c'est peut-être pour cela que tu ajoutes une sub en dessous
fonction, mais il bugge avant de les lire donc je ne les ai pas écrits
Précisément si tu veux qu'on y voit quelque chose faut tout mettre et dire ce que tu veux faire avec quoi, parce que là "classement" c'est pas tout clair au niveau de ce que tu veux utiliser ,ensuite obtenir et où.
Cordialement.
-- lSteph
Alors voilà l'explication de ce que je veux faire. Je cherche à faire le classement d'une compétition, mettre 1 à celui qui a le plus de points, 2 au deuxième ... et mettre la même place si j'ai des ex-aequo. J'y arrive, mais comme cette compétition comporte plusieurs manches, je veux répéter ce classement à chaque manche. Au lieu de réécrire 4 fois la même chose, j'aimerais paramétrer ma macro.
Ma fonction entière est:
Public Function ClassementF(ColonneClt)
'En attendant d'arriver à mettre les deux paramètres ColonneScore = "J"
'Classer selon le cumul Cells.Select Selection.Sort Key1:=Range(ColonneScore & "3"), Order1:=xlDescending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal
' Mettre 1 au rang du premier en donnant comme rang le N° de ligne moins 2 Range(ColonneClt & "3").Select ActiveCell.FormulaR1C1 = "=ROW(RC[" & DiffColonne & "])-2"
' Au suivant mettre son N° de ligne -2 s'il est différent du précédent,sinon mettre comme le précédent For Each LaCellule In Range(ColonneClt & "4", ColonneClt & ligne) LaCellule.FormulaR1C1 = "=+IF(RC[" & DiffColonne & "]=R[-1]C[" & DiffColonne & "],R[-1]C,ROW(RC[-1])-2)" Next LaCellule
UDF = User Defined Function ...- Masquer le texte des messages préc édents -
- Afficher le texte des messages précédents -
Merci beaucoup. Mais si un jour j'ai besoin de faire une fonction avec 2 colonnes en paramètre, ça peut se faire? Merci de votre aide
Philippe.R
Bonjour, Regarde du côté de la fonction native d'Excel :
=rang() -- Avec plaisir http://dj.joss.free.fr/trombine.htm Philippe.R Pour se connecter au forum : http://www.excelabo.net/mpfe/connexion.php News://news.microsoft.com/microsoft.public.fr.excel "steph05" a écrit dans le message de news: On 16 déc, 12:32, LSteph wrote:
Bonjour,
J'aimerais savoir s'il est possible de faire une fonction avec deux paramètres. Bien sûr exemple simpliste:
Function hypoth(x As Single, y As Single) As Single hypoth = (x ^ 2 + y ^ 2) ^ (1 / 2) End Function
Public Function ClassementF Attention selon le sens de classement s'il s'agit de classer (tri)une
fonction n'a pas vocation à déplacer des éléments dans une feuille. Une fonction renvoie un résultat. Alors c'est peut-être pour cela que tu ajoutes une sub en dessous
fonction, mais il bugge avant de les lire donc je ne les ai pas écrits
Précisément si tu veux qu'on y voit quelque chose faut tout mettre et dire ce que tu veux faire avec quoi, parce que là "classement" c'est pas tout clair au niveau de ce que tu veux utiliser ,ensuite obtenir et où.
Cordialement.
-- lSteph
Alors voilà l'explication de ce que je veux faire. Je cherche à faire le classement d'une compétition, mettre 1 à celui qui a le plus de points, 2 au deuxième ... et mettre la même place si j'ai des ex-aequo. J'y arrive, mais comme cette compétition comporte plusieurs manches, je veux répéter ce classement à chaque manche. Au lieu de réécrire 4 fois la même chose, j'aimerais paramétrer ma macro.
Ma fonction entière est:
Public Function ClassementF(ColonneClt)
'En attendant d'arriver à mettre les deux paramètres ColonneScore = "J"
'Classer selon le cumul Cells.Select Selection.Sort Key1:=Range(ColonneScore & "3"), Order1:=xlDescending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal
' Mettre 1 au rang du premier en donnant comme rang le N° de ligne moins 2 Range(ColonneClt & "3").Select ActiveCell.FormulaR1C1 = "=ROW(RC[" & DiffColonne & "])-2"
' Au suivant mettre son N° de ligne -2 s'il est différent du précédent,sinon mettre comme le précédent For Each LaCellule In Range(ColonneClt & "4", ColonneClt & ligne) LaCellule.FormulaR1C1 = "=+IF(RC[" & DiffColonne & "]=R[-1]C[" & DiffColonne & "],R[-1]C,ROW(RC[-1])-2)" Next LaCellule
Sub Classement() 'Classer selon le cumul: Score=J, Clt=A ClassementF ("A") End Sub
Merci beaucoup de m'aider!
Bonjour,
Regarde du côté de la fonction native d'Excel :
=rang()
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"steph05" <thibault.stephanie@neuf.fr> a écrit dans le message de
news:96003a39-b5e0-498f-bc79-264872c5b68d@d4g2000prg.googlegroups.com...
On 16 déc, 12:32, LSteph <lecocost...@frite.fr> wrote:
Bonjour,
J'aimerais savoir s'il est possible de faire une fonction avec deux
paramètres.
Bien sûr exemple simpliste:
Function hypoth(x As Single, y As Single) As Single
hypoth = (x ^ 2 + y ^ 2) ^ (1 / 2)
End Function
Public Function ClassementF
Attention selon le sens de classement s'il s'agit de classer (tri)une
fonction n'a pas vocation à déplacer des éléments dans une feuille.
Une fonction renvoie un résultat. Alors c'est peut-être pour cela que tu
ajoutes une sub en dessous
fonction, mais il bugge avant de les lire donc je ne les ai pas écrits
Précisément si tu veux qu'on y voit quelque chose faut tout mettre
et dire ce que tu veux faire avec quoi, parce que là "classement" c'est
pas tout clair au niveau de ce que tu veux utiliser ,ensuite obtenir et
où.
Cordialement.
--
lSteph
Alors voilà l'explication de ce que je veux faire.
Je cherche à faire le classement d'une compétition, mettre 1 à celui
qui a le plus de points, 2 au deuxième ... et mettre la même place si
j'ai des ex-aequo.
J'y arrive, mais comme cette compétition comporte plusieurs manches,
je veux répéter ce classement à chaque manche.
Au lieu de réécrire 4 fois la même chose, j'aimerais paramétrer ma
macro.
Ma fonction entière est:
Public Function ClassementF(ColonneClt)
'En attendant d'arriver à mettre les deux paramètres
ColonneScore = "J"
'Classer selon le cumul
Cells.Select
Selection.Sort Key1:=Range(ColonneScore & "3"),
Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom,
_
DataOption1:=xlSortNormal
' Mettre 1 au rang du premier en donnant comme rang le N° de ligne
moins 2
Range(ColonneClt & "3").Select
ActiveCell.FormulaR1C1 = "=ROW(RC[" & DiffColonne & "])-2"
' Au suivant mettre son N° de ligne -2 s'il est différent du
précédent,sinon mettre comme le précédent
For Each LaCellule In Range(ColonneClt & "4", ColonneClt & ligne)
LaCellule.FormulaR1C1 = "=+IF(RC[" & DiffColonne & "]=R[-1]C[" &
DiffColonne & "],R[-1]C,ROW(RC[-1])-2)"
Next LaCellule
Bonjour, Regarde du côté de la fonction native d'Excel :
=rang() -- Avec plaisir http://dj.joss.free.fr/trombine.htm Philippe.R Pour se connecter au forum : http://www.excelabo.net/mpfe/connexion.php News://news.microsoft.com/microsoft.public.fr.excel "steph05" a écrit dans le message de news: On 16 déc, 12:32, LSteph wrote:
Bonjour,
J'aimerais savoir s'il est possible de faire une fonction avec deux paramètres. Bien sûr exemple simpliste:
Function hypoth(x As Single, y As Single) As Single hypoth = (x ^ 2 + y ^ 2) ^ (1 / 2) End Function
Public Function ClassementF Attention selon le sens de classement s'il s'agit de classer (tri)une
fonction n'a pas vocation à déplacer des éléments dans une feuille. Une fonction renvoie un résultat. Alors c'est peut-être pour cela que tu ajoutes une sub en dessous
fonction, mais il bugge avant de les lire donc je ne les ai pas écrits
Précisément si tu veux qu'on y voit quelque chose faut tout mettre et dire ce que tu veux faire avec quoi, parce que là "classement" c'est pas tout clair au niveau de ce que tu veux utiliser ,ensuite obtenir et où.
Cordialement.
-- lSteph
Alors voilà l'explication de ce que je veux faire. Je cherche à faire le classement d'une compétition, mettre 1 à celui qui a le plus de points, 2 au deuxième ... et mettre la même place si j'ai des ex-aequo. J'y arrive, mais comme cette compétition comporte plusieurs manches, je veux répéter ce classement à chaque manche. Au lieu de réécrire 4 fois la même chose, j'aimerais paramétrer ma macro.
Ma fonction entière est:
Public Function ClassementF(ColonneClt)
'En attendant d'arriver à mettre les deux paramètres ColonneScore = "J"
'Classer selon le cumul Cells.Select Selection.Sort Key1:=Range(ColonneScore & "3"), Order1:=xlDescending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal
' Mettre 1 au rang du premier en donnant comme rang le N° de ligne moins 2 Range(ColonneClt & "3").Select ActiveCell.FormulaR1C1 = "=ROW(RC[" & DiffColonne & "])-2"
' Au suivant mettre son N° de ligne -2 s'il est différent du précédent,sinon mettre comme le précédent For Each LaCellule In Range(ColonneClt & "4", ColonneClt & ligne) LaCellule.FormulaR1C1 = "=+IF(RC[" & DiffColonne & "]=R[-1]C[" & DiffColonne & "],R[-1]C,ROW(RC[-1])-2)" Next LaCellule