Comparer entre le max de deux tableau (Macro)

Résolu/Fermé
kikou93 Messages postés 416 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 - Modifié par kikou93 le 14/02/2016 à 20:39
kikou93 Messages postés 416 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 - 14 févr. 2016 à 21:20
Bonjour,

Il y a pas longtemps j'ai demandé un macro me permettant de comparer entre chaque case de deux tableaux dormir, me donner le max entre eux :

T1 = max tabeau 1 (de B5 jusqu'à B18)
T2 = max tabeau 2 (de C5 jusqu'à C18)


D'affichier par exemple le message :

Si T1>T2 il affiche "tabeaux 1"
Si T1<T2 il affiche "tabeaux 2"
Si T1=T2 il affiche "tabeaux 1"


ccm81 il m'a beaucoup aidée en me donnant le macro suivant :

Option Explicit

Public Function Compare(T1 As Range, T2 As Range) As String
Dim s As String, nmax1 As Long, nmax2 As Long, n As Long
Application.Volatile
s = "T1 et T2"
nmax1 = Range
nmax2 = T1.Cells.Count
n = 0
Do
n = n + 1
Loop Until n = nmax Or T1.Cells(1, n).Value <> T2.Cells(1, n).Value
If T1.Cells(1, n).Value > T2.Cells(1, n).Value Then
s = "T1"
Else: If T1.Cells(1, n).Value < T2.Cells(1, n).Value Then s = "T2"
End If
Compare = s
End Function


Et je le suis reconnaissant

Maintenant j'ai besoin d'un macro du même type que celui au-dessus qui calcul d'abord le Max de chaque tableau puis il compare entre eux et enfin il affiche le message :

Si T1>T2 il affiche "tabeaux 1"
Si T1<T2 il affiche "tabeaux 2"
Si T1=T2 il affiche "tabeaux 1"


Je demande votre aide car je suis nul en langage VBA

Merci d'avance

Comment ça marche c'est cool! 
      1000 Merci les Amis
A voir également:

1 réponse

ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
14 févr. 2016 à 20:40
Bonjour

Un petit exemple

Public Function Maxi(T1 As Range, T2 As Range) As String
Dim maxT1, maxT2, s As String
Application.Volatile
s = "T1"
maxT1 = Application.WorksheetFunction.Max(T1)
maxT2 = Application.WorksheetFunction.Max(T2)
If maxT2 > maxT1 Then s = "T2"
Maxi = s
End Function

RQ. Tu n'as pas vraiment besoin de macro pour faire ça
T1 en C10:I10 et T2 en C7:I7
=SI(MAX(C10:I10)>MAX(C7:I7);"T2";"T1")

Cdlmnt
0
kikou93 Messages postés 416 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 1
14 févr. 2016 à 21:20
Wow c'était une réponse rapide

Merci ça marche très bien.

à propos de :

RQ. Tu n'as pas vraiment besoin de macro pour faire ça 
T1 en C10:I10 et T2 en C7:I7
=SI(MAX(C10:I10)>MAX(C7:I7);"T2";"T1")


J'utilise déjà cette méthode je voulais juste utiliser le langage VBA

Merci encore pour votre aide
0