max et min non nul sur vba

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 !

bernaroff

XLDnaute Junior
Bonjour,

Je n'arrive pas à trouver la fonction équivalente à la fonction MAX et MIN (NON NUL) sur vba excel:

ma plage de cellule est Range(Cells(34,6),Cells(34,cr_max)) où cr_max est la dernière colonne non vide

je recherche le min (<>0) et le max de cette ligne

de plus, mes ordonnées allant de 0 à 0, 023; mon graphe est tout raplapla (vraiment mince sur la hauteur :-() y'a t'il un moyen de lui redonner la forme ??

Merci pour votre aide
Bernaroff
 
Dernière édition:
Re : max et min non nul sur vba

Bonjour
Il existe Worksheetfunction.Min et .Max pour ces fonctions qui seules peuvent traiter les plages.
Mais il n'existe pratiquement pas une application VBA ou VB6 où je n'utilise également ce que je considère comme un ajout personnel intégré au langage:
VB:
Function Max(ByVal Vr As Variant, ParamArray Vs() As Variant) As Variant
Dim N As Long: For N = 0 To UBound(Vs): If Vs(N) > Vr Then Vr = Vs(N)
   Next N: Max = Vr: End Function
Function Min(ByVal Vr As Variant, ParamArray Vs() As Variant) As Variant
Dim N As Long: For N = 0 To UBound(Vs): If Vs(N) < Vr Then Vr = Vs(N)
   Next N: Min = Vr: End Function
Tiens, juste derrière j'ai aussi ça:
VB:
Property Get PressePapier() As String
Dim DOb As New DataObject
DOb.GetFromClipboard: PressePapier = DOb.GetText
End Property
Property Let PressePapier(Z As String)
Dim DOb As New DataObject
DOb.SetText Z: DOb.PutInClipboard
End Property
Mais ça n'a rien à voir et je m'arrête là.
Cordialement.
 
Re : max et min non nul sur vba

re

merci à vous deux, les deux solutions marchent très bien, seulement comment puis-je faire pour prendre la plus petite valeur non nulle ?
(j'ai opté pour la solution de Pierrot qui est beaucoup plus compréhensible puisque la macro que j'ai écrit doit être la plus accessible possible pour celui qui l'utilisera après moi)

Cdt
Bernaroff
 
Re : max et min non nul sur vba

Re,

pour éviter les valeurs 0 ou absentes :
Code:
Dim t() As Variant, i As Byte, v As Double
t = Application.Transpose(Range("A1:A8"))
For i = LBound(t) To UBound(t)
    If t(i) > 0 And t(i) < IIf(v = 0, 9 ^ 9, v) Then v = t(i)
Next i
MsgBox v
 
Re : max et min non nul sur vba

merci, j'ai fini par trouvé une solution un peu dans le même genre,
Dim min As Integer
min = Application.Max(Range(Cells(34, 6), Cells(34, cr_max)))
For i = 6 To cr_max
If (Cells(34, i).Value <> 0 And Cells(34, i).Value < min) Then
min = Cells(34, i).Value
End If
Next i

Bonne soirée à tous
 
- 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
2
Affichages
742
Réponses
6
Affichages
1 K
Retour