Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/09/2011, 23h04   #1
Invité régulier
 
Homme
Inscription : novembre 2010
Messages : 36
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : novembre 2010
Messages : 36
Points : 9
Points : 9
Par défaut Affichage userform avec liste déroulante

Bonsoir à toutes et à tous!

Je vous expose mon soucis...

Je dispose d'un userform dans lequel il y a 2 comboboxs, 2 listboxs et 3 boutons.
Dans ma première combobox, il y a une liste déroulante qui désigne le nom d'un article. Dans la seconde, il y a aussi une liste déroulante qui correspond au code de l'article. Dans la première listbox il y a la valeur du stock mini accepté et dans la seconde la valeur actuelle du stock.
Les données sont issues d'un tableau dans la feuille 1.
Toutes les valeurs de ces objets correspondent à une ligne de mon tableau.

Je souhaiterais que ce userform s'affiche dès que le stock actuel est en dessous du stock mini avec dans chaque objet le nom, le code et les valeurs des stocks avec une police rouge.

Je vous mets en pièces jointes mon code actuel, mon userform et mon tableau...

Si une personne a une piste... ou un code... je suis preneur...


Merci d'avance

Syl


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Private Sub COMBOBOX1_Change()
Dim nom As String
Dim code_interne As String
Dim stock_actuel As String
Dim stock_mini As String
 
L = 2
K = Worksheets("BasedeDonnees").Range("A65536").End(xlUp).Row
 
If ComboBox1.Value <> "" Then
    nom = ComboBox1.Value
 
    For L = 2 To K
        If Worksheets("BasedeDonnees").Cells(L, 3).Value = nom Then
            code_interne = Worksheets("BasedeDonnees").Cells(L, 4).Value
            stock_actuel = Worksheets("BasedeDonnees").Cells(L, 10).Value
            stock_mini = Worksheets("BasedeDonnees").Cells(L, 9).Value
            ComboBox2.Value = code_interne
            TextBox1.Value = stock_actuel
            TextBox2.Value = stock_mini
        End If
        If TextBox1.Value < TextBox2.Value Then
        TextBox1.Font.ColorIndex = 5
         End If
    Next
End If
 
End Sub
Private Sub COMBOBOX2_Change()
Dim nom As String
Dim code_interne As String
 
L = 2
K = Worksheets("BasedeDonnees").Range("A65536").End(xlUp).Row
 
If ComboBox2.Value <> "" Then
    code_interne = ComboBox2.Value
 
    For L = 2 To K
        If Worksheets("BasedeDonnees").Cells(L, 4).Value = code_interne Then
            nom = Worksheets("BasedeDonnees").Cells(L, 3).Value
            ComboBox1.Value = nom
        End If
    Next
End If
 
End Sub
M
Images attachées
Type de fichier : gif tableau.gif (62,3 Ko, 5 affichages)
Type de fichier : gif userform.gif (7,0 Ko, 3 affichages)
igno42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 09h34   #2
Membre du Club
 
Homme Philippe
Gestionnaire de parc micro-informatique
Inscription : avril 2010
Messages : 37
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Localisation : France

Informations professionnelles :
Activité : Gestionnaire de parc micro-informatique
Secteur : Bâtiment

Informations forums :
Inscription : avril 2010
Messages : 37
Points : 47
Points : 47
bonjour,

Pour exécuter un évènement en fonction des changements de stock il faut surveiller les modifications du contenu de l'onglet contenant le stock.

Je pense qu'une macro évènementielle "Worksheet.Change" sur l'onglet correspondant devrait faire l'affaire ?
Phileo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h52.


 
 
 
 
Partenaires

Hébergement Web