Incrementation d'un tableau avec la fonction recherchev

Salut à tous

pour info j'ai des notions en codage (symfony, php et Html) mais je débute en VBA

Alors voici le problème,

La case jaune(de mon fichier) me permet de scanner un code barre SAP et une fois le code scanner le tableau blanc se remplit automatiquement avec les éléments du tableau vert en faisant une fonction RECHERCHEV().

A l’heure actuelle quand je scan un code barre ça me remplace juste la première ligne de mon tableau blanc (la donnée s’écrase laissant place à une autre donné). J’aimerais la création d’une nouvelle ligne, dans ce tableau, lorsque je scan un nouveau code barre.

Merci d’avance

Mick

3testcodebarre.xlsx (10.54 Ko)

Bonsoir,

il vous faudra passer par VBA dans ce cas, est-ce possible de votre côté ?

@ bientôt

LouReeD

Oui bien sûr mais serait-il possible de me donner la marche à suivre ?

Voici une proposition :

10testcodebarre.xlsm (20.82 Ko)

Ce n'est peut-être pas la plus "pro" mais elle fonctionne, avec des commentaires pour "apprendre"

j'ai simulé le scan du code barre avec une liste de choix.
Je n'ai pas géré l'absence de concordance entre le code barre scanné et sa présence dans la base de donnée.

@ bientôt

LouReeD

Merci beaucoup ça fonctionne niquel

Par contre en scannant le code barre avec une scannette je suis obligé de taper entrer pour valider ma demande. Il y a t’il une solution pour que cela se fasse automatiquement ?

Et seconde question j’ai essayer de deporter le tableau sur une autre feuille et quand je fais un débugage pas a pas je bloque sur la ligne du tableau

Bonjour,

connaissez vous un évènement qui pourrait être déclencher par la lecture du scan ? Sinon il y a l'astuce de faire une somme comportant la cellule du résultat de scan qui va (peut-être) déclencher l'évènement Calculate :

Private Sub Worksheet_Calculate()
    ' on arrête la mise à jour de l'écran
    Application.ScreenUpdating = False
    ' comme on va modifier les données de la feuille
    ' on des active les évènements afin de n epas tomber dans une boucle infinie
    Application.EnableEvents = False
    ' on dimensionne une variable Tableau structuré
    Dim MonTab As ListObject
    ' on dimensionne une variable Ligne de tableau structuré
    Dim lRow As ListRow
    ' on attribue à la variable tableau le premier tableau de la feuille Formulaire
    Set MonTab = ActiveSheet.ListObjects("Résultat")
    ' avec ce tableau
    With MonTab
        ' on attribue à la variable ligne, la ligne "nouvelle ligne" que l'on crée
        Set lRow = .ListRows.Add()
        ' avec cette ligne
        With lRow
            ' on met dans chaque cellule de la ligne la formule qui va bien
            .Range.Cells(1).Formula = "=VLOOKUP(CodeBarre,Source,1,FALSE)"
            .Range.Cells(2).Formula = "=VLOOKUP(CodeBarre,Source,2,FALSE)"
            .Range.Cells(3).Formula = "=VLOOKUP(CodeBarre,Source,3,FALSE)"
            Calculate
            .Range.Cells(1).Value = .Range.Cells(1).Value
            .Range.Cells(2).Value = .Range.Cells(2).Value
            .Range.Cells(3).Value = .Range.Cells(3).Value
        ' on a fini de jouer avec la ligne
        End With
    ' on a fini de jouer avec le tableau
    End With
    ' on réactive les évènements
    Application.EnableEvents = True
End Sub

Mais de ce fait il faut mettre en place un code pour effacer ce tableau sans que la formule déclenche l'évènement, donc dans un module standard :

Sub Init_Données()
    Application.EnableEvents = False
    If Not Range("Résultat").ListObject.DataBodyRange Is Nothing Then Range("Résultat").ListObject.DataBodyRange.Delete
    Range("CodeBarre") = ""
    Application.EnableEvents = True
End Sub

Le fichier :

12testcodebarre.xlsm (23.63 Ko)

@ bientôt

LouReeD

Salut, la fonction d'initialisation marche très bien par contre quand je rentre un code barre ca me rentre deux lignes au lieu d'une seule dans le tableau resultat

Bonjour,

avez vous supprimer le code dans "Change" ? En effet si "Calculate" détecte la somme, peut être que celle-ci déclenche le change...

Sinon je ne vois pas pourquoi puisqu' EnableEvents est stopper...

@ bientôt

LouReeD

je viens de voir que la fonction n'est pas la même j'ai corriger et ça marche tres bien

Par contre la simulation sur la toucher entrer ne fonctionne pas, j’ai essayé avec SendKeys mais sans succès

Merci d’avance pour tout l’aide que tu peux m’apporter

Bonsoir,

si vous simulez la touche Entrée avec du code VBA alors c'est que vous êtes sous VBA, vous pouvez donc lancer un code en fonction de ce que vous voulez faire...
du coup là je ne comprend plus la chose, désolé.

@ bientôt

LouReeD

Rechercher des sujets similaires à "incrementation tableau fonction recherchev"