[Excel] Gestion Stock en VB
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

[Excel] Gestion Stock en VB



  1. #1
    loumi

    [Excel] Gestion Stock en VB


    ------

    Bonjour à tous,
    j'ai besoin d'un coup de main,
    je ne connais pas du tout le VB et j'ai à effectuer une gestion de stock sous Excel pour mon boulot.
    Je n'ai du coup quasiment pas écrit de code, mais j'ai besoin d'une aide sur une fonction :
    En fait j'ai un cadre dans lequel s'affiche le numéro du code barre que l'on vient de scanner (Ceci fonctionne). A partir de cette saisie, j'aimerai aller rechercher dans ma feuille Excel la ligne correspondant à la réf scannée (Ref ecrite en A33 par ex) et aller directement en B33 pour modifier automatiquement la quantité (Quantité -1).
    Est ce que vous pensez pouvoir me dépanner ?
    Je continue bien entendu de chercher et d'apprendre le code.

    Merci beaucoup par avance
    A bientôt
    Loumi

    -----

  2. #2
    MrSeb

    Re : [Excel] Gestion Stock en VB

    On peut imaginer un truc simple du genre :

    for ligne = 1 to 1000 'change les valeurs avec le n° de première et de dernière ligne
    if feuil1.range(cells(ligne,1)).v alue=CODEBARRE then feuil1.range(cells(ligne,2))=f euil1.range(cells(ligne,2))-1
    next

    avec CODEBARRE la valeur du codebarre...
    Après, il y a moyen de raffiner (notamment pour éviter de traiter toute la liste), mais c'est un bon début.

  3. #3
    loumi

    Re : [Excel] Gestion Stock en VB

    Merci beaucoup MrSeb,
    mais quand je lance l'appli comme ca, il m'affiche un message d'erreur
    "Erreur de compilation : Next sans For"
    Saurais tu ce que cela signifie ?
    Merci beaucoup encore, ca me fait avancer petit à petit

  4. #4
    MrSeb

    Re : [Excel] Gestion Stock en VB

    Tu as une faute de frappe.

    Le programme va répéter ce qu'il y a entre 'for' et 'next', pour toute valeur de 'ligne'.
    Ton erreur te dit que tu as une ligne next alors que tu n'as pas de for. Or, la première ligne est bien un for.

    Pour vérification, ce code, tu l'as bien tapé dans une procédure sub ? Ou l'as-tu mis ?

  5. A voir en vidéo sur Futura
  6. #5
    loumi

    Post Re : [Excel] Gestion Stock en VB

    En fait oui j'ai copié le code dans un Sub,

    private Sub SCANNE_Change() 'scanne est le nom de la textbox où sera affiché le code scanné
    Dim ligne As Integer
    Dim CODEBARRE As String

    For ligne = 2 To 1000
    If Feuil1.Range(Cells(ligne, 1)).Value = CODEBARRE Then
    Feuil1.Range(Cells(ligne, 2)) = Feuil1.Range(Cells(ligne, 2)) - 1
    Next

    End Sub

    voila mon (enfin ton) code copié.
    Ne faut il pas ajouter un truc du genre Next ligne ?

    Merci par avance

  7. #6
    MrSeb

    Re : [Excel] Gestion Stock en VB

    non,mais par contre, comme tu as mis la ligne après le if à la ligne, il faut fermer ce if, avec une fonction end if.

    Le code devient :

    private Sub SCANNE_Change() 'scanne est le nom de la textbox où sera affiché le code scanné
    Dim ligne As Integer
    Dim CODEBARRE As String

    For ligne = 2 To 1000
    If Feuil1.Range(Cells(ligne, 1)).Value = CODEBARRE Then
    Feuil1.Range(Cells(ligne, 2)) = Feuil1.Range(Cells(ligne, 2)) - 1
    end if
    Next

    End Sub


    Il faudra aussi au passage ajouter une ligne qui définit la valeur de CODEBARRE, un truc du genre
    CODEBARRE=SCANNE.text

    Sinon, next ligne fonctionne aussi, mais est superflu en VB. Next tout court marche aussi

  8. #7
    loumi

    Re : [Excel] Gestion Stock en VB

    Salut MrSeb et merci pour ta réponse,
    Le problème avec tout ca, c'est que quand je scanne le code, la fonction ne permet que d'écrire 1 seule lettre.

    J'ai un message d'erreur maintenant qui me dit que " la méthode Range de l'objet Worksheet a échouée "
    et la ligne est surlignée en jaune dans le code VB.

    J'ai du mal ...
    Merci pour ton aide passée et future.

  9. #8
    loumi

    Re : [Excel] Gestion Stock en VB

    J'ai finalement trouvé une solution,
    j'utilise ceci :

    Sheets("STOCK").Columns(1).Cel ls.Find(What:=SCANNE.Text).Act ivate

    donc cela fonctionne parfaitement. je scanne, la fonction me met en surbrillance la ligne correspondant au texte du textBox.

    Mon probleme maintenant est le suivant :
    Comment faire pour aller décrémenter la colonne 2 correspondante sachant que j'ai utilisé :

    Range(Cells(ActiveCell, 2)) = Range(Cells(ActiveCell, 2)) - 1

    Mais cela me met un message d'erreur car il lance la recherche à la fin du 1er caractère, or je voudrai qu'il la lance une fois que j'ai terminé d'écrire (lecture code barre en l'occurence) la chaine complète...

    Je patoge...
    Merci d'avance

Discussions similaires

  1. Progiciel Gestion de stock
    Par invite51736e38 dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 05/08/2012, 11h28
  2. Gestion bancaire sous excel
    Par invitebef3a046 dans le forum Logiciel - Software - Open Source
    Réponses: 11
    Dernier message: 05/10/2010, 08h13
  3. Freeware de gestion de stock de composants electroniques.
    Par Hearty dans le forum Électronique
    Réponses: 12
    Dernier message: 29/09/2010, 08h59
  4. Logiciel ATAL II de gestion de stock et autres
    Par trebor dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 26/09/2009, 08h29
  5. Macro gestion de onglet dans excel
    Par invite7eac5b19 dans le forum Logiciel - Software - Open Source
    Réponses: 10
    Dernier message: 21/04/2008, 16h49
Découvrez nos comparatifs produits sur l'informatique et les technologies.