VBA : rechercher la valeur max d'une plage variable

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

david84

XLDnaute Barbatruc
Bonjour,
la macro présente dans le fichier permet de rechercher la valeur max de la 1ère colonne. Comment l'adapter pour étendre sa sélection à la plage de la dernière cellule non vide de la zone (correspondant à la sélection obtenue par les touches Ctrl, Maj et entrée du clavier) ?
J'arrive à obtenir cette zone en me servant de l'enregistreur de macro mais je n'arrive pas ensuite à l'intégrer dans le code de la macro existante :
Sub UseFunction()
Dim myRange As Range
Dim reponse As String
Set myRange = Worksheets("feuil1").Range("A1:A" & Range("A65000").End(xlUp).Row)
reponse = Application.WorksheetFunction.Max(myRange)
MsgBox "la valeur max est " & reponse
End Sub
Merci pour vos réponses et précisions, explications éventuelles me permettant de comprendre la démarche.
David
 

Pièces jointes

Re : VBA : rechercher la valeur max d'une plage variable

re, david plutôt comme cela..

Code:
Sub Us()
    Dim myRange As Range
    Dim reponse As String
    Range("A1").Select
    Set myRange = Range(Selection, ActiveCell.SpecialCells(xlLastCell))
        reponse = Application.WorksheetFunction.Max(myRange)
    MsgBox "la valeur max est " & reponse
End Sub
 
Re : VBA : rechercher la valeur max d'une plage variable

Re,
oui Laetitia, ta 2ème proposition répond à ma demande🙂.
En fait, je ne savais pas comment incorporer le code fourni par l'enregistreur de macro dans la macro initiale. Je m'aperçois que je n'étais pas loin mais ce n'était pas bon.
J'ai d'ailleurs modifié légèrement en enlevant le Range("A1").Select :
Sub Us()
Dim myRange As Range
Dim reponse As String

Set myRange = Range("A1", ActiveCell.SpecialCells(xlLastCell))
reponse = Application.WorksheetFunction.Max(myRange)
MsgBox "la valeur max est " & reponse
End Sub

Est-ce mieux ou pas ?
Merci encore et à la prochaine😉.
David

Edit : sinon, ta première proposition m'indique la valeur de la cellule placée sur la dernière ligne non vide mais ne prend pas en compte la zone délimitée par la dernière colonne non vide.
 
Dernière édition:
Re : VBA : rechercher la valeur max d'une plage variable

Bonjour David, Laetitia

petite remarque au passage, se méfier avec "xlLastCell", car si cette dernière a été effacée, elle restera toujours comme étant la dernière cellule et ce, jusqu'au prochain enregistrement...

bonne journée
@+
 
Re : VBA : rechercher la valeur max d'une plage variable

Re,
exact Pierrot, je viens de tester pour m'en rendre compte.
Que préconise-tu pour pallier cet inconvénient ?
Dois-t-on inclure en début de macro l'enregistrement préalable de la feuille de calcul ou as-tu une autre solution ?
 
Re : VBA : rechercher la valeur max d'une plage variable

Re,

désolé, pas ouvert ton fichier, j'ai une connexion pas top en ce moment... mais s'il faut déterminer la dernière cellule je procèderais peut être ainsi :

Code:
Dim myRange As Range, y As Integer, z As Byte, reponse As String
y = Cells.Find("*", , xlValues, , 1, 2, 0).Row    'Dernière ligne
z = Cells.Find("*", , xlValues, , 2, 2, 0).Column 'Dernière colonne
Set myRange = Range("A1", Cells(y, z))
reponse = Application.WorksheetFunction.Max(myRange)
MsgBox "la valeur max est " & reponse

@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
194
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
862
Retour