Macro de comparaison ac douchette pour EAN13

Edaine Messages postés 63 Statut Membre -  
Edaine Messages postés 63 Statut Membre -
Bonjour,

voilà j'ai rédigé une macro qui permet de comparer l'ean13 que j'entre dans la colonne A avec une base de donnée située dans une autre feuille :

Sub Comparaison(ligne As Byte)

Dim ean1 As String
Dim Erreur As Boolean 'vrai ou faux
Dim Quantité As Byte   'en espérant qu'il n'y ait pas plus de 255 références sur une palette !!!! ;)
Dim Différence As Integer 'Différence entre le nbre de pdt attendu et le nbr de pdt présent
Dim Nombre As Integer  'insertion d'une fonction pour
'éviter l'erreur du fait que les ean sont stockés sous forme de texte et non de nombre
Dim ligne2 As Integer 'Ligne feuille de contrôle
Dim ligne3 As Integer 'ligne pour feuille extraction
Dim NombreErreur As Byte 'En espérant qu'il n'y ait pas plus de 255 erreurs ??!!! :OO
Dim Total As Integer 'Colis total

        Total = 0
        ligne2 = 10
        NombreErreur = 0
        ean1 = Sheets("Douchette").Cells(ligne, 1).Value
                                
                                ligne3 = 1
                                Erreur = True  'on démarre avec une erreur qu'on enlève si le pdt est bien présent/attendu
                                                                 
                                                                 
                                    'On démarre une boucle pour voir si les gencodes sont bien dans extraction cia flu
                                
                                    While Sheets("Extraction cia flu").Cells(ligne3, 1).Value <> "" And Erreur = True
                                    ligne3 = ligne3 + 1
                                    
                                                
                                                If Sheets("Extraction cia flu").Cells(ligne3, 1).Value = ean1 Then
                                                Erreur = False  'si il le trouve, il n'y a pas d'erreur
                                                End If
                                                
                                    'On termine la boucle quand on a la réponse
                                    
                                    Wend
                                    
                         'On va demander la quantité que le gencode soit manquant ou non pour comptabiliser dans le tableau feuille de contrôle
                         
                         Quantité = Application.InputBox("Quelle quantité?", "Produit  " & ean1)
                         
                                    Select Case Quantité
                                            Case False
                                                MsgBox "Vous avez annulé"
                                                Exit Sub
                                            Case Else
                                                MsgBox "Quantité entrée " & Quantité
                                                
                                    End Select
                            
                         Sheets("Douchette").Cells(ligne, 18).Value = Quantité
                                                
                                                'si il n'y a pas d'erreur alors on fait la différence entre la quantité entrée et la quantité attendue
                                                If Erreur = False Then
                                                Nombre = Sheets("Extraction cia flu").Cells(ligne3, 6).Value
                                                Différence = Quantité - Nombre
                                                
                                                        'Si la différence n'est pas égale à zéro on mets une alerte
                                                        If Différence = 0 Then
                                                                                                                
                                                        MsgBox ("Quantité Ok")
                                                        Sheets("Douchette").Cells(ligne, 19).Value = Quantité
                                                        
                                                        Else: MsgBox ("Quantité attendue " & vbCrLf & vbTab & Nombre)
                                                        
                                                                If Différence < 0 Then
                                                                'Note la quantité manquante (0 - Différence permet de noter la valeur absolue du nombre)
                                                                Sheets("Douchette").Cells(ligne, 22).Value = 0 - Différence
                                                                Sheets("Douchette").Cells(ligne, 19).Value = Quantité
                                                                Else:
                                                                'Note la quantité en excédent
                                                                Sheets("Douchette").Cells(ligne, 21).Value = Différence
                                                                Sheets("Douchette").Cells(ligne, 19).Value = Quantité - Différence
                                                                End If
                                                        End If
                                                        
                                                Else: NombreErreur = NombreErreur + 1
                                                MsgBox (" Produit Non attendu : " & vbCrLf & vbTab & ean1 & vbCrLf & "!!!")
                                                
                                                'Reporte la quantité en excédent(Si le gencode n'est pas du tout attendu)
                                                Sheets("Douchette").Cells(ligne, 20).Value = Quantité
                                                
                                                End If
                                                
                                                
                                                
                                                
                                              
         
        
End Sub


Désolée pour la lisibilité du code :s.

Quand on execute la macro (qui est liée un un code de feuillle, qui permet de la lancer dès qu'il y a modification dans cellule) on obtient une inputBox demandant la quantité,

Je voudrai mettre une option.

Si on se remet dans le contexte,

un employé va scanner un code barre, HOP une fenetre s'affiche pour la quantité, il rentre le nombre, valide et passe au prochain.

J'aimerai savoir si il était possible de faire :
L'employé scan son produit, l'inputbox s'ouvre et l'employé scan un autre produit, qui va s'incrire dans l'input box. Au lieu d'avoir une erreur "overflow", je voudrai qu'il détecte que la quantité rentrée est en faite un ean13 car il contient 13 caractères.

Je ne sais pas si je peux me baser sur ma macro actuelle ou si je dois tout réécrire... :s

Merci d'avance !
A voir également:

1 réponse

Edaine Messages postés 63 Statut Membre
 
Je demande trop compliquée ou je ne suis pas assez claire ? ^^'
Merci d'avance !
0