XL 2010 Fonction rechercher via VBA

Kassn

XLDnaute Nouveau
Bonjour a tous,

J'ai un petit soucis pour ce qui est de "rechercher" une informations dans un tableau excel:

N°mouleProjetTypeCode d'origineRéférence achatnombre en stock
M531933D34Résistance59641TXH654568
M44386A9Résistance0087-00182A0087-00182A9

Voici un tableau pour faire un exemple :

J'ai actuellement un Userform accompagné d'une ComboBox afin de me sortir une liste de pièce dans une ListBox, jusque la tout va bien.
Ensuite en double-cliquant sur une ligne dans la listBox il m'affiche les informations de la pièces. Comme ci-dessous :

stock.png


Cependant j'aimerais qu'il m'affiche également dans la TextBox11(Nombre de pièces en stock) le nombre de pièces restantes, dans le cas suivant "9".

Puis-ce qu'on y est, j'aimerais également a l'aide des boutons "Ajouter" et "Retirer" ( +1 et -1 ) afin de pouvoir gérer le stock convenablement et que cela change automatiquement la feuill excel en cliquant sur le bouton valider.

Je suis désoler si j'en demande beaucoup :/

Voici mon code actuel :

VB:
Private Sub Brechercher_Click()
ListBox1.Clear
Dim c As Range
ListBox1.ColumnCount = 4
    If ComboBox1.ListIndex < 0 Then Exit Sub
    For Each c In Feuil1.Range("A2:A" & Feuil1.Range("A65536").End(xlUp).Row)
        If c.Value = ComboBox1.Value Then
            ListBox1.AddItem c.Offset(0, 1)
            ListBox1.List(vcount, 1) = c.Offset(0, 2)
            ListBox1.List(vcount, 2) = c.Offset(0, 3)
            ListBox1.List(vcount, 3) = c.Offset(0, 4)
            vcount = vcount + 1
    End If
Next c

End Sub


Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
  
With ListBox1
    If .ListIndex > -1 And ComboBox1.ListIndex > -1 Then
        stock.nmoule = ComboBox1.Value
        stock.projet.Text = .Column(0, ListIndex)
        stock.mtype.Text = .Column(1, .ListIndex)
        stock.code = .Column(2, .ListIndex)
        stock.ref = .Column(3, .ListIndex)
        stock.Show
    End If
    
    
End With
End Sub

Private Sub UserForm_Initialize()
Dim zone As Range
Dim Cel As Range
Dim x As Long
Dim Diko As New Collection
Dim Flag As Boolean
Dim Bcle As Integer
Dim temp As String
Dim indice
indice = i

  Set zone = Feuil1.Range("A2:A" & Feuil1.Range("A500").End(xlUp).Row) 'définit la variable zone
  '
  ' Création d'une liste sans doublons
  '
  On Error Resume Next
  For Each Cel In zone
    Diko.Add Cel, CStr(Cel)
  Next Cel
  On Error GoTo 0
  '
  ' Alimentattion du combobox
  '
  For Bcle = 1 To Diko.Count
    ComboBox1.AddItem Diko(Bcle)
  Next Bcle
  '
  ' Tri du combobox
  '
  With ComboBox1
    Do
      Flag = False
      For Bcle = 0 To .ListCount - 2
        If .List(Bcle) > .List(Bcle + 1) Then
          temp = .List(Bcle)
          .List(Bcle) = .List(Bcle + 1)
          .List(Bcle + 1) = temp
          Flag = True
        End If
      Next Bcle
    Loop Until Flag = False
  End With
End Sub
 

Pièces jointes

  • 1572880386049.png
    1572880386049.png
    90.9 KB · Affichages: 21

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Kassn, bonjour le forum,

Quand je tombe en panne avec mon bolide et que j'amène une photo à mon garagiste, celui-ci est mort de rire...
Tes explications sont très claires mais si on veut tester une éventuelle solution il nous faut recréer un fichier nous même. Il me semble que c'est plutôt à toi de le fournir...
 

Kassn

XLDnaute Nouveau
Bonjour Kassn, bonjour le forum,

Quand je tombe en panne avec mon bolide et que j'amène une photo à mon garagiste, celui-ci est mort de rire...
Tes explications sont très claires mais si on veut tester une éventuelle solution il nous faut recréer un fichier nous même. Il me semble que c'est plutôt à toi de le fournir...

Bonjour Robert,

Oups je suis désolé, j'ai oublie de le mettre en pièce jointe, quel tête en l'air ^^'

Ci-joint le fichier en question

Cordialement,
 

Pièces jointes

  • Test MagasinV3 .xlsm
    74.1 KB · Affichages: 5

Robert

XLDnaute Barbatruc
Repose en paix
Re,

Une anomalie dans ton tableau fait qu'il sera impossible de déterminer le stock pour les produits du projet A9 qui portent tous exactement les mêmes données. Est-ce que c'est parce que tu as fait un exemple vite fait et oublier de changer le code d'origine et la référence d'achat ?
 

Kassn

XLDnaute Nouveau
Re,

Une anomalie dans ton tableau fait qu'il sera impossible de déterminer le stock pour les produits du projet A9 qui portent tous exactement les mêmes données. Est-ce que c'est parce que tu as fait un exemple vite fait et oublier de changer le code d'origine et la référence d'achat ?

Re,

Oui c'était en effet un test pour la combobox.

Fichier modifiés avec des références différentes. A terme le projet A9 est voué a disparaître et être remplacé d'ici quelques temps mais je pense que cela sera le même fonctionnement pour d'autre. ( au total une dizaine de projet devrais être dans ce fichier, soit a peu près 250 moules )

Je te remercie beaucoup en tout cas !

Cordialement,
 

Pièces jointes

  • Test MagasinV3 .xlsm
    48.5 KB · Affichages: 4

Robert

XLDnaute Barbatruc
Repose en paix
Re,

E pièce jointe ton fichier modifié. J'ai complètement changé l'initialisation de l'UserForm Moule et il manquait simplement la définition la variable I pour avoir le stock. Je te laisse terminer les codes pour l'UserForm Stock...
 

Pièces jointes

  • Kassn_ED_v01.xlsm
    60.6 KB · Affichages: 10

Kassn

XLDnaute Nouveau
Re,

E pièce jointe ton fichier modifié. J'ai complètement changé l'initialisation de l'UserForm Moule et il manquait simplement la définition la variable I pour avoir le stock. Je te laisse terminer les codes pour l'UserForm Stock...

Re,

C'est juste parfait ! je sais pas comment te remercier ! Merci pour les explication a l'intérieur du code, cela va grandement m'aider pour la suite ! :)

Cordialement,
 

Discussions similaires

Réponses
17
Affichages
760
Réponses
6
Affichages
202

Statistiques des forums

Discussions
311 720
Messages
2 081 909
Membres
101 836
dernier inscrit
karmon