Cette macro trouve les «coordonnées» du maximum
de la plage nommée «mat».
Exemple :
À partir de ce tableau :
1 34 4
4 12 78
8 32 47
situé n'importe où sur une feuille de calcul,
la macro va trouver 2 et 3.
Ma question est de savoir si on peut procéder plus
simplement (VLOOKUP, MATCH,FIND ...)
Sub EmplacementDuMaximum()
Set ici = Range("mat")
LC = ici(1, 1).Row
CC = ici(1, 1).Column
maxi = WorksheetFunction.Max(ici)
For Each c In ici
If c.Value = maxi Then
cx = c.Row - LC + 1
cy = c.Column - CC + 1
Exit For
End If
Next
MsgBox "Coordonnées : " & cx & " " & cy
End Sub
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
Ellimac
Bonjour Serge,
Sub Toto() m = Application.Max(Range("mat")) Range("mat").Find(m).Activate lf = ActiveCell.Row cf = ActiveCell.Column ld = Range("mat").Row cd = Range("mat").Column decalligne = lf - ld + 1 decalcol = cf - cd + 1 End Sub
Camille
-----Message d'origine----- Bonsoir,
Cette macro trouve les «coordonnées» du maximum de la plage nommée «mat». Exemple : À partir de ce tableau : 1 34 4 4 12 78 8 32 47 situé n'importe où sur une feuille de calcul, la macro va trouver 2 et 3. Ma question est de savoir si on peut procéder plus simplement (VLOOKUP, MATCH,FIND ...)
Sub EmplacementDuMaximum() Set ici = Range("mat") LC = ici(1, 1).Row CC = ici(1, 1).Column maxi = WorksheetFunction.Max(ici) For Each c In ici If c.Value = maxi Then cx = c.Row - LC + 1 cy = c.Column - CC + 1 Exit For End If Next MsgBox "Coordonnées : " & cx & " " & cy End Sub
Serge
.
Bonjour Serge,
Sub Toto()
m = Application.Max(Range("mat"))
Range("mat").Find(m).Activate
lf = ActiveCell.Row
cf = ActiveCell.Column
ld = Range("mat").Row
cd = Range("mat").Column
decalligne = lf - ld + 1
decalcol = cf - cd + 1
End Sub
Camille
-----Message d'origine-----
Bonsoir,
Cette macro trouve les «coordonnées» du maximum
de la plage nommée «mat».
Exemple :
À partir de ce tableau :
1 34 4
4 12 78
8 32 47
situé n'importe où sur une feuille de calcul,
la macro va trouver 2 et 3.
Ma question est de savoir si on peut procéder plus
simplement (VLOOKUP, MATCH,FIND ...)
Sub EmplacementDuMaximum()
Set ici = Range("mat")
LC = ici(1, 1).Row
CC = ici(1, 1).Column
maxi = WorksheetFunction.Max(ici)
For Each c In ici
If c.Value = maxi Then
cx = c.Row - LC + 1
cy = c.Column - CC + 1
Exit For
End If
Next
MsgBox "Coordonnées : " & cx & " " & cy
End Sub
Sub Toto() m = Application.Max(Range("mat")) Range("mat").Find(m).Activate lf = ActiveCell.Row cf = ActiveCell.Column ld = Range("mat").Row cd = Range("mat").Column decalligne = lf - ld + 1 decalcol = cf - cd + 1 End Sub
Camille
-----Message d'origine----- Bonsoir,
Cette macro trouve les «coordonnées» du maximum de la plage nommée «mat». Exemple : À partir de ce tableau : 1 34 4 4 12 78 8 32 47 situé n'importe où sur une feuille de calcul, la macro va trouver 2 et 3. Ma question est de savoir si on peut procéder plus simplement (VLOOKUP, MATCH,FIND ...)
Sub EmplacementDuMaximum() Set ici = Range("mat") LC = ici(1, 1).Row CC = ici(1, 1).Column maxi = WorksheetFunction.Max(ici) For Each c In ici If c.Value = maxi Then cx = c.Row - LC + 1 cy = c.Column - CC + 1 Exit For End If Next MsgBox "Coordonnées : " & cx & " " & cy End Sub
Serge
.
AV
Sub zz_EmplacementDuMaximum() cx = [min(if(maths=max(maths),row(maths),""""))] cy = [min(if(maths=max(maths),column(maths),""""))] MsgBox "Coordonnées : " & cx & " " & cy End Sub
AV
Sub zz_EmplacementDuMaximum()
cx = [min(if(maths=max(maths),row(maths),""""))]
cy = [min(if(maths=max(maths),column(maths),""""))]
MsgBox "Coordonnées : " & cx & " " & cy
End Sub
Sub zz_EmplacementDuMaximum() cx = [min(if(maths=max(maths),row(maths),""""))] cy = [min(if(maths=max(maths),column(maths),""""))] MsgBox "Coordonnées : " & cx & " " & cy End Sub
AV
garnote
Ouais, il suffisait d'y penser ! Serge, mon prof d'informatique m'a dit que c'était facile de programmer VBA. Est-ce exact ? Effectivement, c'est vraiment très simple. Voici d'ailleurs un exemple qui devrait vous convaincre :
Sub zz_EmplacementDuMaximum() cx = [min(if(maths=max(maths),row(maths),""""))] cy = [min(if(maths=max(maths),column(maths),""""))] MsgBox "Coordonnées : " & cx & " " & cy End Sub
:-)))
Serge
Ouais, il suffisait d'y penser !
Serge, mon prof d'informatique m'a dit que
c'était facile de programmer VBA.
Est-ce exact ?
Effectivement, c'est vraiment très simple.
Voici d'ailleurs un exemple qui devrait vous convaincre :
Sub zz_EmplacementDuMaximum()
cx = [min(if(maths=max(maths),row(maths),""""))]
cy = [min(if(maths=max(maths),column(maths),""""))]
MsgBox "Coordonnées : " & cx & " " & cy
End Sub
Ouais, il suffisait d'y penser ! Serge, mon prof d'informatique m'a dit que c'était facile de programmer VBA. Est-ce exact ? Effectivement, c'est vraiment très simple. Voici d'ailleurs un exemple qui devrait vous convaincre :
Sub zz_EmplacementDuMaximum() cx = [min(if(maths=max(maths),row(maths),""""))] cy = [min(if(maths=max(maths),column(maths),""""))] MsgBox "Coordonnées : " & cx & " " & cy End Sub
:-)))
Serge
ChrisV
Bonjour Serge,
Ou encore, avec la plage de données nommée ici Zn...
Sub recMax() Dim c As Range For Each c In Range("Zn") If c.Value = Application.Max(Range("Zn")) Then _ MsgBox c.Address: Exit For Next c End Sub
ou adaptation d'une matricielle...
Sub recMax() MsgBox [ADDRESS(MIN(IF(Zn=MAX(Zn),ROW(Zn))),MIN(IF(Zn=MAX(Zn),COLUMN(Zn))))] End Sub
ChrisV
"garnote" a écrit dans le message de news: IayNb.30911$
Bonsoir,
Cette macro trouve les «coordonnées» du maximum de la plage nommée «mat». Exemple : À partir de ce tableau : 1 34 4 4 12 78 8 32 47 situé n'importe où sur une feuille de calcul, la macro va trouver 2 et 3. Ma question est de savoir si on peut procéder plus simplement (VLOOKUP, MATCH,FIND ...)
Sub EmplacementDuMaximum() Set ici = Range("mat") LC = ici(1, 1).Row CC = ici(1, 1).Column maxi = WorksheetFunction.Max(ici) For Each c In ici If c.Value = maxi Then cx = c.Row - LC + 1 cy = c.Column - CC + 1 Exit For End If Next MsgBox "Coordonnées : " & cx & " " & cy End Sub
Serge
Bonjour Serge,
Ou encore, avec la plage de données nommée ici Zn...
Sub recMax()
Dim c As Range
For Each c In Range("Zn")
If c.Value = Application.Max(Range("Zn")) Then _
MsgBox c.Address: Exit For
Next c
End Sub
ou adaptation d'une matricielle...
Sub recMax()
MsgBox
[ADDRESS(MIN(IF(Zn=MAX(Zn),ROW(Zn))),MIN(IF(Zn=MAX(Zn),COLUMN(Zn))))]
End Sub
ChrisV
"garnote" <rien@absent.net> a écrit dans le message de news:
IayNb.30911$6N3.8019@charlie.risq.qc.ca...
Bonsoir,
Cette macro trouve les «coordonnées» du maximum
de la plage nommée «mat».
Exemple :
À partir de ce tableau :
1 34 4
4 12 78
8 32 47
situé n'importe où sur une feuille de calcul,
la macro va trouver 2 et 3.
Ma question est de savoir si on peut procéder plus
simplement (VLOOKUP, MATCH,FIND ...)
Sub EmplacementDuMaximum()
Set ici = Range("mat")
LC = ici(1, 1).Row
CC = ici(1, 1).Column
maxi = WorksheetFunction.Max(ici)
For Each c In ici
If c.Value = maxi Then
cx = c.Row - LC + 1
cy = c.Column - CC + 1
Exit For
End If
Next
MsgBox "Coordonnées : " & cx & " " & cy
End Sub
Ou encore, avec la plage de données nommée ici Zn...
Sub recMax() Dim c As Range For Each c In Range("Zn") If c.Value = Application.Max(Range("Zn")) Then _ MsgBox c.Address: Exit For Next c End Sub
ou adaptation d'une matricielle...
Sub recMax() MsgBox [ADDRESS(MIN(IF(Zn=MAX(Zn),ROW(Zn))),MIN(IF(Zn=MAX(Zn),COLUMN(Zn))))] End Sub
ChrisV
"garnote" a écrit dans le message de news: IayNb.30911$
Bonsoir,
Cette macro trouve les «coordonnées» du maximum de la plage nommée «mat». Exemple : À partir de ce tableau : 1 34 4 4 12 78 8 32 47 situé n'importe où sur une feuille de calcul, la macro va trouver 2 et 3. Ma question est de savoir si on peut procéder plus simplement (VLOOKUP, MATCH,FIND ...)
Sub EmplacementDuMaximum() Set ici = Range("mat") LC = ici(1, 1).Row CC = ici(1, 1).Column maxi = WorksheetFunction.Max(ici) For Each c In ici If c.Value = maxi Then cx = c.Row - LC + 1 cy = c.Column - CC + 1 Exit For End If Next MsgBox "Coordonnées : " & cx & " " & cy End Sub
Serge
Daniel.M
Hello,
Attention les amis, cela ne fonctionne pas toujours si on a des doublons comme maximum.
La solution alternative si on n'a que des entiers est de constuire un nombre où l'on a multiplié par 1/512 du numéro de colonne (ainsi on a des entrées uniques).
Salutations,
Daniel M.
"garnote" wrote in message news:hizNb.30920$
Ouais, il suffisait d'y penser ! Serge, mon prof d'informatique m'a dit que c'était facile de programmer VBA. Est-ce exact ? Effectivement, c'est vraiment très simple. Voici d'ailleurs un exemple qui devrait vous convaincre :
Sub zz_EmplacementDuMaximum() cx = [min(if(maths=max(maths),row(maths),""""))] cy = [min(if(maths=max(maths),column(maths),""""))] MsgBox "Coordonnées : " & cx & " " & cy End Sub
:-)))
Serge
Hello,
Attention les amis, cela ne fonctionne pas toujours si on a des doublons comme
maximum.
La solution alternative si on n'a que des entiers est de constuire un nombre où
l'on a multiplié par 1/512 du numéro de colonne (ainsi on a des entrées
uniques).
Salutations,
Daniel M.
"garnote" <rien@absent.net> wrote in message
news:hizNb.30920$6N3.25092@charlie.risq.qc.ca...
Ouais, il suffisait d'y penser !
Serge, mon prof d'informatique m'a dit que
c'était facile de programmer VBA.
Est-ce exact ?
Effectivement, c'est vraiment très simple.
Voici d'ailleurs un exemple qui devrait vous convaincre :
Sub zz_EmplacementDuMaximum()
cx = [min(if(maths=max(maths),row(maths),""""))]
cy = [min(if(maths=max(maths),column(maths),""""))]
MsgBox "Coordonnées : " & cx & " " & cy
End Sub
Attention les amis, cela ne fonctionne pas toujours si on a des doublons comme maximum.
La solution alternative si on n'a que des entiers est de constuire un nombre où l'on a multiplié par 1/512 du numéro de colonne (ainsi on a des entrées uniques).
Salutations,
Daniel M.
"garnote" wrote in message news:hizNb.30920$
Ouais, il suffisait d'y penser ! Serge, mon prof d'informatique m'a dit que c'était facile de programmer VBA. Est-ce exact ? Effectivement, c'est vraiment très simple. Voici d'ailleurs un exemple qui devrait vous convaincre :
Sub zz_EmplacementDuMaximum() cx = [min(if(maths=max(maths),row(maths),""""))] cy = [min(if(maths=max(maths),column(maths),""""))] MsgBox "Coordonnées : " & cx & " " & cy End Sub
:-)))
Serge
garnote
L'art est long et la vie est courte !
Serge
"ChrisV" a écrit dans le message de news:
Bonjour Serge,
Ou encore, avec la plage de données nommée ici Zn...
Sub recMax() Dim c As Range For Each c In Range("Zn") If c.Value = Application.Max(Range("Zn")) Then _ MsgBox c.Address: Exit For Next c End Sub
ou adaptation d'une matricielle...
Sub recMax() MsgBox [ADDRESS(MIN(IF(Zn=MAX(Zn),ROW(Zn))),MIN(IF(Zn=MAX(Zn),COLUMN(Zn))))] End Sub
ChrisV
"garnote" a écrit dans le message de news: IayNb.30911$
Bonsoir,
Cette macro trouve les «coordonnées» du maximum de la plage nommée «mat». Exemple : À partir de ce tableau : 1 34 4 4 12 78 8 32 47 situé n'importe où sur une feuille de calcul, la macro va trouver 2 et 3. Ma question est de savoir si on peut procéder plus simplement (VLOOKUP, MATCH,FIND ...)
Sub EmplacementDuMaximum() Set ici = Range("mat") LC = ici(1, 1).Row CC = ici(1, 1).Column maxi = WorksheetFunction.Max(ici) For Each c In ici If c.Value = maxi Then cx = c.Row - LC + 1 cy = c.Column - CC + 1 Exit For End If Next MsgBox "Coordonnées : " & cx & " " & cy End Sub
Serge
L'art est long et la vie est courte !
Serge
"ChrisV" <chrisve@wanadoo.fr> a écrit dans le message de news:
OoAQcZ42DHA.2500@TK2MSFTNGP10.phx.gbl...
Bonjour Serge,
Ou encore, avec la plage de données nommée ici Zn...
Sub recMax()
Dim c As Range
For Each c In Range("Zn")
If c.Value = Application.Max(Range("Zn")) Then _
MsgBox c.Address: Exit For
Next c
End Sub
ou adaptation d'une matricielle...
Sub recMax()
MsgBox
[ADDRESS(MIN(IF(Zn=MAX(Zn),ROW(Zn))),MIN(IF(Zn=MAX(Zn),COLUMN(Zn))))]
End Sub
ChrisV
"garnote" <rien@absent.net> a écrit dans le message de news:
IayNb.30911$6N3.8019@charlie.risq.qc.ca...
Bonsoir,
Cette macro trouve les «coordonnées» du maximum
de la plage nommée «mat».
Exemple :
À partir de ce tableau :
1 34 4
4 12 78
8 32 47
situé n'importe où sur une feuille de calcul,
la macro va trouver 2 et 3.
Ma question est de savoir si on peut procéder plus
simplement (VLOOKUP, MATCH,FIND ...)
Sub EmplacementDuMaximum()
Set ici = Range("mat")
LC = ici(1, 1).Row
CC = ici(1, 1).Column
maxi = WorksheetFunction.Max(ici)
For Each c In ici
If c.Value = maxi Then
cx = c.Row - LC + 1
cy = c.Column - CC + 1
Exit For
End If
Next
MsgBox "Coordonnées : " & cx & " " & cy
End Sub
Ou encore, avec la plage de données nommée ici Zn...
Sub recMax() Dim c As Range For Each c In Range("Zn") If c.Value = Application.Max(Range("Zn")) Then _ MsgBox c.Address: Exit For Next c End Sub
ou adaptation d'une matricielle...
Sub recMax() MsgBox [ADDRESS(MIN(IF(Zn=MAX(Zn),ROW(Zn))),MIN(IF(Zn=MAX(Zn),COLUMN(Zn))))] End Sub
ChrisV
"garnote" a écrit dans le message de news: IayNb.30911$
Bonsoir,
Cette macro trouve les «coordonnées» du maximum de la plage nommée «mat». Exemple : À partir de ce tableau : 1 34 4 4 12 78 8 32 47 situé n'importe où sur une feuille de calcul, la macro va trouver 2 et 3. Ma question est de savoir si on peut procéder plus simplement (VLOOKUP, MATCH,FIND ...)
Sub EmplacementDuMaximum() Set ici = Range("mat") LC = ici(1, 1).Row CC = ici(1, 1).Column maxi = WorksheetFunction.Max(ici) For Each c In ici If c.Value = maxi Then cx = c.Row - LC + 1 cy = c.Column - CC + 1 Exit For End If Next MsgBox "Coordonnées : " & cx & " " & cy End Sub
Serge
Frédo P
Bonsoir Serge Celle ci le fait aussi, si je n'me trompe? Sub Mx() [A5] = [mat].Find(Application.Max([mat]), LookIn:=xlValue).Address End Sub
-- Fred "garnote" a écrit dans le message de news: QyzNb.30925$
L'art est long et la vie est courte !
Serge
"ChrisV" a écrit dans le message de news:
Bonjour Serge,
Ou encore, avec la plage de données nommée ici Zn...
Sub recMax() Dim c As Range For Each c In Range("Zn") If c.Value = Application.Max(Range("Zn")) Then _ MsgBox c.Address: Exit For Next c End Sub
ou adaptation d'une matricielle...
Sub recMax() MsgBox [ADDRESS(MIN(IF(Zn=MAX(Zn),ROW(Zn))),MIN(IF(Zn=MAX(Zn),COLUMN(Zn))))] End Sub
ChrisV
"garnote" a écrit dans le message de news: IayNb.30911$
Bonsoir,
Cette macro trouve les «coordonnées» du maximum de la plage nommée «mat». Exemple : À partir de ce tableau : 1 34 4 4 12 78 8 32 47 situé n'importe où sur une feuille de calcul, la macro va trouver 2 et 3. Ma question est de savoir si on peut procéder plus simplement (VLOOKUP, MATCH,FIND ...)
Sub EmplacementDuMaximum() Set ici = Range("mat") LC = ici(1, 1).Row CC = ici(1, 1).Column maxi = WorksheetFunction.Max(ici) For Each c In ici If c.Value = maxi Then cx = c.Row - LC + 1 cy = c.Column - CC + 1 Exit For End If Next MsgBox "Coordonnées : " & cx & " " & cy End Sub
Serge
Bonsoir Serge
Celle ci le fait aussi, si je n'me trompe?
Sub Mx()
[A5] = [mat].Find(Application.Max([mat]), LookIn:=xlValue).Address
End Sub
--
Fred
"garnote" <rien@absent.net> a écrit dans le message de news:
QyzNb.30925$6N3.7588@charlie.risq.qc.ca...
L'art est long et la vie est courte !
Serge
"ChrisV" <chrisve@wanadoo.fr> a écrit dans le message de news:
OoAQcZ42DHA.2500@TK2MSFTNGP10.phx.gbl...
Bonjour Serge,
Ou encore, avec la plage de données nommée ici Zn...
Sub recMax()
Dim c As Range
For Each c In Range("Zn")
If c.Value = Application.Max(Range("Zn")) Then _
MsgBox c.Address: Exit For
Next c
End Sub
ou adaptation d'une matricielle...
Sub recMax()
MsgBox
[ADDRESS(MIN(IF(Zn=MAX(Zn),ROW(Zn))),MIN(IF(Zn=MAX(Zn),COLUMN(Zn))))]
End Sub
ChrisV
"garnote" <rien@absent.net> a écrit dans le message de news:
IayNb.30911$6N3.8019@charlie.risq.qc.ca...
Bonsoir,
Cette macro trouve les «coordonnées» du maximum
de la plage nommée «mat».
Exemple :
À partir de ce tableau :
1 34 4
4 12 78
8 32 47
situé n'importe où sur une feuille de calcul,
la macro va trouver 2 et 3.
Ma question est de savoir si on peut procéder plus
simplement (VLOOKUP, MATCH,FIND ...)
Sub EmplacementDuMaximum()
Set ici = Range("mat")
LC = ici(1, 1).Row
CC = ici(1, 1).Column
maxi = WorksheetFunction.Max(ici)
For Each c In ici
If c.Value = maxi Then
cx = c.Row - LC + 1
cy = c.Column - CC + 1
Exit For
End If
Next
MsgBox "Coordonnées : " & cx & " " & cy
End Sub
Bonsoir Serge Celle ci le fait aussi, si je n'me trompe? Sub Mx() [A5] = [mat].Find(Application.Max([mat]), LookIn:=xlValue).Address End Sub
-- Fred "garnote" a écrit dans le message de news: QyzNb.30925$
L'art est long et la vie est courte !
Serge
"ChrisV" a écrit dans le message de news:
Bonjour Serge,
Ou encore, avec la plage de données nommée ici Zn...
Sub recMax() Dim c As Range For Each c In Range("Zn") If c.Value = Application.Max(Range("Zn")) Then _ MsgBox c.Address: Exit For Next c End Sub
ou adaptation d'une matricielle...
Sub recMax() MsgBox [ADDRESS(MIN(IF(Zn=MAX(Zn),ROW(Zn))),MIN(IF(Zn=MAX(Zn),COLUMN(Zn))))] End Sub
ChrisV
"garnote" a écrit dans le message de news: IayNb.30911$
Bonsoir,
Cette macro trouve les «coordonnées» du maximum de la plage nommée «mat». Exemple : À partir de ce tableau : 1 34 4 4 12 78 8 32 47 situé n'importe où sur une feuille de calcul, la macro va trouver 2 et 3. Ma question est de savoir si on peut procéder plus simplement (VLOOKUP, MATCH,FIND ...)
Sub EmplacementDuMaximum() Set ici = Range("mat") LC = ici(1, 1).Row CC = ici(1, 1).Column maxi = WorksheetFunction.Max(ici) For Each c In ici If c.Value = maxi Then cx = c.Row - LC + 1 cy = c.Column - CC + 1 Exit For End If Next MsgBox "Coordonnées : " & cx & " " & cy End Sub
Serge
garnote
Je crois que si et un tipeu modifié :
Sub Mx() Set ici = [mat].Find(Application.Max([mat]), LookIn:=xlValue) MsgBox ici.Row & " " & ici.Column End Sub
Serge
"Frédo P" a écrit dans le message de news:
Bonsoir Serge Celle ci le fait aussi, si je n'me trompe? Sub Mx() [A5] = [mat].Find(Application.Max([mat]), LookIn:=xlValue).Address End Sub
-- Fred "garnote" a écrit dans le message de news: QyzNb.30925$
L'art est long et la vie est courte !
Serge
"ChrisV" a écrit dans le message de news:
Bonjour Serge,
Ou encore, avec la plage de données nommée ici Zn...
Sub recMax() Dim c As Range For Each c In Range("Zn") If c.Value = Application.Max(Range("Zn")) Then _ MsgBox c.Address: Exit For Next c End Sub
ou adaptation d'une matricielle...
Sub recMax() MsgBox [ADDRESS(MIN(IF(Zn=MAX(Zn),ROW(Zn))),MIN(IF(Zn=MAX(Zn),COLUMN(Zn))))] End Sub
ChrisV
"garnote" a écrit dans le message de news: IayNb.30911$
Bonsoir,
Cette macro trouve les «coordonnées» du maximum de la plage nommée «mat». Exemple : À partir de ce tableau : 1 34 4 4 12 78 8 32 47 situé n'importe où sur une feuille de calcul, la macro va trouver 2 et 3. Ma question est de savoir si on peut procéder plus simplement (VLOOKUP, MATCH,FIND ...)
Sub EmplacementDuMaximum() Set ici = Range("mat") LC = ici(1, 1).Row CC = ici(1, 1).Column maxi = WorksheetFunction.Max(ici) For Each c In ici If c.Value = maxi Then cx = c.Row - LC + 1 cy = c.Column - CC + 1 Exit For End If Next MsgBox "Coordonnées : " & cx & " " & cy End Sub
Serge
Je crois que si et un tipeu modifié :
Sub Mx()
Set ici = [mat].Find(Application.Max([mat]), LookIn:=xlValue)
MsgBox ici.Row & " " & ici.Column
End Sub
Serge
"Frédo P" <nspfredpost@free.fr> a écrit dans le message de news:
uU43r462DHA.1636@TK2MSFTNGP12.phx.gbl...
Bonsoir Serge
Celle ci le fait aussi, si je n'me trompe?
Sub Mx()
[A5] = [mat].Find(Application.Max([mat]), LookIn:=xlValue).Address
End Sub
--
Fred
"garnote" <rien@absent.net> a écrit dans le message de news:
QyzNb.30925$6N3.7588@charlie.risq.qc.ca...
L'art est long et la vie est courte !
Serge
"ChrisV" <chrisve@wanadoo.fr> a écrit dans le message de news:
OoAQcZ42DHA.2500@TK2MSFTNGP10.phx.gbl...
Bonjour Serge,
Ou encore, avec la plage de données nommée ici Zn...
Sub recMax()
Dim c As Range
For Each c In Range("Zn")
If c.Value = Application.Max(Range("Zn")) Then _
MsgBox c.Address: Exit For
Next c
End Sub
ou adaptation d'une matricielle...
Sub recMax()
MsgBox
[ADDRESS(MIN(IF(Zn=MAX(Zn),ROW(Zn))),MIN(IF(Zn=MAX(Zn),COLUMN(Zn))))]
End Sub
ChrisV
"garnote" <rien@absent.net> a écrit dans le message de news:
IayNb.30911$6N3.8019@charlie.risq.qc.ca...
Bonsoir,
Cette macro trouve les «coordonnées» du maximum
de la plage nommée «mat».
Exemple :
À partir de ce tableau :
1 34 4
4 12 78
8 32 47
situé n'importe où sur une feuille de calcul,
la macro va trouver 2 et 3.
Ma question est de savoir si on peut procéder plus
simplement (VLOOKUP, MATCH,FIND ...)
Sub EmplacementDuMaximum()
Set ici = Range("mat")
LC = ici(1, 1).Row
CC = ici(1, 1).Column
maxi = WorksheetFunction.Max(ici)
For Each c In ici
If c.Value = maxi Then
cx = c.Row - LC + 1
cy = c.Column - CC + 1
Exit For
End If
Next
MsgBox "Coordonnées : " & cx & " " & cy
End Sub
Sub Mx() Set ici = [mat].Find(Application.Max([mat]), LookIn:=xlValue) MsgBox ici.Row & " " & ici.Column End Sub
Serge
"Frédo P" a écrit dans le message de news:
Bonsoir Serge Celle ci le fait aussi, si je n'me trompe? Sub Mx() [A5] = [mat].Find(Application.Max([mat]), LookIn:=xlValue).Address End Sub
-- Fred "garnote" a écrit dans le message de news: QyzNb.30925$
L'art est long et la vie est courte !
Serge
"ChrisV" a écrit dans le message de news:
Bonjour Serge,
Ou encore, avec la plage de données nommée ici Zn...
Sub recMax() Dim c As Range For Each c In Range("Zn") If c.Value = Application.Max(Range("Zn")) Then _ MsgBox c.Address: Exit For Next c End Sub
ou adaptation d'une matricielle...
Sub recMax() MsgBox [ADDRESS(MIN(IF(Zn=MAX(Zn),ROW(Zn))),MIN(IF(Zn=MAX(Zn),COLUMN(Zn))))] End Sub
ChrisV
"garnote" a écrit dans le message de news: IayNb.30911$
Bonsoir,
Cette macro trouve les «coordonnées» du maximum de la plage nommée «mat». Exemple : À partir de ce tableau : 1 34 4 4 12 78 8 32 47 situé n'importe où sur une feuille de calcul, la macro va trouver 2 et 3. Ma question est de savoir si on peut procéder plus simplement (VLOOKUP, MATCH,FIND ...)
Sub EmplacementDuMaximum() Set ici = Range("mat") LC = ici(1, 1).Row CC = ici(1, 1).Column maxi = WorksheetFunction.Max(ici) For Each c In ici If c.Value = maxi Then cx = c.Row - LC + 1 cy = c.Column - CC + 1 Exit For End If Next MsgBox "Coordonnées : " & cx & " " & cy End Sub
Serge
garnote
Oups, j'avais oublié la question initiale. Il fallait trouver la position par rapport au coin supérieur gauche de «mat» !
Serge
"garnote" a écrit dans le message de news: 9NDNb.30968$
Je crois que si et un tipeu modifié :
Sub Mx() Set ici = [mat].Find(Application.Max([mat]), LookIn:=xlValue) MsgBox ici.Row & " " & ici.Column End Sub
Serge
"Frédo P" a écrit dans le message de news:
Bonsoir Serge Celle ci le fait aussi, si je n'me trompe? Sub Mx() [A5] = [mat].Find(Application.Max([mat]), LookIn:=xlValue).Address End Sub
-- Fred "garnote" a écrit dans le message de news: QyzNb.30925$
L'art est long et la vie est courte !
Serge
"ChrisV" a écrit dans le message de news:
Bonjour Serge,
Ou encore, avec la plage de données nommée ici Zn...
Sub recMax() Dim c As Range For Each c In Range("Zn") If c.Value = Application.Max(Range("Zn")) Then _ MsgBox c.Address: Exit For Next c End Sub
"garnote" a écrit dans le message de news: IayNb.30911$
Bonsoir,
Cette macro trouve les «coordonnées» du maximum de la plage nommée «mat». Exemple : À partir de ce tableau : 1 34 4 4 12 78 8 32 47 situé n'importe où sur une feuille de calcul, la macro va trouver 2 et 3. Ma question est de savoir si on peut procéder plus simplement (VLOOKUP, MATCH,FIND ...)
Sub EmplacementDuMaximum() Set ici = Range("mat") LC = ici(1, 1).Row CC = ici(1, 1).Column maxi = WorksheetFunction.Max(ici) For Each c In ici If c.Value = maxi Then cx = c.Row - LC + 1 cy = c.Column - CC + 1 Exit For End If Next MsgBox "Coordonnées : " & cx & " " & cy End Sub
Serge
Oups, j'avais oublié la question initiale.
Il fallait trouver la position par rapport
au coin supérieur gauche de «mat» !
Serge
"garnote" <rien@absent.net> a écrit dans le message de news:
9NDNb.30968$6N3.20957@charlie.risq.qc.ca...
Je crois que si et un tipeu modifié :
Sub Mx()
Set ici = [mat].Find(Application.Max([mat]), LookIn:=xlValue)
MsgBox ici.Row & " " & ici.Column
End Sub
Serge
"Frédo P" <nspfredpost@free.fr> a écrit dans le message de news:
uU43r462DHA.1636@TK2MSFTNGP12.phx.gbl...
Bonsoir Serge
Celle ci le fait aussi, si je n'me trompe?
Sub Mx()
[A5] = [mat].Find(Application.Max([mat]), LookIn:=xlValue).Address
End Sub
--
Fred
"garnote" <rien@absent.net> a écrit dans le message de news:
QyzNb.30925$6N3.7588@charlie.risq.qc.ca...
L'art est long et la vie est courte !
Serge
"ChrisV" <chrisve@wanadoo.fr> a écrit dans le message de news:
OoAQcZ42DHA.2500@TK2MSFTNGP10.phx.gbl...
Bonjour Serge,
Ou encore, avec la plage de données nommée ici Zn...
Sub recMax()
Dim c As Range
For Each c In Range("Zn")
If c.Value = Application.Max(Range("Zn")) Then _
MsgBox c.Address: Exit For
Next c
End Sub
"garnote" <rien@absent.net> a écrit dans le message de news:
IayNb.30911$6N3.8019@charlie.risq.qc.ca...
Bonsoir,
Cette macro trouve les «coordonnées» du maximum
de la plage nommée «mat».
Exemple :
À partir de ce tableau :
1 34 4
4 12 78
8 32 47
situé n'importe où sur une feuille de calcul,
la macro va trouver 2 et 3.
Ma question est de savoir si on peut procéder plus
simplement (VLOOKUP, MATCH,FIND ...)
Sub EmplacementDuMaximum()
Set ici = Range("mat")
LC = ici(1, 1).Row
CC = ici(1, 1).Column
maxi = WorksheetFunction.Max(ici)
For Each c In ici
If c.Value = maxi Then
cx = c.Row - LC + 1
cy = c.Column - CC + 1
Exit For
End If
Next
MsgBox "Coordonnées : " & cx & " " & cy
End Sub
"garnote" a écrit dans le message de news: IayNb.30911$
Bonsoir,
Cette macro trouve les «coordonnées» du maximum de la plage nommée «mat». Exemple : À partir de ce tableau : 1 34 4 4 12 78 8 32 47 situé n'importe où sur une feuille de calcul, la macro va trouver 2 et 3. Ma question est de savoir si on peut procéder plus simplement (VLOOKUP, MATCH,FIND ...)
Sub EmplacementDuMaximum() Set ici = Range("mat") LC = ici(1, 1).Row CC = ici(1, 1).Column maxi = WorksheetFunction.Max(ici) For Each c In ici If c.Value = maxi Then cx = c.Row - LC + 1 cy = c.Column - CC + 1 Exit For End If Next MsgBox "Coordonnées : " & cx & " " & cy End Sub