Stock VBA

22stock-magasin.xlsm (121.96 Ko)
22stock-magasin.xlsm (121.96 Ko)

bonjour

J'ai créer un onglet logiciel avec des bouton pour gérer les entrées et sortie, dans le bouton entrée je souhaiterai afficher dans la liste déroulante type de pièce afficher sans doublon la colonne A de l'onglet stock modifié, je souhaiterai par la suite liée les 3 liste déroulante pour que si l'on sélectionne électrique par exemple seul les pièces de se type s'affiche dans les 2 autre et inverse, je voudrait aussi afficher la quantité en stock dans le petit carrer a coté de quantité, et pouvoir enlever ou rajouter du stock avec la case quantité, après de nombreuse recherche je n'est pu réussir qu'à afficher la première ,liste déroulante mais avec des doublon.

Pourriez vous m'aider a résoudre mon problème

Je vous envoie ci-joint le fichier excel

cordialement

Bonjour

Un essai. Te convient-il ?

22stock-magasin.xlsm (112.84 Ko)

cela me convient mais le problème est que pour la première liste il y a encore des doublon est il possible de les enlever? les listes ne sont pas liée et je ne peut pas modifier la quantité n'y afficher la quantité actuel. Pouvez vous m'aider .

Cordialement

Bonjour

Tu écris :

mais le problème est que pour la première liste il y a encore des doublon

En regardant de plus près, on constate que dans ta liste de la colonne A, il y a 45 Types de pièces « electrique » avec un espace en fin de mot et 160 « Electrique » avec un E majuscule. Et je n'ai regardé que ce type de pièce.

Or, les mots doivent être strictement identiques si tu ne veux pas de doublons.

J’ai encore remarqué que dans la macro rattachée au bouton « Validation », il y avait des lignes de codes qui font appel à une feuille « MIF » :

   Sheets("MIF").Cells(ligne, 1) = Me.Cbb_pièce
   Sheets("MIF").Cells(ligne, 2) = CDbl(Me.TextBox1)
   Sheets("MIF").Cells(ligne, 3) = UCase(Me.TextBox2) 'met en majuscules
   Sheets("MIF").Cells(ligne, 4) = Date 'date du jour

Mais dans le fichier que tu as joint à ton message, je ne trouve pas cette feuille….

Si tu veux que je t’aide, il ne faut pas me cacher des choses … !

Bye !

cette commande a été prise d'un autre fichier excel et qui n'a pas de rapport, je ne l'est pas encore modifier pour quelle correspond a ma commande


j'ai modifier, je n'est plus de doublon mais le reste des listes déroulante n'est pas liée, je voudrais afficher dans la cellule vide a coter de la cellule ou je rentre la quantité, afficher la quantité actuelle, de plus quand j appuie sur valider je veut que cela ajoute la quantité rentrer a la quantité actuelle de la pièce sélectionner.

Tu écris :

je ne l'est pas encore modifier pour quelle correspond a ma commande

Alors, j'attendrai que tu l'aies fait pour continuer...

Bye !

" Aide-toi et le Ciel t'aidera "

le problème est que quand j appuie sur valider je voudrai quelle ajoute a la quantité actuel de la pièce sélectionné dans les liste déroulante plus haut la quantité rentrer dans la cellule nommé quantité hors je n'arrive pas a m'être en lien les liste déroulante et afficher la quantité pour la pièce sélectionné pourrait tu m aider s'il te plait .

cordialement

Pourrait tu m expliquer comment tu a fait car je voudrait mètre une liste déroulante type de pièce dans ajout de stock du même type que celle qui se trouve dans entrée mais lorsque je copie ton code cela me mets une erreur


j'ai trouver d'ou venais mon problème je n'avais pas affilier a la bonne combobox mais pourrait tu m'aider pour ce que je t'est demander plus haut s'il te plait

cordialement

10stock-magasin-2.xlsm (125.86 Ko)

Bonjour

Un essai qui marche avec le bouton rose de la feuille "Stock modifié"

Bye !

18stock-magasin-2.xlsm (131.01 Ko)

merci cela marche parfaitement mais je souhaiterai l'affecter au bouton entrée mais lorsque je copie le code sur le bouton cela ne marche plus pourrait tu m'expliquer pour que je le modifie

Nouvel essai

Je ne parviens pas à éviter d'afficher temporairement la feuille "Stock modifié"

Bye !

10stock-magasin-3.xlsm (127.84 Ko)

Bonjour cela marche parfaitement a par un petit détail. la quantité est ajouté avant de valider comment je peu modifier cela

et pour le problème de l'affichage de l'onglet stock modifié j'ai pu le résoudre j'ai bloquer l'affichage lors de la manipulation et réactivé en fin de tache voir ci-dessous mais je n'arrive pas à résoudre le problème de la quantité qui s'ajoute avant la validation

Dim ligne, FL, i

Dim MonDico, a, C, Qexistante, CellQ

Private Sub Cbb_Appellation_Change()

Application.ScreenUpdating = False

Sheets("Stock modifié").Select

For Each C In Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)

If Cbb_pièce = C.Value And Cbb_Machine = C.Offset(0, 1).Value And Cbb_Appellation = C.Offset(0, 2).Value Then

TextBox2.Value = C.Offset(0, 8).Value * 1

Qexistante = TextBox2.Value * 1

Set CellQ = C.Offset(0, 8)

End If

Next C

End Sub

Private Sub Cbb_pièce_Change()

Application.ScreenUpdating = False

Sheets("Stock modifié").Select

Cbb_Machine.Clear

Cbb_Appellation.Clear

For Each C In Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)

If C.Value = Cbb_pièce Then

Cbb_Machine.AddItem C.Offset(0, 1).Value

Cbb_Appellation.AddItem C.Offset(0, 2).Value

End If

Next C

End Sub

Private Sub Cbb_Machine_Change()

Application.ScreenUpdating = False

Sheets("Stock modifié").Select

Cbb_Appellation.Clear

For Each C In Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)

If C.Offset(0, 1).Value = Cbb_Machine Then

Cbb_Appellation.AddItem C.Offset(0, 2).Value

End If

Next C

End Sub

Private Sub TextBox1_Change()

Application.ScreenUpdating = False

Sheets("Stock modifié").Select

On Error Resume Next

TextBox2 = (TextBox1 * 1 + Qexistante) * 1

CellQ.Value = TextBox2.Value

End Sub

Private Sub UserForm_Initialize()

Application.ScreenUpdating = False

Sheets("Stock modifié").Select

'Type de pièce

Set FL = ThisWorkbook.Sheets("Stock modifié")

Set MonDico = CreateObject("Scripting.Dictionary")

a = FL.Range("A2:A" & FL.Range("A" & Rows.Count).End(xlUp).Row)

For i = LBound(a) To UBound(a)

If a(i, 1) <> "" Then MonDico(a(i, 1)) = ""

Next i

Me.Cbb_pièce.List = MonDico.keys

'Machine

MonDico.RemoveAll

a = FL.Range("B2:B" & FL.Range("B" & Rows.Count).End(xlUp).Row)

For i = LBound(a) To UBound(a)

If a(i, 1) <> "" Then MonDico(a(i, 1)) = ""

Next i

Me.Cbb_Machine.List = MonDico.keys

'Appellation

MonDico.RemoveAll

a = FL.Range("C2:C" & FL.Range("C" & Rows.Count).End(xlUp).Row)

For i = LBound(a) To UBound(a)

If a(i, 1) <> "" Then MonDico(a(i, 1)) = ""

Next i

Me.Cbb_Appellation.List = MonDico.keys

End Sub

Private Sub B_Valid_Click()

Application.ScreenUpdating = False

Sheets("Stock modifié").Select

Cbb_pièce = ""

Cbb_Machine = ""

Cbb_Appellation = ""

TextBox1.Value = ""

TextBox2.Value = ""

MsgBox "Ajout enregistré !"

Sheets("logiciel").Select

Application.ScreenUpdating = Activate

End Sub

Private Sub B_Quitter_Click()

Sheets("Stock modifié").Select

Unload Me

Sheets("Logiciel").Select

Application.ScreenUpdating = Activate

End Sub

Bonjour

Tu écris :

mais je n'arrive pas à résoudre le problème de la quantité qui s'ajoute avant la validation

Il faut supprimer ici cette instruction :

Private Sub TextBox1_Change()
Application.ScreenUpdating = False
Sheets("Stock modifié").Select

    On Error Resume Next
    TextBox2 = (TextBox1 * 1 + Qexistante) * 1
' CellQ.Value = TextBox2.Value

Et la reporter ici :

Private Sub B_Valid_Click()
Application.ScreenUpdating = False
Sheets("Stock modifié").Select
    CellQ.Value = TextBox2.Value
    Cbb_pièce = ""
    Cbb_Machine = ""

A noter que l’instruction :

Application.ScreenUpdating = Activate

N’est pas correcte. Tu devrais la remplacer par :

Application.ScreenUpdating = True

Bye !

merci par contre lorsque tu appuie sur validé sans avoir rentrer de quantité cela affiche un message d'erreur

j ai esseillier de mètre un if voir ci-dessous mais cela ne marche pas Lorsque je marque une quantiter cela m affiche quand même le message d'erreur que j ai mis, peut tu m'aider .

cordialement

Private Sub B_Valid_Click()

Application.ScreenUpdating = False

Sheets("Stock modifié").Select

IF TextBox2 <0 Then

CellQ.Value = TextBox2.Value

Cbb_pièce = ""

Cbb_Machine = ""

Cbb_Appellation = ""

TextBox1.Value = ""

TextBox2.Value = ""

MsgBox "Entrée enregistré !"

Sheets("logiciel").Select

Application.ScreenUpdating = True

else MsgBox "Aucune Quantitée rentrer !"

end IF

End Sub

Bonjour

Tu écris :

par contre lorsque tu appuie sur validé sans avoir rentrer de quantité cela affiche un message d'erreur

Je n’ai pas ce problème.

Je t’envoie tout de même le dernier fichier que je t’ai envoyé mis à jour avec les modifications apportées depuis.

Bye !

Bonjour

j'ai une dernière demande je voudrait créer un filtre automatique grâce au bouton consultation lorsque je clique dessus j'ai un userform qui s'ouvre ensuite je cliquer sur type de pièce un nouvelle userform s'ouvre je voudrai en sélectionnant le type que cela m'ouvre un userform et que cela m'affiche juste les ligne avec le type électricité par exemple

cordialement

12essai-3.xlsm (112.85 Ko)

Bonjour

Pour ta dernière demande, désolé mais je ne vois pas.

Je passe la main.

Essaie de faire un nouveau fil et quelqu'un d'autre pourra peut-être te satisfaire...

Bye !

Rechercher des sujets similaires à "stock vba"