Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

adresse

20 réponses
Avatar
Jacquouille
Bonjour
J'éprouve des difficultés pour trouver l'adresse de la cellule qui contient
le MAX dans un tableau de quelques colonnes et lignes.
Existe-t-il une solutions formule et une autre VBA ?
Mille mercis et bonne soirée à toutes et tous.

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.

10 réponses

1 2
Avatar
garnote
Bonsoir,

Peut-être ainsi :

Sub Adresse()
Dim c As Range, m As Double
m = WorksheetFunction.Max(Range("plage"))
For Each c In Range("plage")
If c = m Then
ad = c.Address
Exit For
End If
Next c
MsgBox ad
End Sub

Serge


"Jacquouille" a écrit dans le message de news:
Bonjour
J'éprouve des difficultés pour trouver l'adresse de la cellule qui contient le MAX dans un tableau de quelques colonnes et
lignes.
Existe-t-il une solutions formule et une autre VBA ?
Mille mercis et bonne soirée à toutes et tous.

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.




Avatar
garnote
Ou bien ceci :

Function adressemax(p As Range) As String
Dim m As Double, c As Range
m = WorksheetFunction.Max(p)
For Each c In p
If c = m Then
ad = c.Address
Exit For
End If
Next c
adressemax = ad
End Function

Serge

"garnote" a écrit dans le message de news:
Bonsoir,

Peut-être ainsi :

Sub Adresse()
Dim c As Range, m As Double
m = WorksheetFunction.Max(Range("plage"))
For Each c In Range("plage")
If c = m Then
ad = c.Address
Exit For
End If
Next c
MsgBox ad
End Sub

Serge


"Jacquouille" a écrit dans le message de news:
Bonjour
J'éprouve des difficultés pour trouver l'adresse de la cellule qui contient le MAX dans un tableau de quelques colonnes et
lignes.
Existe-t-il une solutions formule et une autre VBA ?
Mille mercis et bonne soirée à toutes et tous.

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.








Avatar
garnote
Application.Max(p) ou WorksheetFunction.Max(p)
Je ne sais jamais quelle syntaxe il faut choisir !

Serge



"garnote" a écrit dans le message de news:
Ou bien ceci :

Function adressemax(p As Range) As String
Dim m As Double, c As Range
m = WorksheetFunction.Max(p)
For Each c In p
If c = m Then
ad = c.Address
Exit For
End If
Next c
adressemax = ad
End Function

Serge

"garnote" a écrit dans le message de news:
Bonsoir,

Peut-être ainsi :

Sub Adresse()
Dim c As Range, m As Double
m = WorksheetFunction.Max(Range("plage"))
For Each c In Range("plage")
If c = m Then
ad = c.Address
Exit For
End If
Next c
MsgBox ad
End Sub

Serge


"Jacquouille" a écrit dans le message de news:
Bonjour
J'éprouve des difficultés pour trouver l'adresse de la cellule qui contient le MAX dans un tableau de quelques colonnes
et lignes.
Existe-t-il une solutions formule et une autre VBA ?
Mille mercis et bonne soirée à toutes et tous.

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.












Avatar
michdenis
si tu prends la méthode Find, tu vas avoir la réponse plus facilement

Dim Rg as range, Trouve as Range
set Rg = Worksheets("NomFeuille").range("A1:G25")
LeMax = Application.max(rg)
Trouve = Rg.Find(lemax, xlvalues, xlwhole)
if not trouve is nothing then
msgbox Trouve.Address
end if

"garnote" a écrit dans le message de groupe de discussion :


Application.Max(p) ou WorksheetFunction.Max(p)
Je ne sais jamais quelle syntaxe il faut choisir !

Serge



"garnote" a écrit dans le message de news:

Ou bien ceci :

Function adressemax(p As Range) As String
Dim m As Double, c As Range
m = WorksheetFunction.Max(p)
For Each c In p
If c = m Then
ad = c.Address
Exit For
End If
Next c
adressemax = ad
End Function

Serge

"garnote" a écrit dans le message de news:

Bonsoir,

Peut-être ainsi :

Sub Adresse()
Dim c As Range, m As Double
m = WorksheetFunction.Max(Range("plage"))
For Each c In Range("plage")
If c = m Then
ad = c.Address
Exit For
End If
Next c
MsgBox ad
End Sub

Serge


"Jacquouille" a écrit dans le message de news:

Bonjour
J'éprouve des difficultés pour trouver l'adresse de la cellule qui contient le MAX
dans un tableau de quelques colonnes
et lignes.
Existe-t-il une solutions formule et une autre VBA ?
Mille mercis et bonne soirée à toutes et tous.

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.












Avatar
garnote
Ave,

J'ai du ajouter LookIn:= et Set Trouve = dans ta macro
pour qu'elle fonctionne. J'ai aussi enlevé le xlWhole,
n'ayant pas remarqué de différence dans le résultat obtenu.
J'ai alors voulu transformer ta Sub en Function et ça boguait
à l'instruction Set tr = p.Find(vm, LookIn:=xlValues)
Suite à de nombreuses tentatives infructueuses, pour une raison
que j'ignore, j'ai remplacé vm par CStr(vm) et là j'obtiens les
mêmes résultats qu'avec ta macro !!!
Cependant il ne faut pas que les nombres soient «gigantesques»
ou contiennent trop de décimales.
Un nombre entier ne doit pas contenir plus de 11 chiffres,
mais je ne saurais décrire les limitations de façon plus précise.
Que penses-tu de tout cela ?


Sub adresse()
Dim Rg As Range, Trouve As Range
Set Rg = Worksheets("Feuil1").Range("A1:G25")
lemax = Application.Max(Rg)
Set Trouve = Rg.Find(lemax, LookIn:=xlValues)
If Not Trouve Is Nothing Then
MsgBox Trouve.Address
Else
MsgBox "Ne s'applique pas."
End If
End Sub

Function admax(p As Range) As String
Application.Volatile
vm = Application.Max(p)
Set tr = p.Find(CStr(vm), LookIn:=xlValues)
If Not tr Is Nothing Then
admax = tr.Address
Else
admax = "Ne s'applique pas."
End If
End Function

Serge



"michdenis" a écrit dans le message de news:
si tu prends la méthode Find, tu vas avoir la réponse plus facilement

Dim Rg as range, Trouve as Range
set Rg = Worksheets("NomFeuille").range("A1:G25")
LeMax = Application.max(rg)
Trouve = Rg.Find(lemax, xlvalues, xlwhole)
if not trouve is nothing then
msgbox Trouve.Address
end if

"garnote" a écrit dans le message de groupe de discussion :


Application.Max(p) ou WorksheetFunction.Max(p)
Je ne sais jamais quelle syntaxe il faut choisir !

Serge



"garnote" a écrit dans le message de news:

Ou bien ceci :

Function adressemax(p As Range) As String
Dim m As Double, c As Range
m = WorksheetFunction.Max(p)
For Each c In p
If c = m Then
ad = c.Address
Exit For
End If
Next c
adressemax = ad
End Function

Serge

"garnote" a écrit dans le message de news:

Bonsoir,

Peut-être ainsi :

Sub Adresse()
Dim c As Range, m As Double
m = WorksheetFunction.Max(Range("plage"))
For Each c In Range("plage")
If c = m Then
ad = c.Address
Exit For
End If
Next c
MsgBox ad
End Sub

Serge


"Jacquouille" a écrit dans le message de news:

Bonjour
J'éprouve des difficultés pour trouver l'adresse de la cellule qui contient le MAX
dans un tableau de quelques colonnes
et lignes.
Existe-t-il une solutions formule et une autre VBA ?
Mille mercis et bonne soirée à toutes et tous.

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.















Avatar
Coetera
> J'éprouve des difficultés pour trouver l'adresse de la cellule qui contient le
MAX dans un tableau de quelques colonnes et lignes.
Existe-t-il une solutions formule



*****************

Une matricielle :

­RESSE(MIN(SI(laPlage=MAX(laPlage);LIGNE(laPlage)));MIN(SI((laPlage=MAX(laPlage))*(LIGNE(laPlage)=MIN(SI(laPlage=MAX(laPlage);LIGNE(laPlage))));COLONNE(laPlage))))

Etc
Avatar
michdenis
Ok pour l'oubli de "Set"

Pour ce qui est des paramètres, tu peux utiliser
"Find" sans définir les paramètres mais ce n'est pas
recommandé. Regarde dans l'aide l'explication s'y trouve.

Si la méthode Find, regarde ce texte que j'ai commis à
cette adresse...
http://xlwiki.free.fr/wiki/wakka.php?wiki=RechercheDate

"garnote" a écrit dans le message de groupe de discussion :


Ave,

J'ai du ajouter LookIn:= et Set Trouve = dans ta macro
pour qu'elle fonctionne. J'ai aussi enlevé le xlWhole,
n'ayant pas remarqué de différence dans le résultat obtenu.
J'ai alors voulu transformer ta Sub en Function et ça boguait
à l'instruction Set tr = p.Find(vm, LookIn:=xlValues)
Suite à de nombreuses tentatives infructueuses, pour une raison
que j'ignore, j'ai remplacé vm par CStr(vm) et là j'obtiens les
mêmes résultats qu'avec ta macro !!!
Cependant il ne faut pas que les nombres soient «gigantesques»
ou contiennent trop de décimales.
Un nombre entier ne doit pas contenir plus de 11 chiffres,
mais je ne saurais décrire les limitations de façon plus précise.
Que penses-tu de tout cela ?


Sub adresse()
Dim Rg As Range, Trouve As Range
Set Rg = Worksheets("Feuil1").Range("A1:G25")
lemax = Application.Max(Rg)
Set Trouve = Rg.Find(lemax, LookIn:=xlValues)
If Not Trouve Is Nothing Then
MsgBox Trouve.Address
Else
MsgBox "Ne s'applique pas."
End If
End Sub

Function admax(p As Range) As String
Application.Volatile
vm = Application.Max(p)
Set tr = p.Find(CStr(vm), LookIn:=xlValues)
If Not tr Is Nothing Then
admax = tr.Address
Else
admax = "Ne s'applique pas."
End If
End Function

Serge



"michdenis" a écrit dans le message de news:

si tu prends la méthode Find, tu vas avoir la réponse plus facilement

Dim Rg as range, Trouve as Range
set Rg = Worksheets("NomFeuille").range("A1:G25")
LeMax = Application.max(rg)
Trouve = Rg.Find(lemax, xlvalues, xlwhole)
if not trouve is nothing then
msgbox Trouve.Address
end if

"garnote" a écrit dans le message de groupe de discussion :


Application.Max(p) ou WorksheetFunction.Max(p)
Je ne sais jamais quelle syntaxe il faut choisir !

Serge



"garnote" a écrit dans le message de news:

Ou bien ceci :

Function adressemax(p As Range) As String
Dim m As Double, c As Range
m = WorksheetFunction.Max(p)
For Each c In p
If c = m Then
ad = c.Address
Exit For
End If
Next c
adressemax = ad
End Function

Serge

"garnote" a écrit dans le message de news:

Bonsoir,

Peut-être ainsi :

Sub Adresse()
Dim c As Range, m As Double
m = WorksheetFunction.Max(Range("plage"))
For Each c In Range("plage")
If c = m Then
ad = c.Address
Exit For
End If
Next c
MsgBox ad
End Sub

Serge


"Jacquouille" a écrit dans le message de news:

Bonjour
J'éprouve des difficultés pour trouver l'adresse de la cellule qui contient le MAX
dans un tableau de quelques colonnes
et lignes.
Existe-t-il une solutions formule et une autre VBA ?
Mille mercis et bonne soirée à toutes et tous.

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.















Avatar
Jacquouille
Bonjour
Je prends connaissance de toutes ces réponses avec ravissement.
Mille mercis.
Pour ce qui est de la "grosseur" des nombres, pas de tracas car il s'agit
des points de Tir des élèves...donc, cela sera maximum 100,00. -))
Je vous remercie très sincèrement. Bonne fin de journée
Jacques.

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.

"Jacquouille" a écrit dans le message de
news:
Bonjour
J'éprouve des difficultés pour trouver l'adresse de la cellule qui
contient le MAX dans un tableau de quelques colonnes et lignes.
Existe-t-il une solutions formule et une autre VBA ?
Mille mercis et bonne soirée à toutes et tous.

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.




Avatar
garnote
Pour le plaisir et en m'inspirant de l'approche Coetara, une autre matricielle :
­RESSE(MAX(SI((plage=MAX(plage))*1*NON(ESTVIDE(plage));LIGNE(plage)));MAX(SI((plage=MAX(plage))*1*NON(ESTVIDE(plage));COLONNE(plage))))

Si la plage est vide : Elle renvoie #VALEUR!
Ne considère pas les cellules vides comme des zéros.
Si plusieurs valeurs maximales, donne l'adresse de la dernière
contrairement à celle de Coetera qui donne l'adresse de la première.
Et par exemple si la plage ne contient que deux valeurs, 0 et -12,
elle renvoie la bonne adresse.

Serge, impressionné par la formule de Coetara.



"Jacquouille" a écrit dans le message de news:
Bonjour
Je prends connaissance de toutes ces réponses avec ravissement.
Mille mercis.
Pour ce qui est de la "grosseur" des nombres, pas de tracas car il s'agit des points de Tir des élèves...donc, cela sera
maximum 100,00. -))
Je vous remercie très sincèrement. Bonne fin de journée
Jacques.

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.

"Jacquouille" a écrit dans le message de news:
Bonjour
J'éprouve des difficultés pour trouver l'adresse de la cellule qui contient le MAX dans un tableau de quelques colonnes et
lignes.
Existe-t-il une solutions formule et une autre VBA ?
Mille mercis et bonne soirée à toutes et tous.

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.








Avatar
garnote
> ­RESSE(MAX(SI((plage=MAX(plage))*1*NON(ESTVIDE(plage));LIGNE(plage)));MAX(SI((plage=MAX(plage))*1*NON(ESTVIDE(plage));COLONNE(plage))))



Les 1 sont superfétatoires ;-)

­RESSE(MAX(SI((plage=MAX(plage))*NON(ESTVIDE(plage));LIGNE(plage)));MAX(SI((plage=MAX(plage))*NON(ESTVIDE(plage));COLONNE(plage))))

Ce qui donne une formule beaucoup plus courte !

Si quelqu'un trouve plus court tout en obtenant le même résultat, je serai déconcrissé ;o)))

Serge
1 2