Bonjour à tous,
Je m'appelle Alexandre et je suis nouveau sur ce forum![]()
Je suis actuellement en stage dans une entreprise d'agroalimentaire et j'ai pour mission de synchroniser certaines données de torréfactions de l'entreprise.
Je vous expose mon problème : Des containers de matière première sont pesés et les données de pesée sont collectées dans une feuille excel. Ensuite, les containers sont vidés dans des trappes liées à des machines de torréfaction.
J'ai pensé à mettre en place un système de code à barre pour effectuer le suivi des containers. c'est à dire associer un containers à chaque pesée et à chaque vidange (sachant qu'un containers peut être pesé et vidé plusieurs fois dans la journée).
J'ai donc écrit un code en VBA pour simuler le fonctionnement de la bipette du code à barre et ainsi pouvoir anticiper la collecte des données. Cependant, j'ai des erreurs dans le code que je n'arrive pas à comprendre. J'imagine que c'est des erreurs assez faciles à corriger mais j'ai beau me creuser la tête je ne trouve pas de solutions. (Je ne suis pas très très bon en VBA).
Je voudrais savoir si quelqu'un aurait la gentillesse de m'aider dans mon problème puisque je n'arrive pas à appliquer mon code.
Merci d'avoir pris de votre temps pour lire mon message, bonne journée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Sub Bipette() Dim NBipette As Integer Dim x As Integer 'Lignes utilisées pour le tri de la colonne N°Bipette Dim i As Integer 'Lignes utilisées pour le tri de la colonne N°Vidange x = 1 'Initialise les lignes N°Bipette NBipette = InputBox("Insérez N°Bipette", "N°Bippette", "Valeur N°Bipette") While Cells(x, 2).Value <> "" 'Cherche le nombre de lignes dans la colonne N°Bipette x = x + 1 'Cherche le nombre de lignes dans la colonne N°Bipette Wend 'Cherche le nombre de lignes dans la colonne N°Bipette i = x 'Une fois trouvé, attribut x à i, variable ligne N°Vidange qui va permettre d'effectuer un tri depuis la dernière valeur entrée pour éviter les cas où le numéro du container est bien le bon mais que c'était une vidange déjà effectuée bien avant la dernière effectuée par ce même container While Cells(i, 2).Value <> NBipette 'Tant que la valeur de la cellule n'est pas égale à celle de la bipette (C'est cette ligne qui semble bloquer. De plus, j'aimerais bien ajouter ici une condition que i doit être supérieur à 0 mais je pense qu'un OR ne convient pas) i = i - 1 'On regarde la cellule précédente Wend If Cells(i, 2).Value <> Cells(i, 3).Value Then Cells(i, 3) = NBipette 'On attribue à la case de vidange le n°Bipette Else Cells(x + 1, 2) = NBipette 'Sinon on l'attribut à une nouvelle cellule de pesée End If End Sub
Partager