[VBA] Recherche, comparaison et sélection de valeurs
Bonjour à toutes, à tous et le forum !
Je travaille actuellement sur un projet d'automatisation des fichiers Excel de vérifications d'instrument de mesure. Etant le plus jeune et le plus "dégourdit" en Excel / Informatique j'ai reçu la charge de se projet.
Je veux réaliser ceci :
L'utilisateur rentre le numéro d'identification de la balance.
La macro réalise ceci :
- Rentrer la plage maximale de la balance à l'endroit prévue à cette effet. (Etat : Validé),
- Rentrer les valeurs nominales des mesures à réaliser pour la vérification (Etat : Validé),
- Récupérer les valeurs réelles (des étalons de poids) pour la vérification (Etat : Galère total !)
1 - A l'heure actuel je suis bloqué sur cette partie. Pour expliquer plus simplement, prenons pour exemple une valeur nominale de vérification de 5g.
Ce que la macro doit faire :
La macro doit venir chercher la valeur réelle de l'étalon de vérification. Pour notre cas, la macro ouvre l'onglet "Masse étalon", elle doit pouvoir venir chercher tous les étalons ayant une masse nominale de 5g. Puis réaliser une comparaison tel que :
- Poids étalon 1 : 5.006 g
- Poids étalon 2 : 5.001g.
Le poids étalon 2 est donc meilleure au niveau de sa valeur réelle.
La macro doit donc prendre cet étalon, avec cette valeur réelle. C'est cette valeur réelle qui doit être placé dans la cellule D47 de l'onglet "Balance".
2 - La difficulté au dessus. Je dois pouvoir prévoir des modèles. C'est à dire, si la Balance nommé XYZ à une valeur de vérification à 700g. Alors la macro doit pouvoir chercher les 2 meilleurs poids étalons de 500g et de 200g, en faire la somme et rentrer cela dans la bonne cellule.
Je vous met en pièce jointe mon fichier Excel, qui j'espère vous aidera a comprendre ce que je souhaite.
Voici ce que j'ai fait à l'heure actuelle niveau Macro :
Sub Mesure_Verification_Balance()
a = InputBox("Rentrer le N° d'identification de la balance à vérifier : ")
Sheets("Référencement balance").Activate
Dim b As Range
Set b = Range("A1:A56660").Find(a, , xlValues, xlWhole, , , False)
If b Is Nothing Then MsgBox "Ce numéro d'identification n'existe pas"
C = Columns(1).Find(a, LookIn:=xlValues, lookat:=xlPart).Row
d = Cells(C, 4).Value
e = Cells(C, 5).Value
f = Cells(C, 6).Value
g = Cells(C, 7).Value
h = Cells(C, 8).Value
i = Cells(C, 9).Value
Sheets("Balance").Activate
Range("M24") = d
Range("C47") = e
Range("C48") = f
Range("C49") = g
Range("C50") = h
Range("C51") = i
###########A partir d'ici je suis bloqué#########
Sheets("Masse étalon").Activate
For k = 1 To 50
j = ActiveSheet.Columns(2).Find(e, LookIn:=xlValues, lookat:=xlWhole).Row
MsgBox j
Range(Cells(k, 6)) = j
Next
End Sub
bonjour
il semble que tu fasses trop compliqué
pourquoi du VBA ?
pourquoi rechercher 5.001 au lieu de 5.006 ? la seconde masse étalon peut parfaitement servir à tes étalonnages.
je fais des étalonnages et de la gestion de parc depuis 1999, sans besoin de compliquer.
faire simple est gage de fiabilité (c'est que cherche ton entreprise, pas seulement en prod mais aussi dans les processussupport comme la métrologie)
Bonjour jmd et merci de ta réponse.
Du VBA pour créer une macro permettant de travailler en tableau modifiable. Si une masse étalon ou une balance n'existe plus ou alors est ajoutée la macro permettra toujours de réaliser ce que je souhaite sur le fichier Excel.
J'ai déjà réalisé un fichier avec des formules, mais tout est fixe. En modifiant le tableau (ajout ou suppression de ligne) plus rien ne vas marcher, enfin une partie conséquente. Pour moi ce cas est un fichier à court terme qui sera compliqué comme tu dis.
Alors qu'une macro accompagné de commentaire pourra durer dans le temps.
Je sais très bien que la deuxième masse étalon pourrait largement suffire. Mais ce n'est pas le but de ma macro ^^
re
bon alors je n'ai rien compris à ton besoin
regarde comment font les labos de métrolo, et comment fonctionnent les logiciels de gestion de parc (j'en ai un).
qu'est-ce qu'une "valeur de vérification" ?
Bonsoir,
je suis en aucun cas de créer un logiciel de gestion de parc.
Mais juste une macro permettant de sortir les valeurs telles des étalons ainsi que leurs référence
re
sur 15 entreprises chez qui j'ai implanté de la métrologie (les étalonnages, pas seulement la gestion de parc), on n'a jamais eu un tel besoin.
pourquoi cette particularité chez toi ? quel type d'étalonnage avez-vous ?
non pas que je remette en cause ton principe, mais :
1/ je suis curieux pour tout ce qui touche mon métier. Apprendre une nouvelle méthode est génial.
2/ si le forum comprend ce qui vous motive, on a plus de chances de pouvoir vous aider
amitiés
Bonsoir jmd,
A l'heure actuelle je n'ai réalisé que 3 semaines au sein de l'entreprise.
Ce que j'ai pu en conclure au vu de ce que j'ai eu et/ou demandé en informations :
- Ils veulent utiliser les meilleurs étalons.
- Par contre lors d'une vérification ils ne prennent pas forcément le meilleur.
Conclusion : Je suis d'accord avec vous sur le principe de vérification et de leurs gestion détalons.
Axe de de progression : Demander de plus ample informations pour comprendre leurs démarches et les justifier.
re
en effet, le "meilleur" étalon est, selon les cas, celui qui présente le plus petit intervalle de tolérance ou bien celui qui a été lui-même étalonné le plus récemment, ou bine encore celui qu'on ne sort qu'une fois par an.
règle générale : la procédure ou le mode op d'étalonnage (d'une balance par ex) doit indiquer les étalons. Donc on n'a pas trop le choix le jour où il faut étalonner la balance.
S'il est écrit "à 50% de la portée avec étalon à 0.2 g" et que la balance va au 1 kg, alors il faudra sortir un étalon de 500g, On poura prendre un étalon de 500,9 g +/- 0.2g ou un de 499.1 +/- 0.2 g. c'est sans importance.
note que par ex pour les étalonnage de micormètres d'intérieur, on utilise des bagues étalons qui n'ont jamais le diamètre pile-poil.