Userform, GROS PROBLEME en VBA sur Excel
Résolu
psychoman
Messages postés
30
Statut
Membre
-
psychoman Messages postés 30 Statut Membre -
psychoman Messages postés 30 Statut Membre -
Bonjour,
je travaille sur un Userform, il n'est pas terminé, en VBA sur Excel.
J'ai un probleme avec mon Userform pour trier de l'inventaire , il plante si je l'utilise pour 2 produits sans le fermer.
Je veux m'en servir pour trier de l'inventaire et ajuster les quantités il fait référence a Feuil1 qui contient l'inventaire.
nom du userform : userform1. il fait référence a 2 marcros que j'ai mise en bas dans le message. si vous pouvez m'aider ca serait grandement apprécié. merci. Vince.
code :
Private Sub ComboBoxDESC_Change()
CRITERE = ComboBoxDESC.Value
COLCR = 2
'Remplir le tableau
Dim L As Long
Dim N As Long
Dim TABL1(1000, 40) As Variant
Dim TABL2(1000, 40) As Variant
L = 900 ' NB LIGNES DANS LE TABLEAU Inventaire
N = 6 ' NB COLONNES DANS LE TABLEAU Inventaire
For LL = 0 To L
For CC = 0 To N
TABL1(LL, CC) = Sheets("FEUIL2").Cells((LL + 1), (CC + 1))
Next CC
Next LL
BB = Application.Run("FILTRE", TABL1, CRITERE, COLCR)
For LL = 0 To L
For CC = 0 To N
TABL1(LL, CC) = Sheets("FEUIL2").Cells((LL + 1), (CC + 1))
Next CC
Next LL
ComboBoxGRADE.Clear
For I = 1 To L
If TABL1(I, 3) <> 0 Then
If TABL1(I, 3) <> TABL1((I - 1), 3) Then
ComboBoxGRADE.AddItem TABL1(I, 3)
End If
End If
Next
End Sub
Private Sub ComboBoxGRADE_Change()
CRITERE = ComboBoxGRADE.Value
COLCR = 3
'Remplir le tableau
Dim L As Long
Dim N As Long
Dim TABL1(1000, 40) As Variant
Dim TABL2(1000, 40) As Variant
L = 900 ' NB LIGNES DANS LE TABLEAU Inventaire
N = 6 ' NB COLONNES DANS LE TABLEAU Inventaire
For LL = 0 To L
For CC = 0 To N
TABL1(LL, CC) = Sheets("FEUIL2").Cells((LL + 1), (CC + 1))
Next CC
Next LL
BB = Application.Run("FILTRE", TABL1, CRITERE, COLCR)
For LL = 0 To L
For CC = 0 To N
TABL1(LL, CC) = Sheets("FEUIL2").Cells((LL + 1), (CC + 1))
Next CC
Next LL
ComboBoxLONG.Clear
For I = 1 To L
If TABL1(I, 3) <> 0 Then
If TABL1(I, 4) <> TABL1((I - 1), 4) Then
ComboBoxLONG.AddItem TABL1(I, 4)
End If
End If
Next
End Sub
Private Sub ComboBoxLONG_Change()
Dim CRITEREL As Long
CRITEREL = 0
CRITEREL = ComboBoxLONG.Value
COLCR = 4
'Remplir le tableau
Dim L As Long
Dim N As Long
Dim TABL1(1000, 40) As Variant
Dim TABL2(1000, 40) As Variant
L = 900 ' NB LIGNES DANS LE TABLEAU Inventaire
N = 6 ' NB COLONNES DANS LE TABLEAU Inventaire
For LL = 0 To L
For CC = 0 To N
TABL1(LL, CC) = Sheets("FEUIL2").Cells((LL + 1), (CC + 1))
Next CC
Next LL
BB = Application.Run("FILTRE", TABL1, CRITEREL, COLCR)
For LL = 0 To L
For CC = 0 To N
TABL1(LL, CC) = Sheets("FEUIL2").Cells((LL + 1), (CC + 1))
Next CC
Next LL
'ComboBoxLONG.Clear
'For I = 1 To L
' If TABL1(I, 3) <> 0 Then
' If TABL1(I, 4) <> TABL1((I - 1), 4) Then
' ComboBoxLONG.AddItem TABL1(I, 4)
' End If
' End If
'Next
End Sub
Private Sub CommandButtonANNULER_Click()
Unload Me
End Sub
Private Sub CommandButtonENR_Click()
End Sub
Private Sub OptionButtonC_Click()
If OptionButtonQUINC = True Then
OptionButtonC.Value = False
Else
Dim CRITERE As Variant
CRITERE = "C"
COLCR = 6
'Remplir le tableau
Dim L As Long
Dim N As Long
Dim TABL1(1000, 40) As Variant
Dim TABL2(1000, 40) As Variant
L = 900 ' NB LIGNES DANS LE TABLEAU Inventaire
N = 6 ' NB COLONNES DANS LE TABLEAU Inventaire
For LL = 0 To L
For CC = 0 To N
TABL1(LL, CC) = Sheets("FEUIL2").Cells((LL + 1), (CC + 1))
Next CC
Next LL
BB = Application.Run("FILTRE", TABL1, CRITERE, COLCR)
For LL = 0 To L
For CC = 0 To N
TABL1(LL, CC) = Sheets("FEUIL2").Cells((LL + 1), (CC + 1))
Next CC
Next LL
ComboBoxDESC.Clear
For I = 1 To L
If TABL1(I, 2) <> 0 Then
If TABL1(I, 2) <> TABL1((I - 1), 2) Then
ComboBoxDESC.AddItem TABL1(I, 2)
End If
End If
Next
End If
If 1 = 1 Then
Sheets("FEUIL2").Cells(1, 10) = ComboBoxLONG.Value
End If
End Sub
Private Sub OptionButtonHSS_Click()
If OptionButtonQUINC = True Then
OptionButtonHSS.Value = False
Else
CRITERE = "HSS"
End If
End Sub
Private Sub OptionButtonL_Click()
If OptionButtonQUINC = True Then
OptionButtonL.Value = False
Else
CRITERE = "L"
End If
End Sub
Private Sub OptionButtonFL_Click()
If OptionButtonQUINC = True Then
OptionButtonFL.Value = False
Else
CRITERE = "FL"
End If
End Sub
Private Sub OptionButtonACIER_Click()
ComboBoxDESC.Clear
ComboBoxGRADE.Clear
ComboBoxLONG.Clear
FrameForme.Visible = True
Dim CRITERE As Variant
CRITERE = "ACIER"
COLCR = 1
'Remplir le tableau
Dim L As Long
Dim N As Long
Dim TABL1(1000, 40) As Variant
Dim TABL2(1000, 40) As Variant
L = 900 ' NB LIGNES DANS LE TABLEAU Inventaire
N = 6 ' NB COLONNES DANS LE TABLEAU Inventaire
AA = Application.Run("REMPLIR", TABL1)
'TRIER
For LL = 0 To L
For CC = 0 To N
TABL1(LL, CC) = Sheets("FEUIL2").Cells((LL + 1), (CC + 1))
Next CC
Next LL
BB = Application.Run("FILTRE", TABL1, CRITERE, COLCR)
For LL = 0 To L
For CC = 0 To N
TABL1(LL, CC) = Sheets("FEUIL2").Cells((LL + 1), (CC + 1))
Next CC
Next LL
ComboBoxDESC.Clear
For I = 1 To L
If TABL1(I, 3) <> 0 Then
If TABL1(I, 2) <> TABL1((I - 1), 2) Then
ComboBoxDESC.AddItem TABL1(I, 2)
End If
End If
Next
End Sub
Private Sub OptionButtonPL_Click()
If OptionButtonQUINC = True Then
OptionButtonPL.Value = False
Else
CRITERE = "PL"
End If
End Sub
Private Sub OptionButtonQUINC_Click()
OptionButtonC.Value = False
OptionButtonL.Value = False
OptionButtonFL.Value = False
OptionButtonPL.Value = False
FrameForme.Visible = False
ComboBoxDESC.Clear
ComboBoxGRADE.Clear
ComboBoxLONG.Clear
Dim CRITERE As Variant
CRITERE = "QUINC"
COLCR = 1
'Remplir le tableau
Dim L As Long
Dim N As Long
Dim TABL1(1000, 40) As Variant
Dim TABL2(1000, 40) As Variant
L = 900 ' NB LIGNES DANS LE TABLEAU Inventaire
N = 6 ' NB COLONNES DANS LE TABLEAU Inventaire
AA = Application.Run("REMPLIR", TABL1)
'TRIER
For LL = 0 To L
For CC = 0 To N
TABL1(LL, CC) = Sheets("FEUIL2").Cells((LL + 1), (CC + 1))
Next CC
Next LL
BB = Application.Run("FILTRE", TABL1, CRITERE, COLCR)
For LL = 0 To L
For CC = 0 To N
TABL1(LL, CC) = Sheets("FEUIL2").Cells((LL + 1), (CC + 1))
Next CC
Next LL
ComboBoxDESC.Clear
For I = 1 To L
If TABL1(I, 2) <> 0 Then
If TABL1(I, 2) <> TABL1((I - 1), 2) Then
ComboBoxDESC.AddItem TABL1(I, 2)
End If
End If
Next
End Sub
Private Sub OptionButtonR_Click()
If OptionButtonQUINC = True Then
OptionButtonR.Value = False
Else
CRITERE = "R"
End If
End Sub
Sub UserForm_Initialize()
Sheets("FEUIL2").Range("A2:G900").Clear
'Remplir le tableau
Dim TABL1(1000, 40) As Variant
Dim TABL2(1000, 40) As Variant
AA = Application.Run("REMPLIR1", TABL1)
End Sub
'''les 2 Macros qui sont dans module1 :
Sub REMPLIR(TABL1 As Variant)
'Macro 1
'Remplir le TABLEAU VIRTUEL DE TRAVAIL
Dim L As Long
Dim N As Long
'Dim TABL1(1000, 40) As Variant
'Dim TABL2(1000, 40) As Variant
L = 900
N = 6
LIN1 = 4 ' LIGNE DÉBUT DU TABLEAU
COL1 = 1 ' COLONNE DÉBUT DU TABLEAU
For LL = 0 To L
For CC = 0 To 5
TABL1(LL, CC) = Sheets("FEUIL1").Cells((LL + LIN1), (CC + COL1))
Sheets("FEUIL2").Cells((LL + 1), (CC + 1)) = TABL1(LL, CC)
Next CC
For CC = 35 To 35
TABL1(LL, CC) = Sheets("FEUIL1").Cells((LL + LIN1), (CC + COL1))
Sheets("FEUIL2").Cells((LL + 1), (7)) = TABL1(LL, CC)
Next CC
Next LL
End Sub
Sub FILTRE(TABL As Variant, CRIT As Variant, COLCR As Variant)
Sheets("FEUIL2").Range("A2:G1000").Clear
Dim L As Long
Dim LTABL1 As Long
Dim N As Long
Dim TABL1(1000, 40) As Variant
Dim TABL2(1000, 40) As Variant
LTABL1 = 1
L = 900
N = 6
LIN1 = 1 ' LIGNE DÉBUT DU TABLEAU
COL1 = 1 ' COLONNE DÉBUT DU TABLEAU
'TRIER TABLEAU
For LL = 0 To L
If TABL(LL, COLCR) = CRIT Then
For CC = 0 To N
TABL1(LTABL1, CC) = TABL(LL, CC)
Sheets("FEUIL2").Cells((LTABL1 + LIN1), (CC + COL1)) = TABL(LL, CC)
Next CC
LTABL1 = LTABL1 + 1
End If
Next LL
End Sub
je travaille sur un Userform, il n'est pas terminé, en VBA sur Excel.
J'ai un probleme avec mon Userform pour trier de l'inventaire , il plante si je l'utilise pour 2 produits sans le fermer.
Je veux m'en servir pour trier de l'inventaire et ajuster les quantités il fait référence a Feuil1 qui contient l'inventaire.
nom du userform : userform1. il fait référence a 2 marcros que j'ai mise en bas dans le message. si vous pouvez m'aider ca serait grandement apprécié. merci. Vince.
code :
Private Sub ComboBoxDESC_Change()
CRITERE = ComboBoxDESC.Value
COLCR = 2
'Remplir le tableau
Dim L As Long
Dim N As Long
Dim TABL1(1000, 40) As Variant
Dim TABL2(1000, 40) As Variant
L = 900 ' NB LIGNES DANS LE TABLEAU Inventaire
N = 6 ' NB COLONNES DANS LE TABLEAU Inventaire
For LL = 0 To L
For CC = 0 To N
TABL1(LL, CC) = Sheets("FEUIL2").Cells((LL + 1), (CC + 1))
Next CC
Next LL
BB = Application.Run("FILTRE", TABL1, CRITERE, COLCR)
For LL = 0 To L
For CC = 0 To N
TABL1(LL, CC) = Sheets("FEUIL2").Cells((LL + 1), (CC + 1))
Next CC
Next LL
ComboBoxGRADE.Clear
For I = 1 To L
If TABL1(I, 3) <> 0 Then
If TABL1(I, 3) <> TABL1((I - 1), 3) Then
ComboBoxGRADE.AddItem TABL1(I, 3)
End If
End If
Next
End Sub
Private Sub ComboBoxGRADE_Change()
CRITERE = ComboBoxGRADE.Value
COLCR = 3
'Remplir le tableau
Dim L As Long
Dim N As Long
Dim TABL1(1000, 40) As Variant
Dim TABL2(1000, 40) As Variant
L = 900 ' NB LIGNES DANS LE TABLEAU Inventaire
N = 6 ' NB COLONNES DANS LE TABLEAU Inventaire
For LL = 0 To L
For CC = 0 To N
TABL1(LL, CC) = Sheets("FEUIL2").Cells((LL + 1), (CC + 1))
Next CC
Next LL
BB = Application.Run("FILTRE", TABL1, CRITERE, COLCR)
For LL = 0 To L
For CC = 0 To N
TABL1(LL, CC) = Sheets("FEUIL2").Cells((LL + 1), (CC + 1))
Next CC
Next LL
ComboBoxLONG.Clear
For I = 1 To L
If TABL1(I, 3) <> 0 Then
If TABL1(I, 4) <> TABL1((I - 1), 4) Then
ComboBoxLONG.AddItem TABL1(I, 4)
End If
End If
Next
End Sub
Private Sub ComboBoxLONG_Change()
Dim CRITEREL As Long
CRITEREL = 0
CRITEREL = ComboBoxLONG.Value
COLCR = 4
'Remplir le tableau
Dim L As Long
Dim N As Long
Dim TABL1(1000, 40) As Variant
Dim TABL2(1000, 40) As Variant
L = 900 ' NB LIGNES DANS LE TABLEAU Inventaire
N = 6 ' NB COLONNES DANS LE TABLEAU Inventaire
For LL = 0 To L
For CC = 0 To N
TABL1(LL, CC) = Sheets("FEUIL2").Cells((LL + 1), (CC + 1))
Next CC
Next LL
BB = Application.Run("FILTRE", TABL1, CRITEREL, COLCR)
For LL = 0 To L
For CC = 0 To N
TABL1(LL, CC) = Sheets("FEUIL2").Cells((LL + 1), (CC + 1))
Next CC
Next LL
'ComboBoxLONG.Clear
'For I = 1 To L
' If TABL1(I, 3) <> 0 Then
' If TABL1(I, 4) <> TABL1((I - 1), 4) Then
' ComboBoxLONG.AddItem TABL1(I, 4)
' End If
' End If
'Next
End Sub
Private Sub CommandButtonANNULER_Click()
Unload Me
End Sub
Private Sub CommandButtonENR_Click()
End Sub
Private Sub OptionButtonC_Click()
If OptionButtonQUINC = True Then
OptionButtonC.Value = False
Else
Dim CRITERE As Variant
CRITERE = "C"
COLCR = 6
'Remplir le tableau
Dim L As Long
Dim N As Long
Dim TABL1(1000, 40) As Variant
Dim TABL2(1000, 40) As Variant
L = 900 ' NB LIGNES DANS LE TABLEAU Inventaire
N = 6 ' NB COLONNES DANS LE TABLEAU Inventaire
For LL = 0 To L
For CC = 0 To N
TABL1(LL, CC) = Sheets("FEUIL2").Cells((LL + 1), (CC + 1))
Next CC
Next LL
BB = Application.Run("FILTRE", TABL1, CRITERE, COLCR)
For LL = 0 To L
For CC = 0 To N
TABL1(LL, CC) = Sheets("FEUIL2").Cells((LL + 1), (CC + 1))
Next CC
Next LL
ComboBoxDESC.Clear
For I = 1 To L
If TABL1(I, 2) <> 0 Then
If TABL1(I, 2) <> TABL1((I - 1), 2) Then
ComboBoxDESC.AddItem TABL1(I, 2)
End If
End If
Next
End If
If 1 = 1 Then
Sheets("FEUIL2").Cells(1, 10) = ComboBoxLONG.Value
End If
End Sub
Private Sub OptionButtonHSS_Click()
If OptionButtonQUINC = True Then
OptionButtonHSS.Value = False
Else
CRITERE = "HSS"
End If
End Sub
Private Sub OptionButtonL_Click()
If OptionButtonQUINC = True Then
OptionButtonL.Value = False
Else
CRITERE = "L"
End If
End Sub
Private Sub OptionButtonFL_Click()
If OptionButtonQUINC = True Then
OptionButtonFL.Value = False
Else
CRITERE = "FL"
End If
End Sub
Private Sub OptionButtonACIER_Click()
ComboBoxDESC.Clear
ComboBoxGRADE.Clear
ComboBoxLONG.Clear
FrameForme.Visible = True
Dim CRITERE As Variant
CRITERE = "ACIER"
COLCR = 1
'Remplir le tableau
Dim L As Long
Dim N As Long
Dim TABL1(1000, 40) As Variant
Dim TABL2(1000, 40) As Variant
L = 900 ' NB LIGNES DANS LE TABLEAU Inventaire
N = 6 ' NB COLONNES DANS LE TABLEAU Inventaire
AA = Application.Run("REMPLIR", TABL1)
'TRIER
For LL = 0 To L
For CC = 0 To N
TABL1(LL, CC) = Sheets("FEUIL2").Cells((LL + 1), (CC + 1))
Next CC
Next LL
BB = Application.Run("FILTRE", TABL1, CRITERE, COLCR)
For LL = 0 To L
For CC = 0 To N
TABL1(LL, CC) = Sheets("FEUIL2").Cells((LL + 1), (CC + 1))
Next CC
Next LL
ComboBoxDESC.Clear
For I = 1 To L
If TABL1(I, 3) <> 0 Then
If TABL1(I, 2) <> TABL1((I - 1), 2) Then
ComboBoxDESC.AddItem TABL1(I, 2)
End If
End If
Next
End Sub
Private Sub OptionButtonPL_Click()
If OptionButtonQUINC = True Then
OptionButtonPL.Value = False
Else
CRITERE = "PL"
End If
End Sub
Private Sub OptionButtonQUINC_Click()
OptionButtonC.Value = False
OptionButtonL.Value = False
OptionButtonFL.Value = False
OptionButtonPL.Value = False
FrameForme.Visible = False
ComboBoxDESC.Clear
ComboBoxGRADE.Clear
ComboBoxLONG.Clear
Dim CRITERE As Variant
CRITERE = "QUINC"
COLCR = 1
'Remplir le tableau
Dim L As Long
Dim N As Long
Dim TABL1(1000, 40) As Variant
Dim TABL2(1000, 40) As Variant
L = 900 ' NB LIGNES DANS LE TABLEAU Inventaire
N = 6 ' NB COLONNES DANS LE TABLEAU Inventaire
AA = Application.Run("REMPLIR", TABL1)
'TRIER
For LL = 0 To L
For CC = 0 To N
TABL1(LL, CC) = Sheets("FEUIL2").Cells((LL + 1), (CC + 1))
Next CC
Next LL
BB = Application.Run("FILTRE", TABL1, CRITERE, COLCR)
For LL = 0 To L
For CC = 0 To N
TABL1(LL, CC) = Sheets("FEUIL2").Cells((LL + 1), (CC + 1))
Next CC
Next LL
ComboBoxDESC.Clear
For I = 1 To L
If TABL1(I, 2) <> 0 Then
If TABL1(I, 2) <> TABL1((I - 1), 2) Then
ComboBoxDESC.AddItem TABL1(I, 2)
End If
End If
Next
End Sub
Private Sub OptionButtonR_Click()
If OptionButtonQUINC = True Then
OptionButtonR.Value = False
Else
CRITERE = "R"
End If
End Sub
Sub UserForm_Initialize()
Sheets("FEUIL2").Range("A2:G900").Clear
'Remplir le tableau
Dim TABL1(1000, 40) As Variant
Dim TABL2(1000, 40) As Variant
AA = Application.Run("REMPLIR1", TABL1)
End Sub
'''les 2 Macros qui sont dans module1 :
Sub REMPLIR(TABL1 As Variant)
'Macro 1
'Remplir le TABLEAU VIRTUEL DE TRAVAIL
Dim L As Long
Dim N As Long
'Dim TABL1(1000, 40) As Variant
'Dim TABL2(1000, 40) As Variant
L = 900
N = 6
LIN1 = 4 ' LIGNE DÉBUT DU TABLEAU
COL1 = 1 ' COLONNE DÉBUT DU TABLEAU
For LL = 0 To L
For CC = 0 To 5
TABL1(LL, CC) = Sheets("FEUIL1").Cells((LL + LIN1), (CC + COL1))
Sheets("FEUIL2").Cells((LL + 1), (CC + 1)) = TABL1(LL, CC)
Next CC
For CC = 35 To 35
TABL1(LL, CC) = Sheets("FEUIL1").Cells((LL + LIN1), (CC + COL1))
Sheets("FEUIL2").Cells((LL + 1), (7)) = TABL1(LL, CC)
Next CC
Next LL
End Sub
Sub FILTRE(TABL As Variant, CRIT As Variant, COLCR As Variant)
Sheets("FEUIL2").Range("A2:G1000").Clear
Dim L As Long
Dim LTABL1 As Long
Dim N As Long
Dim TABL1(1000, 40) As Variant
Dim TABL2(1000, 40) As Variant
LTABL1 = 1
L = 900
N = 6
LIN1 = 1 ' LIGNE DÉBUT DU TABLEAU
COL1 = 1 ' COLONNE DÉBUT DU TABLEAU
'TRIER TABLEAU
For LL = 0 To L
If TABL(LL, COLCR) = CRIT Then
For CC = 0 To N
TABL1(LTABL1, CC) = TABL(LL, CC)
Sheets("FEUIL2").Cells((LTABL1 + LIN1), (CC + COL1)) = TABL(LL, CC)
Next CC
LTABL1 = LTABL1 + 1
End If
Next LL
End Sub
A voir également:
- Userform, GROS PROBLEME en VBA sur Excel
- Liste déroulante excel - Guide
- Mise en forme conditionnelle excel - Guide
- Word et excel gratuit - Guide
- Comment trier par ordre alphabétique sur excel - Guide
- Comment calculer la moyenne sur excel - Guide
11 réponses
le fichier est sur
http://www.cijoint.fr/cij97306280229435.xls
svp de l'aide serait bien appréciée.
merci.
Vince.
http://www.cijoint.fr/cij97306280229435.xls
svp de l'aide serait bien appréciée.
merci.
Vince.
Bonjour,
J'ai regarder ton document.
Je l'ai fait "tourner". Il y a bcp de chose incompréhensible.
Tu utilises une fonction qui alimente une plage sur une seconde feuille Excel à partir de données d'une première feuille excel. Tu utilises ensuite la plage de la deuxième feuille pour alimenter une combobox sur ton UserForm !!!
Pourquoi faire simple quand on peut faire compliquer !!!
- Peux tu me dire ce que tu attends exactement ???
- Est ce que ta UserForm fait de la restitution de données ???
- Y-a-t'il des champs modifiables ???
- Pourquoi n'utilises tu pas les objets Excel pour ta programmation en vba ???
...
@+
J'ai regarder ton document.
Je l'ai fait "tourner". Il y a bcp de chose incompréhensible.
Tu utilises une fonction qui alimente une plage sur une seconde feuille Excel à partir de données d'une première feuille excel. Tu utilises ensuite la plage de la deuxième feuille pour alimenter une combobox sur ton UserForm !!!
Pourquoi faire simple quand on peut faire compliquer !!!
- Peux tu me dire ce que tu attends exactement ???
- Est ce que ta UserForm fait de la restitution de données ???
- Y-a-t'il des champs modifiables ???
- Pourquoi n'utilises tu pas les objets Excel pour ta programmation en vba ???
...
@+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je veux mettre ce userform a disposition des travailleurs ici pour qu'ils entrent les modifications d'inventaire qu'ils utilisent.
je n'ai pas terminé toutes les fonctions, il reste la modification de la quantité du produit choisi dans la feuille "en cours".
je veux faire un userform pour éviter que les travailleurs se trompent en utilisant les fonctions de tri et de filtre dans excel.
je ne suis pas programmeur , c'est pour ca que ca peut paraitre bizzard a tes yeux.
je suis pret a modifier certaines choses si ca peut aider.
Merci.
je n'ai pas terminé toutes les fonctions, il reste la modification de la quantité du produit choisi dans la feuille "en cours".
je veux faire un userform pour éviter que les travailleurs se trompent en utilisant les fonctions de tri et de filtre dans excel.
je ne suis pas programmeur , c'est pour ca que ca peut paraitre bizzard a tes yeux.
je suis pret a modifier certaines choses si ca peut aider.
Merci.
D'ac ...
La première chose est de défénir les fonctions de ta UserForm :
"Je veux mettre ce userform a disposition des travailleurs ici pour qu'ils entrent les modifications d'inventaire qu'ils utilisent"
=> j'ai vu que tu avais fait une fonction de remplissage de ton inventaire dans ta combobox. Hors celle-ci est modifiable. Est ce que les utilisateurs pourront modifier cette zone ?
De plus les autres combobox sont aussi modifiables. Est ce que les utilisateurs pourront modifier ces zones ?
"il reste la modification de la quantité du produit choisi dans la feuille "en cours".
=> d'après ce que tu écris, il ne devrait y avoir que cette zones de saisissable ?
"en utilisant les fonctions de tri et de filtre dans excel"
Quel type de tri et de filtre veux tu effectuer ? Sont ils en relation avec les OptionButton "ACIER" et "QUINC" ?
Peux tu me faire un topo de ce tu attends exactement de cette UserForm, stpn, afin d'éclairer un peu plus ma lanterne???
"je ne suis pas programmeur , c'est pour ca que ca peut paraitre bizzard a tes yeux. "
Je suis prêt à modifier certaines choses si cela peut aussi t'aider, pour alléger ton code et le rendre un peu plus lisible et plus fonctionnel.
@+
La première chose est de défénir les fonctions de ta UserForm :
"Je veux mettre ce userform a disposition des travailleurs ici pour qu'ils entrent les modifications d'inventaire qu'ils utilisent"
=> j'ai vu que tu avais fait une fonction de remplissage de ton inventaire dans ta combobox. Hors celle-ci est modifiable. Est ce que les utilisateurs pourront modifier cette zone ?
De plus les autres combobox sont aussi modifiables. Est ce que les utilisateurs pourront modifier ces zones ?
"il reste la modification de la quantité du produit choisi dans la feuille "en cours".
=> d'après ce que tu écris, il ne devrait y avoir que cette zones de saisissable ?
"en utilisant les fonctions de tri et de filtre dans excel"
Quel type de tri et de filtre veux tu effectuer ? Sont ils en relation avec les OptionButton "ACIER" et "QUINC" ?
Peux tu me faire un topo de ce tu attends exactement de cette UserForm, stpn, afin d'éclairer un peu plus ma lanterne???
"je ne suis pas programmeur , c'est pour ca que ca peut paraitre bizzard a tes yeux. "
Je suis prêt à modifier certaines choses si cela peut aussi t'aider, pour alléger ton code et le rendre un peu plus lisible et plus fonctionnel.
@+
les combobox ne devraient pas etre modifiables, tu as raison,
l'utilisateur filtre les données avec le userform de la facon suivante :
type matériel, type acier, description, grade, longueur.
ensuite il tape la quantité utilisée.
cette quantité se déduit de la quantité disponible dans la colonne F de la feuille "En Cours".
merci.
l'utilisateur filtre les données avec le userform de la facon suivante :
type matériel, type acier, description, grade, longueur.
ensuite il tape la quantité utilisée.
cette quantité se déduit de la quantité disponible dans la colonne F de la feuille "En Cours".
merci.
ce fichier est fait avec les objets excel , je pense qu'il est moin compliqué pour ce que j'ai a faire :
http://www.cijoint.fr/cij94341793229531.xls
Vous me direz ce que vous en pensez.
Merci,
Vince.
http://www.cijoint.fr/cij94341793229531.xls
Vous me direz ce que vous en pensez.
Merci,
Vince.
Version Updatée par moi sur : http://www.cijoint.fr/cij27444086729504.xls
ca plante encore quand je fais plusieurs produits différents et aussi si on entre autre chose que des chiffres dans la case quantité utilisée.
Dites moi si vous y trouvez des solutions.
Merci.
Vince
ca plante encore quand je fais plusieurs produits différents et aussi si on entre autre chose que des chiffres dans la case quantité utilisée.
Dites moi si vous y trouvez des solutions.
Merci.
Vince
Bonjour,
Tu peux essayer ceci :
ou bien ceci :
Tu peux essayer ceci :
Private Sub TextBox_Validate(Cancel As Boolean) ' Vérifie si la valeur entrée est numérique If Not IsNumeric(TextBox.Text) Then Cancel = True ' Annule la validation de contrôle MsgBox "Veuillez entrer un nombre !" End If End Sub
ou bien ceci :
Private Sub TextBox_KeyPress(KeyAscii As Integer) ' Si la valeur n'est pas comprise entre 0 et 9 et qu'elle n'est pas un backspace If Not ((KeyAscii >= 48 And KeyAscii <= 57) Or KeyAscii = 8) Then KeyAscii = 0 'on annule la pression sur la touche End If End Sub