Excel 2010 : erreur suite scan douchette

Bonjour le forum,

J'ai une feuille de stock où seront au départ intégrées les toutes entrées.

Par la suite un opérateur va avec une douchette code barre scanner les sorties ( on peut également saisir le code article en H1).

Tout se passe bien l'article est scanné le code s'affiche en H1 puis le calcul se fait bien dans le tableau.

Mais à la fin j'ai un message d'erreur :

capture

J'en appelle à votre aide car je galère et je ne connais pas trop le vba. Je souhaiterai qu'une fois la mise à jour dans le tableau effectuée, que la cellule se positionne de nouveau en H1 afin de recevoir le nouveau scan et compléter ainsi de suite le tableau.

Merci par avance

Cordialement

Stéphane

Bonjour,

Je te rassure, l'utilisation de la douchette n'y est pour rien ... le titre m'a pris en défaut.

Je n'ai pas compris ce que tu souhaites faire avec les VLOOKUP ?

Cells(derlig + 1, 2).Value = WorksheetFunction.VLookup(Cells(derlig + 1, 1), ActiveSheet.Range("A1:F10000"), 2, 0)
Cells(derlig + 1, 3).Value = WorksheetFunction.VLookup(Cells(derlig + 1, 1), ActiveSheet.Range("A1:F10000"), 3, 0) * -1
Cells(derlig + 1, 4).Value = WorksheetFunction.VLookup(Cells(derlig + 1, 1), ActiveSheet.Range("A1:F10000"), 4, 0)

Bonjour le forum, Steelson,

Initialement dans le tableau seront intégrés l'ensemble des articles en stock de plusieurs familles

Ensuite l'opérateur va scanner chaque sortie.

Avec le code article je fais une recherche afin de remplir les autres colonnes. mais je ne voulais pas le faire avec une formule directement dans la cellule.

Ce tableau sert de base ensuite à différents TCD et j'ai besoin que toutes les colonnes soient remplies.

Cordialement

Stéphane

Enlève ceci de ta macro

CommandButton1_Click

C'est ce qui coince.

Car tu relances la macro après avoir remis à zéro la zone [douchette], du coup il ne trouve pas !!

Je te conseilles aussi d'ajouter Application.EnableEvents

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim derlig As Long
    Dim qte As String
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("H1")) Is Nothing Then    ' saisie douchette
        derlig = Range("A" & Rows.Count).End(xlUp).Row
        ActiveSheet.Unprotect
        Application.EnableEvents = False
        Cells(derlig + 1, 1).Value = [douchette].Value
        Cells(derlig + 1, 2).Value = WorksheetFunction.VLookup(Cells(derlig + 1, 1), ActiveSheet.Range("A1:F10000"), 2, 0)
        Cells(derlig + 1, 3).Value = WorksheetFunction.VLookup(Cells(derlig + 1, 1), ActiveSheet.Range("A1:F10000"), 3, 0) * -1
        Cells(derlig + 1, 4).Value = WorksheetFunction.VLookup(Cells(derlig + 1, 1), ActiveSheet.Range("A1:F10000"), 4, 0)
        Cells(derlig + 1, 5).Value = Cells(derlig + 1, 3).Value * Cells(derlig + 1, 4).Value / 1000
        Cells(derlig + 1, 6).Value = Date
        Application.EnableEvents = True
        Range("H1").ClearContents
        ActiveSheet.Protect
    End If
End Sub

le forum, Steelson,

Je te remercie pour ta réponse, je regarderai ce soir et je te ferai un retour, car cet après midi je suis sur un autre poste de travail.

Bonne fin de journée.

Cordialement

Stéphane

bonsoir le forum, Steelson,

j'ai inséré le nouveau code mais malheureusement cela plante encore sur le vlook......

Par contre chez je suis sur un excel 2007, est ce que cela peut avoir une incidence ?

Cordialement

Stéphane

Bonjour à tous,

Un essai testé aussi sur Excel 2007

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim derlig As Long
Dim qte As String

   If Target.Cells.Count > 1 Then Exit Sub
   If Not Intersect(Target, [douchette]) Is Nothing Then      ' saisie douchette
      derlig = Range("A" & Rows.Count).End(xlUp).Row
      ActiveSheet.Unprotect
      Cells(derlig + 1, 1).Value = [douchette].Value
      Cells(derlig + 1, 2).Value = WorksheetFunction.VLookup(Cells(derlig + 1, 1), ActiveSheet.Range("A1:F10000"), 2, 0)
      Cells(derlig + 1, 3).Value = WorksheetFunction.VLookup(Cells(derlig + 1, 1), ActiveSheet.Range("A1:F10000"), 3, 0) * -1
      Cells(derlig + 1, 4).Value = WorksheetFunction.VLookup(Cells(derlig + 1, 1), ActiveSheet.Range("A1:F10000"), 4, 0)
      Cells(derlig + 1, 5).Value = Cells(derlig + 1, 3).Value * Cells(derlig + 1, 4).Value / 1000
      Cells(derlig + 1, 6).Value = Date

      Application.EnableEvents = False
      Range("H1").ClearContents
      Application.EnableEvents = True
      ActiveSheet.Protect
   End If
End Sub

ric

le forum, Steelson, Ric,

Super cela marche parfaitement, et je viens de comprendre tout l'intérêt de ces deux lignes de codes.

Merci à tous les deux pour votre aide.

Bonne soirée.

Cordialement

Stéphane

ric

En effet, il aurait fallu que j'ajoute :

If Not Intersect(Target, Range("H1")) Is Nothing and range("H1")<>"" Then

Bonjour le forum, Steelson,

J'ai essayé en modifiant le code et effectivement cela marche.

Merci beaucoup

Bonne journée

Cordialement

Stéphane

Rechercher des sujets similaires à "2010 erreur suite scan douchette"