Max d'une ligne

Bonsoir,

Je cherche à récupérer dans mon classeur actif le maximum d'une ligne d'un autre classeur. Je précise que les données peuvent adopter les formes suivantes:

<2,0 ; <2,0 ; <2,0 ; 2,4 ; 3,1 ; <2,0 => max = 3,1

mais pourquoi pas aussi

<2,0 ; <1,9 ; <4,3 => max = <4,3

(J'avais déjà ouvert un sujet similaire pour un max sur une colonne ici.)

L'un d'entre vous pourrait-il me proposer un code VBA pour que je puisse gérer ces types de données ?

Merci d'avance.

Bonjour,

Voici une solution hors contexte : ( A copier dans un module standard)

Sub TrouveMaxi()
Dim Valeur As Variant
Dim Tourne As Long
Dim Lecture As String, Maxi As String
Lecture = InputBox("Chaine à traiter : ", "Saisir la", "<2,0 ; <2,0 ; <2,0 ; 2,4 ; 3,1 ; <2,0 ")
Valeur = Split(Lecture & ";", ";")
For Tourne = 1 To UBound(Valeur)
If Replace(Valeur(Tourne), "<", "") > Maxi Then Maxi = Replace(Valeur(Tourne), "<", "")
Next Tourne
MsgBox "Maxi = :" & Maxi
End Sub

Bonsoir,

Par formule, ça pourrait donner ceci, avec une formule matricielle :

=MAX(SUBSTITUE(A1:F1;"<";"")*1)

Formule matricielle à valider par CTRL + MAJ + ENTREE

Le tout, sous réserve que j'aie bien cerné le problème.

@+

Bonsoir

A tester

Merci à tous !

@ Banzai64: on dirait que tu as fait ce que je voulais, mais pour les colonnes et non les lignes non ? A moins que j'ai mal saisi...

@ thibo: dans ma situation, un code VBA serait beaucoup mieux en fait..

@ Misterno: je regarde ça de plus près demain !

Bonjour

Oui j'ai vu

Fichier modifié qui prend en compte lignes/colonnes

Et surement que j'avais mal compris le problème

A tester

Merci Banzai64 !

A tout hasard, est-il possible de prendre en compte une ligne entière, comme pour les colonnes quand on fait A:A ?

Edit: finalement je rencontre un problème en incorporant la fonction dans mon fichier, lorsque la fonction tourne.

J'obtiens:

Incompatibilité de type sur:

If Nombre < Replace(Tablo(J, K), "<", "") * 1 Then

(nombre est vide au moment de l'erreur...)

Pourquoi ?

Bonjour

m@tix a écrit :

prendre en compte une ligne entière

Oui

=LeMax(28:28)
m@tix a écrit :

je rencontre un problème

Pas la même erreur

essayes ce code

Option Explicit

Function LeMax(Plg As Range)
Dim J As Long
Dim K As Integer
Dim Numlg As Long
Dim NumCl As Integer
Dim Tablo
Dim Nombre

  Tablo = Plg
  For J = 1 To UBound(Tablo)
    For K = 1 To UBound(Tablo, 2)
      If Tablo(J, K) <> "" Then
        If Nombre < Replace(Tablo(J, K), "<", "") * 1 Then
          Numlg = J
          NumCl = K
          Nombre = Replace(Tablo(J, K), "<", "") * 1
        End If
      End If
    Next K
  Next J
  If Numlg > 0 Then Nombre = Tablo(Numlg, NumCl)
  LeMax = Nombre
End Function

Merci beaucoup ! J'ai testé ça rapidement, ça m'a l'air impec cette fois-ci ! Je reposterai en cas de souci

Rechercher des sujets similaires à "max ligne"