Recherche Valeurs Plage de données
Bonjour tout le monde,
Je viens avec une petite question "Méthode" aujourd'hui car je ne sais comment procéder... Sur le fichier ci-joint vous trouverez mon fichier (référez-y vous pour comprendre mes explications
J'aimerai qu'avec les Textboxs du haut de la première page nous puissions aller chercher les valeurs correspondantes à ces différents critères afin de remplir les "paramètres" présents dans le rectangle blanc en première page.
Le "Sum Lz broche sup" et le "Sum Lz broche inf" permettront de remplir les paramètres Tension et Pression d'application Broche Sup et inf respectivement.
Je tiens à préciser que je sais le faire pour un tableau à double entrée. et aller chercher le bon onglet qui correspond au nom de la prod grâce à la combobox mais je ne sais pas gérer lorsqu'il y a plus de critères... Faut-il passer par des plages de données ? Définir des noms à ces plages ? J'aimerai vos conseils s'ils vous plait.
Merci d'avance pour vos futures réponses.
Kitesurf.
Bonjour Kitesurf.
Certains éléments manquent dans ta demande, comme les recherches de types de broches, les Lzs, Lzi etc.
Mais je te propose une procédure recherchant selon l'épaisseur, avec un type de broche correspond aux colonnes de tes données ("Friction" par exemple) et en prenant Lz par rapport au Lzs.
Bonjour Benoît
Tout d'abord merci de participer à la plus part de mes demandes
Woaw, ce que tu m'as envoyé est vraiment bien, j'ai à le paufiner pour arrivé vraiment à ce que je veux mais je ne comprend pas le sens de :
With Me
For k = 1 To 9
.OLEObjects("Para" & k).Object.Value = shM.Cells(i, j).Offset(k - 1).Value
Next k
End With
End SubPourrais-tu m'expliquer s'il te plait ? Je n'ai jamais utilisé le OLEObjects même si je viens de découvrir que c'est pour faire intéragir des applications entre elles... Les formules de i et j comment les trouves-tu Benoît ? Par tâtonnement ou une méthode ?
Je te remercie beaucoup pour ce que tu m'as déjà apporté
Kitesurf
Voilà le code expliqué.
Option Explicit
Sub alimData()
Dim lzS%, lzI%, ep As Byte, i As Byte, j As Byte, k As Byte
Dim tB$
Dim shM As Worksheet
Set shM = ThisWorkbook.Sheets("Modèle")
With Me
lzS = Val(.TextBox1.Text)
lzI = Val(.TextBox3.Text)
ep = Val(.TextBox2.Text)
tB = .Broche.Text
End With
Select Case tB
Case "Pneumatique"
k = 0
Case "Friction"
k = 5
End Select
'Calcul de i.
'Tes épaisseurs vont de 20 en 20.
'Je divise donc l'épaisseur par 20, ça me donne le placement de l'épaisseur dans la liste, l'emplacement 0 étant le premier.
'Je déduis donc 1 pour une échelle à partir de 0.
'Je multiplie par 9 car chaque épaisseur a 9 entrées de Tension à Pression.
'J'ajoute 3 car la première Tension est située ligne 3.
i = (ep / 20 - 1) * 9 + 3
'Calcul de j.
'Tu as des Lz par pas de 100 jusque 400.
'Donc en divisant ton Lz par 100 tu as le numéro de la colonne.
'J'ajoute 3 car la première colonne est en troisème position.
'Le k est déterminé avant et correspond au nombre de colonnes à décaler entre Pneumatique et Friction.
j = 3 + lzS / 100 + k
With Me
For k = 1 To 9
'OLEObject est un contrôle ActiveX, comme utilisé ici (textbox, combobox).
'J'ai renommé tes textbox avec un indice de 1 à 9, les 9 paramètres disponibles.
'A chaque paramètre je décale la ligne de récupération de k-1 (la première ligne = 0).
.OLEObjects("Para" & k).Object.Value = shM.Cells(i, j).Offset(k - 1).Value
Next k
End With
End SubOn pourrait fonctionner par tâtonnement, mais ton fichier est 'linéaire' donc on gagne du temps.
Re Benoît,
Merci pour ta réponse c'est très clair ! J'ai retrouvé entre temps les formules en cherchant mais merci pour la confirmation. Cependant je restais bloqué de le "Oleobject" et le "Para & K" mais nickel je n'étais pas passé en mode création sur ma page donc je n'avais pas vu que mes Txtbox étaient rénomées...
Merci Infiniment, je peux maintenant me débrouiller pour mes plages de données
A la prochaine
Kitesurf