Rechercher une valeur dans un tableau Excel

Fermé
Lew508 Messages postés 7 Date d'inscription mercredi 21 mars 2018 Statut Membre Dernière intervention 22 mars 2018 - 21 mars 2018 à 12:19
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 22 mars 2018 à 18:54
Bonjour,

Je travaille sur la mise en place d'un interface d'aide au pilotage des référence, je ne suis pas pro de VBA, mais j'ai quand même essayé de faire quelque chose sauf que mon code n'est pas bon d'ou ma sollicitation d'aide.

J'ai des référence par ordre croissante dans un tableau excel sur la cellule A, et juste à coté sur la cellule B j'ai attribué des états à ces références. Pilotable = 1 et Non Pilotable = 0.

- J'aimerais que lorsque l’opérateur saisie une référence qui à un état = 1 sur mon formulaire de saisie et appuis sur la touche Entrer, il reçoit un message lui disant : "Référence Pilotable! Attention la moyenne des poids doit être supérieure ou égale au -poids nominal".

- Lorsque l'état de la référence saisie est = 0, il reçoit un message disant: "Référence Non Pilotable"

- Lorsque la référence saisie n'est pas dans mon tableau, il reçoit un message: "Référence non existante dans l'historique"

Pourriez-vous m'aider pour le code VBA svp?

Ci-desous le code que j'ai écrit qui ne fonctionne pas.

Private Sub CommandButton1_Click()
Dim ligne As Integer
For ligne = 2 To 68
If Cells("B2:B68") = 1 Then TextBox "Reference Pilotable"
If Cells("B2:B68") = 0 Then TextBox "Reference Non Pilotable"

End If

End Sub

Merci d'avance.

2 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
21 mars 2018 à 14:01
Bonjour,

Il faut faire une recherche de la reference saisie dans la colonne A et tester la valeur de la cellule B, si n'existe pas message "Référence non existante dans l'historique". Si la ref existe, affichage des messages suivant status 1 ou 0
0
Lew508 Messages postés 7 Date d'inscription mercredi 21 mars 2018 Statut Membre Dernière intervention 22 mars 2018
21 mars 2018 à 14:40
c'est justement ce que je n'arrive pas à faire, mon code n'est pas exact apparemment
0
Bonjour
Voila une modife
A toi de voir
Private Sub CommandButton1_Click()
Dim ligne As Long
For ligne = 2 To 68
If Cells("B" & ligne) = 1 Then TextBox = "Reference Pilotable"
If Cells("B" & ligne) = 0 Then TextBox = "Reference Non Pilotable"
Next
End Sub

A+
Maurice
0
Lew508 Messages postés 7 Date d'inscription mercredi 21 mars 2018 Statut Membre Dernière intervention 22 mars 2018
21 mars 2018 à 14:38
Bonjour Maurice,

Déjà merci pour l'intérêt accordée à mon problème.

Ceci dit, j'ai recopié le code que tu as proposé, mais ça ne marche toujours pas.

lorsque je rentre la référence et j'exécute le bouton un message s'affiche : "erreur d’exécution 55" , ensuite en dessous du message j'ai: "Argument ou appel de procédure incorrect".

j'ai même essayé de le modifier comme suit:

Private Sub CommandButton1_Click()

Dim ligne As Long

For ligne = 2 To 68

If Cells("B2:B68" & ligne) = 1 Then TextBox = "Reference Pilotable"

If Cells("B2:B68" & ligne) = 0 Then TextBox = "Reference Non Pilotable"
Next

End Sub

mais sans succès.
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
21 mars 2018 à 14:54
Bonjour a vous deux
Lew508
j'ai recopié le code que tu as proposé
Pas exactement, relisez attentivement ce que archer a ecrit
Vous devriez aussi relire ce que j'ai ecrit car il manque une recherche dans votre code
0
Lew508 Messages postés 7 Date d'inscription mercredi 21 mars 2018 Statut Membre Dernière intervention 22 mars 2018 > f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024
21 mars 2018 à 16:09
Oui j'ai bien lu ce que tu as écrit, et j'ai répondu en disant que je bloque à ce niveau, d'où ma demande d'aide.
j'aurais bien voulu joindre la feuille sur laquelle je travaille pour que vous puissiez voir.
pour faire simple je fais une petite illustration ci-dessous.

Nom de la feuille: Refs

Colonne A Colonne B

Références Etats

4001 1
4002 0
4003 1
4004 0
4005 1
4006 1
......... ..........
........ .........
........ .........

- Lorsque j'écris mon code comme ceci pour comparer, ça ne fonctionne pas:

Private Sub CommandButton1_Click()
Dim a As Variant
Dim b As Variant

Dim table As Range
Set table = Range(Worksheets("refs").Cells("A2,A68"), Worksheets("refs").Cells("B2, B68"))
a = 1
b = 0
For Each cell In table
If Abs(cell.Value) = a Then MsgBox ("Reference Pilotable Attention moyenne des poids doit être supérieur ou égale au poids nominal")
If Abs(cell.Value) = b Then MsgBox ("Reference Non Pilotable")
Next
End Sub
0
Lew508 Messages postés 7 Date d'inscription mercredi 21 mars 2018 Statut Membre Dernière intervention 22 mars 2018
21 mars 2018 à 16:49
Je viens de modifier quelque petits trucs, mais lorsque j’exécute, quelque soit l'état 1 ou 0, j'ai le message Ref Non Pilotable qui s'affiche.

Private Sub CommandButton1_Click()
Dim a As Variant
Dim b As Variant
Dim table As Range
Set table = Range(Worksheets("Refs Pilotables").Cells(2, 68), Worksheets("Refs Pilotables").Cells(2, 68))
a = 1
b = 0
For Each cell In table
If Abs(cell.Value) = a Then MsgBox ("Reference Pilotable Attention moyenne des poids doit être supérieur ou égale au poids nominal")
If Abs(cell.Value) = b Then MsgBox ("Reference Non Pilotable")

Next
End Sub
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
21 mars 2018 à 18:39
Re,
Si vous saisissez une seule reference, pourquoi faire une boucle sur la colonne B alors que si vous faites une recherche de cette reference vous aurez la ligne et vous recupererez la cellule colonne B de cette ligne.
Dans vote code il n'y a aucune rcherche de reference, pige pas votre facon de voir!!!!!!!!!!!!!!!!!!!!!
0