• Initiateur de la discussion Initiateur de la discussion nicolas
  • Date de début Date de début

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 !

N

nicolas

Guest
Bonjour à tous

Voilà: j'ai besoin d'un petit coup de main.

Sur ma worksheet("Calculation"), j'ai un certain nombre de valeurs dont je me sers pour faire un graphique à partir du code VBA.

Les case A1 à AY1 sont les absisses.
les cases A2 à AY2 sont les ordonnées.

Grâce à cette ligne de code, j'affiche dans le textbox "valueMini", le minimum des ordonnées:
ValueMini.Text = WorksheetFunction.Min(Worksheets ("CALCULATION").Range("A2:BY2"))

Mon problème est que j'aimerais afficher dans un textbox "absisse" la valeur de l'absisse correpondant à l'ordonnée minimale trouvée...

Merci pour suggestions!
 
Re...

Excuse cela ne pouvait pas fonctionner, l'instruction n'était pas complète

Worksheets("CALCULATION").Select 'Pour diminuer les longeurs des deux lignes
ValueMini.Text = WorksheetFunction.Min(Range("A2:BY2"))
Absisse.text = WorksheetFunction.Index(Range("A1:BY1"), 1, WorksheetFunction.Match(ValueMini.Text, Range("A2:BY2"), 0))

@+Jean-Marie
 
Bonjour Nicolas, Jean Marie, le forum

tu pourras le faire si tu mets tes ordonnées en A1:AY1 et tes abscisses en A2:AY2, c'est le seul moyen pour utiliser rechercheH. Sinon il faut programmer un code.

Cordialement, A+

ValueMini.Text = WorksheetFunction.Min(Worksheets("CALCULATION").Range("A1:AY1"))
ValueAbscisse.Text WorksheetFunction.HLookup(WorksheetFunction.Min(Worksheets("CALCULATION").Range("A1:AY1")), Worksheets("CALCULATION").Range("A1:AY2"), 2, False)
 
Salut,

J'ai testé la soluce de Jean Marie, elle fonctionne bien. Par contre la plage est A1:AY2 ? sont - ce des textbox ou des shpaes ou autre chose ?

=>Nicolas mets un fichier exemple.
Une approche avec Evaluate, testes ceci Nicolas.
Cela revient à faire un index equiv du minimum des ordonnées, que l'on peut traduire en VBA: lancer le code depuis la feuille active.
Sub Princ()
Dim PLage As Range
Set PLage = [A1:AY2] 'à adpater
With PLage
Msgbox IndexEquiv(.Rows(1), .Rows(2), Mini(.Rows(2)))
End With
End Sub

Function IndexEquiv(PLage1 As Range, PLage2 As Range, Valeur)
IndexEquiv2 = Evaluate("INDEX(" & PLage1.Address & ",MATCH(" & Valeur & "," & PLage2.Address & ",0))")
End Function

Function Mini(PLage As Range)
Mini = Evaluate("Min(" & PLage.Address & ")")
End Function

Il n'y a pas de gestion d'erreur pour me dire quelle erreur tu aurais Nicolas ...


A+++
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

A
Réponses
0
Affichages
1 K
albert
A
Retour