********************** (pas d'equiv sur les plages discontinues...... dans un module :
Function EQUI_V(plage) For Each c In [plage] If c = Application.Max([plage]) Then EQUI_V = c.Row: Exit For Next End Function
dans la feuille
=INDEX(NOMS;EQUI_V(LIVRE)-2)
Etc
Tatanka
Bonjour magic-dd,
Peut-être une fonction personnalisée.
1) Copier dans un module standard :
Public Function maxi(plage As Range) As String Dim c As Range Dim ligne As Long Application.Volatile For Each c In plage If c.Value = Application.Max(plage) Then ligne = c.Row Exit For End If Next c maxi = Cells(ligne, 1).Value End Function
2) Entrer la formule =maxi(LIVRE) dans une cellule libre.
Serge
"magic-dd" a écrit dans le message de news:
bonjour
j'ai un petit tableau avec des zones nommées (CD,LIVRE,DVD,REVUE)
ces zones font reference par exemple pour CD aux colonnes C,G,K
j'ai donc essayé de faire ma formule qui me permet de savoir qui à le plus grand nombre d'article
Public Function maxi(plage As Range) As String
Dim c As Range
Dim ligne As Long
Application.Volatile
For Each c In plage
If c.Value = Application.Max(plage) Then
ligne = c.Row
Exit For
End If
Next c
maxi = Cells(ligne, 1).Value
End Function
2) Entrer la formule =maxi(LIVRE) dans une cellule libre.
Serge
"magic-dd" <ciolandre@gmail.com> a écrit dans le message de news:
be2f3878-4fc8-45dc-a767-31d1eee22b1d@i39g2000yqm.googlegroups.com...
bonjour
j'ai un petit tableau avec des zones nommées (CD,LIVRE,DVD,REVUE)
ces zones font reference par exemple pour CD aux colonnes C,G,K
j'ai donc essayé de faire ma formule qui me permet de savoir qui à le
plus grand nombre d'article
Public Function maxi(plage As Range) As String Dim c As Range Dim ligne As Long Application.Volatile For Each c In plage If c.Value = Application.Max(plage) Then ligne = c.Row Exit For End If Next c maxi = Cells(ligne, 1).Value End Function
2) Entrer la formule =maxi(LIVRE) dans une cellule libre.
Serge
"magic-dd" a écrit dans le message de news:
bonjour
j'ai un petit tableau avec des zones nommées (CD,LIVRE,DVD,REVUE)
ces zones font reference par exemple pour CD aux colonnes C,G,K
j'ai donc essayé de faire ma formule qui me permet de savoir qui à le plus grand nombre d'article
mais pourquoi est on obligé de passer par du code vba
la seule formule index equiv ne suffit pas
j'essaye de comprendre
JB
http://cjoint.com/?cos0v8tzdR
=INDEX(NOMS;EQUIV(MAX(LIVRE);DECALER(INDIRECT("b3:b11");;4*(EQUIV(VRAI; (NB.SI(DECALER(INDIRECT("b3:b11");;{0;4;8});MAX(LIVRE))>0);0)-1));0)) Valider avec Maj+ctl=rl+entrée
JB
On 14 fév, 18:23, magic-dd wrote:
Merci JB
mais pourquoi est on obligé de passer par du code vba
la seule formule index equiv ne suffit pas
j'essaye de comprendre
http://cjoint.com/?cos0v8tzdR
=INDEX(NOMS;EQUIV(MAX(LIVRE);DECALER(INDIRECT("b3:b11");;4*(EQUIV(VRAI;
(NB.SI(DECALER(INDIRECT("b3:b11");;{0;4;8});MAX(LIVRE))>0);0)-1));0))
Valider avec Maj+ctl=rl+entrée
JB
On 14 fév, 18:23, magic-dd <ciolan...@gmail.com> wrote:
Merci JB
mais pourquoi est on obligé de passer par du code vba
=INDEX(NOMS;EQUIV(MAX(LIVRE);DECALER(INDIRECT("b3:b11");;4*(EQUIV(VRAI; (NB.SI(DECALER(INDIRECT("b3:b11");;{0;4;8});MAX(LIVRE))>0);0)-1));0)) Valider avec Maj+ctl=rl+entrée
JB
On 14 fév, 18:23, magic-dd wrote:
Merci JB
mais pourquoi est on obligé de passer par du code vba
=INDEX(NOMS;EQUIV(MAX(LIVRE);DECALER(INDIRECT("b3:b11");;4*(EQUIV(VRAI; (NB.SI(DECALER(INDIRECT("b3:b11");;{0;4;8});MAX(LIVRE))>0);0)-1));0)) Valider avec Maj+ctl=rl+entrée
JB
On 14 fév, 18:23, magic-dd wrote:
> Merci JB
> mais pourquoi est on obligé de passer par du code vba
> la seule formule index equiv ne suffit pas
> j'essaye de comprendre- Masquer le texte des messages précédents -
On 14 fév, 18:52, JB <boisgont...@hotmail.com> wrote:
http://cjoint.com/?cos0v8tzdR
=INDEX(NOMS;EQUIV(MAX(LIVRE);DECALER(INDIRECT("b3:b11");;4*(EQUIV(VRAI;
(NB.SI(DECALER(INDIRECT("b3:b11");;{0;4;8});MAX(LIVRE))>0);0)-1));0))
Valider avec Maj+ctl=rl+entrée
JB
On 14 fév, 18:23, magic-dd <ciolan...@gmail.com> wrote:
> Merci JB
> mais pourquoi est on obligé de passer par du code vba
> la seule formule index equiv ne suffit pas
> j'essaye de comprendre- Masquer le texte des messages précédents -
=INDEX(NOMS;EQUIV(MAX(LIVRE);DECALER(INDIRECT("b3:b11");;4*(EQUIV(VRAI; (NB.SI(DECALER(INDIRECT("b3:b11");;{0;4;8});MAX(LIVRE))>0);0)-1));0)) Valider avec Maj+ctl=rl+entrée
JB
On 14 fév, 18:23, magic-dd wrote:
> Merci JB
> mais pourquoi est on obligé de passer par du code vba
> la seule formule index equiv ne suffit pas
> j'essaye de comprendre- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Tatanka
Et pour prévoir le coup si ton tableau ne commence pas en A1 :
1) Public Function maxi(plage As Range) As String Dim c As Range Dim ligne As Long Application.Volatile For Each c In plage If c.Value = Application.Max(plage) Then ligne = c.Row Exit For End If Next c maxi = Cells(ligne, Range("NOMS").Column) End Function
2) Dans une cellule libre =maxi(livre)
Serge
"Tatanka" a écrit dans le message de news:
Bonjour magic-dd,
Peut-être une fonction personnalisée.
1) Copier dans un module standard :
Public Function maxi(plage As Range) As String Dim c As Range Dim ligne As Long Application.Volatile For Each c In plage If c.Value = Application.Max(plage) Then ligne = c.Row Exit For End If Next c maxi = Cells(ligne, 1).Value End Function
2) Entrer la formule =maxi(LIVRE) dans une cellule libre.
Serge
"magic-dd" a écrit dans le message de news:
bonjour
j'ai un petit tableau avec des zones nommées (CD,LIVRE,DVD,REVUE)
ces zones font reference par exemple pour CD aux colonnes C,G,K
j'ai donc essayé de faire ma formule qui me permet de savoir qui à le plus grand nombre d'article
Et pour prévoir le coup si ton tableau ne commence pas en A1 :
1)
Public Function maxi(plage As Range) As String
Dim c As Range
Dim ligne As Long
Application.Volatile
For Each c In plage
If c.Value = Application.Max(plage) Then
ligne = c.Row
Exit For
End If
Next c
maxi = Cells(ligne, Range("NOMS").Column)
End Function
2)
Dans une cellule libre =maxi(livre)
Serge
"Tatanka" <garnote3ENLEVER@videotron.ca> a écrit dans le message de news: ewYPzmZrKHA.6004@TK2MSFTNGP04.phx.gbl...
Bonjour magic-dd,
Peut-être une fonction personnalisée.
1) Copier dans un module standard :
Public Function maxi(plage As Range) As String
Dim c As Range
Dim ligne As Long
Application.Volatile
For Each c In plage
If c.Value = Application.Max(plage) Then
ligne = c.Row
Exit For
End If
Next c
maxi = Cells(ligne, 1).Value
End Function
2) Entrer la formule =maxi(LIVRE) dans une cellule libre.
Serge
"magic-dd" <ciolandre@gmail.com> a écrit dans le message de news:
be2f3878-4fc8-45dc-a767-31d1eee22b1d@i39g2000yqm.googlegroups.com...
bonjour
j'ai un petit tableau avec des zones nommées (CD,LIVRE,DVD,REVUE)
ces zones font reference par exemple pour CD aux colonnes C,G,K
j'ai donc essayé de faire ma formule qui me permet de savoir qui à le
plus grand nombre d'article
Et pour prévoir le coup si ton tableau ne commence pas en A1 :
1) Public Function maxi(plage As Range) As String Dim c As Range Dim ligne As Long Application.Volatile For Each c In plage If c.Value = Application.Max(plage) Then ligne = c.Row Exit For End If Next c maxi = Cells(ligne, Range("NOMS").Column) End Function
2) Dans une cellule libre =maxi(livre)
Serge
"Tatanka" a écrit dans le message de news:
Bonjour magic-dd,
Peut-être une fonction personnalisée.
1) Copier dans un module standard :
Public Function maxi(plage As Range) As String Dim c As Range Dim ligne As Long Application.Volatile For Each c In plage If c.Value = Application.Max(plage) Then ligne = c.Row Exit For End If Next c maxi = Cells(ligne, 1).Value End Function
2) Entrer la formule =maxi(LIVRE) dans une cellule libre.
Serge
"magic-dd" a écrit dans le message de news:
bonjour
j'ai un petit tableau avec des zones nommées (CD,LIVRE,DVD,REVUE)
ces zones font reference par exemple pour CD aux colonnes C,G,K
j'ai donc essayé de faire ma formule qui me permet de savoir qui à le plus grand nombre d'article
Et pour pouvoir utiliser la formule dans une feuille quelconque :
1) Public Function maxi(plage As Range) As String Dim c As Range Dim ligne As Long Application.Volatile For Each c In plage If c.Value = Application.Max(plage) Then ligne = c.Row Exit For End If Next c maxi = Worksheets(plage.Parent.Name).Cells(ligne, Range("NOMS").Column) End Function
2) =maxi(livre), =maxi(dvd) ...
Serge
"Tatanka" a écrit dans le message de news: %
Et pour prévoir le coup si ton tableau ne commence pas en A1 :
1) Public Function maxi(plage As Range) As String Dim c As Range Dim ligne As Long Application.Volatile For Each c In plage If c.Value = Application.Max(plage) Then ligne = c.Row Exit For End If Next c maxi = Cells(ligne, Range("NOMS").Column) End Function
2) Dans une cellule libre =maxi(livre)
Serge
"Tatanka" a écrit dans le message de news:
Bonjour magic-dd,
Peut-être une fonction personnalisée.
1) Copier dans un module standard :
Public Function maxi(plage As Range) As String Dim c As Range Dim ligne As Long Application.Volatile For Each c In plage If c.Value = Application.Max(plage) Then ligne = c.Row Exit For End If Next c maxi = Cells(ligne, 1).Value End Function
2) Entrer la formule =maxi(LIVRE) dans une cellule libre.
Serge
"magic-dd" a écrit dans le message de news:
bonjour
j'ai un petit tableau avec des zones nommées (CD,LIVRE,DVD,REVUE)
ces zones font reference par exemple pour CD aux colonnes C,G,K
j'ai donc essayé de faire ma formule qui me permet de savoir qui à le plus grand nombre d'article
Et pour pouvoir utiliser la formule dans une feuille quelconque :
1)
Public Function maxi(plage As Range) As String
Dim c As Range
Dim ligne As Long
Application.Volatile
For Each c In plage
If c.Value = Application.Max(plage) Then
ligne = c.Row
Exit For
End If
Next c
maxi = Worksheets(plage.Parent.Name).Cells(ligne, Range("NOMS").Column)
End Function
2)
=maxi(livre), =maxi(dvd) ...
Serge
"Tatanka" <garnote3ENLEVER@videotron.ca> a écrit dans le message de news: %23netrXarKHA.4492@TK2MSFTNGP05.phx.gbl...
Et pour prévoir le coup si ton tableau ne commence pas en A1 :
1)
Public Function maxi(plage As Range) As String
Dim c As Range
Dim ligne As Long
Application.Volatile
For Each c In plage
If c.Value = Application.Max(plage) Then
ligne = c.Row
Exit For
End If
Next c
maxi = Cells(ligne, Range("NOMS").Column)
End Function
2)
Dans une cellule libre =maxi(livre)
Serge
"Tatanka" <garnote3ENLEVER@videotron.ca> a écrit dans le message de news: ewYPzmZrKHA.6004@TK2MSFTNGP04.phx.gbl...
Bonjour magic-dd,
Peut-être une fonction personnalisée.
1) Copier dans un module standard :
Public Function maxi(plage As Range) As String
Dim c As Range
Dim ligne As Long
Application.Volatile
For Each c In plage
If c.Value = Application.Max(plage) Then
ligne = c.Row
Exit For
End If
Next c
maxi = Cells(ligne, 1).Value
End Function
2) Entrer la formule =maxi(LIVRE) dans une cellule libre.
Serge
"magic-dd" <ciolandre@gmail.com> a écrit dans le message de news:
be2f3878-4fc8-45dc-a767-31d1eee22b1d@i39g2000yqm.googlegroups.com...
bonjour
j'ai un petit tableau avec des zones nommées (CD,LIVRE,DVD,REVUE)
ces zones font reference par exemple pour CD aux colonnes C,G,K
j'ai donc essayé de faire ma formule qui me permet de savoir qui à le
plus grand nombre d'article
Et pour pouvoir utiliser la formule dans une feuille quelconque :
1) Public Function maxi(plage As Range) As String Dim c As Range Dim ligne As Long Application.Volatile For Each c In plage If c.Value = Application.Max(plage) Then ligne = c.Row Exit For End If Next c maxi = Worksheets(plage.Parent.Name).Cells(ligne, Range("NOMS").Column) End Function
2) =maxi(livre), =maxi(dvd) ...
Serge
"Tatanka" a écrit dans le message de news: %
Et pour prévoir le coup si ton tableau ne commence pas en A1 :
1) Public Function maxi(plage As Range) As String Dim c As Range Dim ligne As Long Application.Volatile For Each c In plage If c.Value = Application.Max(plage) Then ligne = c.Row Exit For End If Next c maxi = Cells(ligne, Range("NOMS").Column) End Function
2) Dans une cellule libre =maxi(livre)
Serge
"Tatanka" a écrit dans le message de news:
Bonjour magic-dd,
Peut-être une fonction personnalisée.
1) Copier dans un module standard :
Public Function maxi(plage As Range) As String Dim c As Range Dim ligne As Long Application.Volatile For Each c In plage If c.Value = Application.Max(plage) Then ligne = c.Row Exit For End If Next c maxi = Cells(ligne, 1).Value End Function
2) Entrer la formule =maxi(LIVRE) dans une cellule libre.
Serge
"magic-dd" a écrit dans le message de news:
bonjour
j'ai un petit tableau avec des zones nommées (CD,LIVRE,DVD,REVUE)
ces zones font reference par exemple pour CD aux colonnes C,G,K
j'ai donc essayé de faire ma formule qui me permet de savoir qui à le plus grand nombre d'article