Aide Recherche Gestion de stock

[Résolu]
Signaler
Messages postés
53
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
31 mars 2008
-
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
Bonjour à tous,

Je suis actuellement entrain de créer une gestion de stock par le biais d'excel et visual basic.
Et je recherche un code ou une fonction à integrer dans mon userform me permettant de faire une recherche d'un outils.

Je souhaiterais que lorsque je clique sur un bouton de mon Userform, que cela cherche dans tous les tableaux de toutes mes feuilles. Et que cette fonction me renvoie une msgbox m'indiquant l'état du stock.

Est-ce que cela est possible?
Est-ce que quelqu'un peut m'aider?

Si la question n'est pas claire ou si vous voulez plus de détails, n'hésitez pas à me demander.
Merci d'avance

Voici le code déja existant ( en gras les dimensions des tableau ):

Private Sub userform_initialize()

Dim Mes_Diametres As String
   Dim Col As Integer
   Dim Lig As Integer
   Col = 5
   For Lig = 12 To 131
      Mes_Diametres = Sheets("Forets HSS").Cells(Lig, Col).Value
      Fenetre_de_Selection_Outils.ComboBox_Diametres.AddItem Mes_Diametres
   Next Lig



Dim Mes_Tailles As String
   Dim Col2 As Integer
   Dim Lig2 As Integer
   Lig2 = 11
   For Col2 = 6 To 9
      Mes_Tailles = Sheets("Forets HSS").Cells(Lig2, Col2).Value
      Fenetre_de_Selection_Outils.ComboBox_Tailles.AddItem Mes_Tailles
   Next Col2



Dim Mes_Diametres_Nom As String



   Dim Col3 As Integer
   Dim Lig3 As Integer
   Col3 = 5
   For Lig3 = 14 To 51
      Mes_Diametres_Nom = Sheets("Tarauds Metriques Dr-Ga").Cells(Lig3, Col3).Value
      Fenetre_de_Selection_Outils.ComboBox_Diametres_Nom.AddItem Mes_Diametres_Nom
   Next Lig3
  
Dim Mes_Diametres_Nom_2 As String



   Dim Col4 As Integer
   Dim Lig4 As Integer
   Col4 = 5
   For Lig4 = 60 To 97
      Mes_Diametres_Nom_2 = Sheets("Tarauds Metriques Dr-Ga").Cells(Lig4, Col4).Value
      Fenetre_de_Selection_Outils.ComboBox_Diametres_Nom.AddItem Mes_Diametres_Nom_2
   Next Lig4



Dim Mes_Diametres_Nom_3 As String



   Dim Col5 As Integer
   Dim Lig5 As Integer
   Col5 = 5
   For Lig5 = 106 To 143
      Mes_Diametres_Nom_3 = Sheets("Tarauds Metriques Dr-Ga").Cells(Lig5, Col5).Value
      Fenetre_de_Selection_Outils.ComboBox_Diametres_Nom.AddItem Mes_Diametres_Nom_3
   Next Lig5



Dim Mes_Diametres_Nom_4 As String



   Dim Col6 As Integer
   Dim Lig6 As Integer
   Col6 = 5
   For Lig6 = 152 To 189
      Mes_Diametres_Nom_4 = Sheets("Tarauds Metriques Dr-Ga").Cells(Lig6, Col6).Value
      Fenetre_de_Selection_Outils.ComboBox_Diametres_Nom.AddItem Mes_Diametres_Nom_4
   Next Lig6
  
Dim Mes_Diametres_Nom_5 As String



   Dim Col7 As Integer
   Dim Lig7 As Integer
   Col7 = 5
   For Lig7 = 198 To 235
      Mes_Diametres_Nom_5 = Sheets("Tarauds Metriques Dr-Ga").Cells(Lig7, Col7).Value
      Fenetre_de_Selection_Outils.ComboBox_Diametres_Nom.AddItem Mes_Diametres_Nom_5
   Next Lig7
  
Dim Mes_Diametres_Nom_6 As String



   Dim Col8 As Integer
   Dim Lig8 As Integer
   Col8 = 5
   For Lig8 = 244 To 281
      Mes_Diametres_Nom_6 = Sheets("Tarauds Metriques Dr-Ga").Cells(Lig8, Col8).Value
      Fenetre_de_Selection_Outils.ComboBox_Diametres_Nom.AddItem Mes_Diametres_Nom_6
   Next Lig8
  
Dim Mes_Types As String



   Dim Col9 As Integer
   Dim Lig9 As Integer
   Lig9 = 13
   For Col9 = 7 To 10
      Mes_Types = Sheets("Tarauds Metriques Dr-Ga").Cells(Lig9, Col9).Value
      Fenetre_de_Selection_Outils.ComboBox_Types.AddItem Mes_Types
   Next Col9
  



End Sub


 



Private Sub ajouter_click()



If CheckBox_Non_Revetu.Value = True Then
Sheets("Forets HSS").Cells(ComboBox_Diametres.ListIndex + 12, ComboBox_Tailles.ListIndex + 6).Value = Sheets("Forets HSS").Cells(ComboBox_Diametres.ListIndex + 12, ComboBox_Tailles.ListIndex + 6).Value + TextBox_Quantite.Value
End If
If CheckBox_Revetu.Value = True Then
Sheets("Forets HSS Revetus").Cells(ComboBox_Diametres.ListIndex + 12, ComboBox_Tailles.ListIndex + 6).Value = Sheets("Forets HSS Revetus").Cells(ComboBox_Diametres.ListIndex + 12, ComboBox_Tailles.ListIndex + 6).Value + TextBox_Quantite.Value
End IfIf CheckBox_Non_Revetu.Value False And CheckBox_Revetu.Value False Then
MsgBox "Vous devez spécifier un type de Forêts"
End If



End Sub




Private Sub ajouter_Tarauds_Met_click()



If CheckBox_Tarauds_Met_Non_Revetu.Value True And CheckBox_Pas_Met_Dr.Value True Then
Sheets("Tarauds Metriques Dr-Ga").Cells(ComboBox_Diametres_Nom.ListIndex + 14, ComboBox_Types.ListIndex + 7).Value = Sheets("Tarauds Metriques Dr-Ga").Cells(ComboBox_Diametres_Nom.ListIndex + 14, ComboBox_Types.ListIndex + 7).Value + TextBox_Quantite_Met_Dr.Value
End If

If CheckBox_Tarauds_Met_Non_Revetu.Value True And CheckBox_Pas_Met_Ga.Value True Then
Sheets("Tarauds Metriques Dr-Ga").Cells(ComboBox_Diametres_Nom.ListIndex + 60, ComboBox_Types.ListIndex + 7).Value = Sheets("Tarauds Metriques Dr-Ga").Cells(ComboBox_Diametres_Nom.ListIndex + 60, ComboBox_Types.ListIndex + 7).Value + TextBox_Quantite_Met_Dr.Value
End If

If CheckBox_Tarauds_Met_Revetu.Value True And CheckBox_Pas_Met_Dr.Value True Then
Sheets("Tarauds Metriques Dr-Ga").Cells(ComboBox_Diametres_Nom.ListIndex + 106, ComboBox_Types.ListIndex + 7).Value = Sheets("Tarauds Metriques Dr-Ga").Cells(ComboBox_Diametres_Nom.ListIndex + 106, ComboBox_Types.ListIndex + 7).Value + TextBox_Quantite_Met_Dr.Value
End If

If CheckBox_Tarauds_Met_Revetu.Value True And CheckBox_Pas_Met_Ga.Value True Then
Sheets("Tarauds Metriques Dr-Ga").Cells(ComboBox_Diametres_Nom.ListIndex + 152, ComboBox_Types.ListIndex + 7).Value = Sheets("Tarauds Metriques Dr-Ga").Cells(ComboBox_Diametres_Nom.ListIndex + 152, ComboBox_Types.ListIndex + 7).Value + TextBox_Quantite_Met_Dr.Value
End If

If CheckBox_Tarauds_Met_Carbure.Value True And CheckBox_Pas_Met_Dr.Value True Then
Sheets("Tarauds Metriques Dr-Ga").Cells(ComboBox_Diametres_Nom.ListIndex + 198, ComboBox_Types.ListIndex + 7).Value = Sheets("Tarauds Metriques Dr-Ga").Cells(ComboBox_Diametres_Nom.ListIndex + 198, ComboBox_Types.ListIndex + 7).Value + TextBox_Quantite_Met_Dr.Value
End If

If CheckBox_Tarauds_Met_Carbure.Value True And CheckBox_Pas_Met_Ga.Value True Then
Sheets("Tarauds Metriques Dr-Ga").Cells(ComboBox_Diametres_Nom.ListIndex + 244, ComboBox_Types.ListIndex + 7).Value = Sheets("Tarauds Metriques Dr-Ga").Cells(ComboBox_Diametres_Nom.ListIndex + 244, ComboBox_Types.ListIndex + 7).Value + TextBox_Quantite_Met_Dr.Value
End If

If CheckBox_Tarauds_Met_Non_Revetu.Value False And CheckBox_Tarauds_Met_Revetu.Value False And CheckBox_Tarauds_Met_Carbure.Value = False Then
MsgBox "Vous devez spécifier obligatoirement un type de Forêts"
End If

If CheckBox_Pas_Met_Dr.Value False And CheckBox_Pas_Met_Ga.Value False Then
MsgBox "Vous devez spécifier obligatoirement le pas"
End If



End Sub





Private Sub Retirer_Click()



If CheckBox_Non_Revetu.Value = True Then
Sheets("Forets HSS").Cells(ComboBox_Diametres.ListIndex + 12, ComboBox_Tailles.ListIndex + 6).Value = Sheets("Forets HSS").Cells(ComboBox_Diametres.ListIndex + 12, ComboBox_Tailles.ListIndex + 6).Value - TextBox_Quantite.Value
End If

If CheckBox_Revetu.Value = True Then
Sheets("Forets HSS Revetus").Cells(ComboBox_Diametres.ListIndex + 12, ComboBox_Tailles.ListIndex + 6).Value = Sheets("Forets HSS Revetus").Cells(ComboBox_Diametres.ListIndex + 12, ComboBox_Tailles.ListIndex + 6).Value - TextBox_Quantite.Value
End If

If CheckBox_Non_Revetu.Value False And CheckBox_Revetu.Value False Then
MsgBox "Vous devez spécifier un type de Forêts"
End If



End Sub





Private Sub retirer_Tarauds_Met_click()



If CheckBox_Tarauds_Met_Non_Revetu.Value True And CheckBox_Pas_Met_Dr.Value True Then
Sheets("Tarauds Metriques Dr-Ga").Cells(ComboBox_Diametres_Nom.ListIndex + 14, ComboBox_Types.ListIndex + 7).Value = Sheets("Tarauds Metriques Dr-Ga").Cells(ComboBox_Diametres_Nom.ListIndex + 14, ComboBox_Types.ListIndex + 7).Value - TextBox_Quantite_Met_Dr.Value
End If

If CheckBox_Tarauds_Met_Non_Revetu.Value True And CheckBox_Pas_Met_Ga.Value True Then
Sheets("Tarauds Metriques Dr-Ga").Cells(ComboBox_Diametres_Nom.ListIndex + 60, ComboBox_Types.ListIndex + 7).Value = Sheets("Tarauds Metriques Dr-Ga").Cells(ComboBox_Diametres_Nom.ListIndex + 60, ComboBox_Types.ListIndex + 7).Value - TextBox_Quantite_Met_Dr.Value
End If

If CheckBox_Tarauds_Met_Revetu.Value True And CheckBox_Pas_Met_Dr.Value True Then
Sheets("Tarauds Metriques Dr-Ga").Cells(ComboBox_Diametres_Nom.ListIndex + 106, ComboBox_Types.ListIndex + 7).Value = Sheets("Tarauds Metriques Dr-Ga").Cells(ComboBox_Diametres_Nom.ListIndex + 106, ComboBox_Types.ListIndex + 7).Value - TextBox_Quantite_Met_Dr.Value
End If

If CheckBox_Tarauds_Met_Revetu.Value True And CheckBox_Pas_Met_Ga.Value True Then
Sheets("Tarauds Metriques Dr-Ga").Cells(ComboBox_Diametres_Nom.ListIndex + 152, ComboBox_Types.ListIndex + 7).Value = Sheets("Tarauds Metriques Dr-Ga").Cells(ComboBox_Diametres_Nom.ListIndex + 152, ComboBox_Types.ListIndex + 7).Value - TextBox_Quantite_Met_Dr.Value
End If

If CheckBox_Tarauds_Met_Carbure.Value True And CheckBox_Pas_Met_Dr.Value True Then
Sheets("Tarauds Metriques Dr-Ga").Cells(ComboBox_Diametres_Nom.ListIndex + 198, ComboBox_Types.ListIndex + 7).Value = Sheets("Tarauds Metriques Dr-Ga").Cells(ComboBox_Diametres_Nom.ListIndex + 198, ComboBox_Types.ListIndex + 7).Value - TextBox_Quantite_Met_Dr.Value
End If

If CheckBox_Tarauds_Met_Carbure.Value True And CheckBox_Pas_Met_Ga.Value True Then
Sheets("Tarauds Metriques Dr-Ga").Cells(ComboBox_Diametres_Nom.ListIndex + 244, ComboBox_Types.ListIndex + 7).Value = Sheets("Tarauds Metriques Dr-Ga").Cells(ComboBox_Diametres_Nom.ListIndex + 244, ComboBox_Types.ListIndex + 7).Value - TextBox_Quantite_Met_Dr.Value
End If

If CheckBox_Tarauds_Met_Non_Revetu.Value False And CheckBox_Tarauds_Met_Revetu.Value False And CheckBox_Tarauds_Met_Carbure.Value = False Then
MsgBox "Vous devez spécifier obligatoirement un type de Forêts"
End If

If CheckBox_Pas_Met_Dr.Value False And CheckBox_Pas_Met_Ga.Value False Then
MsgBox "Vous devez spécifier obligatoirement le pas"



End Sub

3 réponses

Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
10
Salut,

oui c'est possible
oui je(on) peux t'aider
c'est effectivement pas tres claire. On aura notament besoin que tu sois plus precis sur la structure de tes feuilles.

mais pour commencer quelques remarques :

pour une meilleur lisibilité pense a indenter ton code et a reduire la longueur de tes ligne en utilisant le _ . Par exemple :

Private Sub ajouter_click()

    If CheckBox_Non_Revetu.Value = True Then
            Sheets("Forets
HSS").Cells(ComboBox_Diametres.ListIndex + 12,
ComboBox_Tailles.ListIndex + _
             6).Value = Sheets("Forets
HSS").Cells(ComboBox_Diametres.ListIndex + 12, _
             ComboBox_Tailles.ListIndex + 6).Value + TextBox_Quantite.Value
    End If
    If CheckBox_Revetu.Value = True Then
        Sheets("Forets
HSS Revetus").Cells(ComboBox_Diametres.ListIndex + 12, _
        ComboBox_Tailles.ListIndex + 6).Value = Sheets("Forets HSS
Revetus") _
        .Cells(ComboBox_Diametres.ListIndex + 12,
ComboBox_Tailles.ListIndex + 6).Value + _   
        TextBox_Quantite.Value
   End If   If CheckBox_Non_Revetu.Value False And CheckBox_Revetu.Value False Then
        MsgBox "Vous devez spécifier un type de Forêts"
   End If

End Sub

Quand tu as plusieur cas a traiter comme True/False sur la meme variable ou autre prefere les fonctions if, else if , else ou la fonction Select Case. Par exemple :

Private Sub ajouter_click()

    If CheckBox_Non_Revetu.Value = True Then
            Sheets("Forets
HSS").Cells(ComboBox_Diametres.ListIndex + 12,
ComboBox_Tailles.ListIndex + _

             6).Value = Sheets("Forets
HSS").Cells(ComboBox_Diametres.ListIndex + 12, _

             ComboBox_Tailles.ListIndex + 6).Value + TextBox_Quantite.Value   Else If CheckBox_Non_Revetu.Value False And CheckBox_Revetu.Value False Then
        MsgBox "Vous devez spécifier un type de Forêts"
   End If

    If CheckBox_Revetu.Value = True Then
        Sheets("Forets
HSS Revetus").Cells(ComboBox_Diametres.ListIndex + 12, _

        ComboBox_Tailles.ListIndex + 6).Value = Sheets("Forets HSS
Revetus") _

        .Cells(ComboBox_Diametres.ListIndex + 12,
ComboBox_Tailles.ListIndex + 6).Value + _   

        TextBox_Quantite.Value
   End If


End Sub

La meme chose mais avec Select case :

Private Sub ajouter_click()

    Select CheckBox_Non_Revetu.Value
        Case True
            Sheets("Forets
HSS").Cells(ComboBox_Diametres.ListIndex + 12,
ComboBox_Tailles.ListIndex + _

             6).Value = Sheets("Forets
HSS").Cells(ComboBox_Diametres.ListIndex + 12, _

             ComboBox_Tailles.ListIndex + 6).Value + TextBox_Quantite.Value
       Case False And CheckBox_Revetu.Value = False
            MsgBox "Vous devez spécifier un type de Forêts"
       End Select

    If CheckBox_Revetu.Value = True Then
        Sheets("Forets
HSS Revetus").Cells(ComboBox_Diametres.ListIndex + 12, _

        ComboBox_Tailles.ListIndex + 6).Value = Sheets("Forets HSS
Revetus") _

        .Cells(ComboBox_Diametres.ListIndex + 12,
ComboBox_Tailles.ListIndex + 6).Value + _   

        TextBox_Quantite.Value
   End If


End Sub

Enfin, la fonction with peut la aussi aider a reduire la taille de tes lignes. Par exmple :

Private Sub ajouter_click()
    With  Sheets("Forets
HSS").Cells(ComboBox_Diametres.ListIndex + 12,
ComboBox_Tailles.ListIndex + 6)
        Select CheckBox_Non_Revetu.Value
            Case True
                .Value = .Value + TextBox_Quantite.Value
           Case False And CheckBox_Revetu.Value = False
                MsgBox "Vous devez spécifier un type de Forêts"
          End Select
    End With
    With Sheets("Forets
HSS Revetus").Cells(ComboBox_Diametres.ListIndex + 12, _

        ComboBox_Tailles.ListIndex + 6)
        If CheckBox_Revetu.Value = True Then
            .Value = .Value + TextBox_Quantite.Value
       End If
    End With
End Sub

A toi de jouer

A+
Messages postés
53
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
31 mars 2008

Merci pour l'aide afin de simplifier mon code.
C'est vrai que je commencais à m'y perdre, sur tout que ce n'est pas fini, loin de là...

je vais reposer ma question de facon plus claire en detaillant plus.

Merci
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
Aussi, dans toute la partie en gras de ton code, tu n'aurais besoin que de 1 ou 2 variables (lig et éventuellement col)

Ça ne sert à rien de déclarer des tas de variables qui ne serviront plus par la suite.
Donc, pour chacune de tes boucles, tu peux réutiliser les mêmes 1 ou 2 variables.

   Dim Lig As Integer, Col As Integer
   For Lig = 12 To 131
      Fenetre_de_Selection_Outils.ComboBox_Diametres.AddItem
            Sheets("Forets HSS").Cells(Lig, 5).Value
   Next Lig   For Col = 6 To 9
      Fenetre_de_Selection_Outils.ComboBox_Tailles.AddItem
            Sheets("Forets HSS").Cells(11, Col).Value
   Next Col

'et le reste...

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI