filierfilier
XLDnaute Junior
bonjour à tous, j'aurai bien besoin de votre aide concernant mon fichier (achats fournisseurs 1) qui a pour simplifié, deux onglets :
1) " base plan" où se trouve les genres de plats, la source pour le nom des genres et le nom des produits
2) "Recettes" où je peux, créer, supprimer et modifier les recettes
Après plusieurs essais pas très concluant, je n'y suis plus.
Plusieurs soucis concernant le code de ce fichier en cliquant dans l'onglet Recettes sur Créer ou modifier une recette :
1) incrémentation dans les onglets recettes et base plan, du genre de la recette qui ne se fait plus.
2) problème également dans l'affichage des ingrédients après le troisième textbox
3) à voir aussi pour la modification et suppression des recettes fonctionne aussi
4) arrondir avec un chiffre entier le calcul des quantités automatiques.
Voilà si quelqu'un peut me trouver une solution, je suis preneur. Grand merci à tous !
Code :
Private Sub UserForm_Initialize()
Me("Genre").RowSource = "genre"
Me.Nombre_convive = ""
Me.Note = ""
For I = 1 To 3
Me("Ingredient_" & I).RowSource = "nomproduits"
Me("Quantite_" & I) = ""
Me("qp_" & I) = ""
Next I
End Sub
Private Sub B_validation_quantite_Click()
Dim T As Double, A As Double, B As Double, c As Double, D As Double, E As Double, F As Double, G As Double, H As Double
If IsNumeric(Me.Nombre_convive) Then
Nc = CDbl(Me.Nombre_convive)
End If
If IsNumeric(Me.Quantite_1) Then
Q1 = CDbl(Me.Quantite_1)
End If
If IsNumeric(Me.Quantite_2) Then
Q2 = CDbl(Me.Quantite_2)
End If
If IsNumeric(Me.Quantite_3) Then
Q3 = CDbl(Me.Quantite_3)
End If
If IsNumeric(Me.Quantite_4) Then
Q4 = CDbl(Me.Quantite_4)
End If
If IsNumeric(Me.Quantite_5) Then
Q5 = CDbl(Me.Quantite_5)
End If
If IsNumeric(Me.Quantite_6) Then
Q6 = CDbl(Me.Quantite_6)
End If
If IsNumeric(Me.Quantite_7) Then
Q7 = CDbl(Me.Quantite_7)
End If
If IsNumeric(Me.Quantite_8) Then
Q8 = CDbl(Me.Quantite_8)
End If
Me.qp_1 = Format(Q1 / Nc, "0.000")
Me.qp_2 = Format(Q2 / Nc, "0.000")
Me.qp_3 = Format(Q3 / Nc, "0.000")
Me.qp_4 = Format(Q4 / Nc, "0.000")
Me.qp_5 = Format(Q5 / Nc, "0.000")
Me.qp_6 = Format(Q6 / Nc, "0.000")
Me.qp_7 = Format(Q7 / Nc, "0.000")
Me.qp_8 = Format(Q8 / Nc, "0.000")
Application.ScreenUpdating = True
End Sub
Private Sub B_valider_Click()
Dim I As Integer, DLig As Long
'--- Positionnement dans la base
With Sheets("Recettes")
.Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Select
'--- Transfert Formulaire dans BD
ActiveCell.Offset(0, 1).Value = Me.Nom_de_la_recette
For I = 2 To 18 Step 2
ActiveCell.Offset(0, I).Value = Me("Ingredient_" & I / 2)
ActiveCell.Offset(0, 1 + I).Value = Me("qp_" & I / 2)
ActiveCell.Offset(0, 18).Value = Me.Note
Next I
' Choix de la recette
For I = 1 To 18
If Me("Genre") = True Then
ActiveCell.Value = Me("Genre").Caption
' Inscrire le nom de la recette dans la listes des plats
' En partant du principe que les OptionButton sont dans le mêmes sens que sur la feuille : Liste des plats
With Sheets("Base plan")
' Trouver la dernière ligne de la colonne concernée
DLig = .Cells(Rows.Count, I).End(xlUp).Row + 1
.Cells(DLig, I).Value = Me.Nom_de_la_recette
End With
' Sortir de la boucle
Exit For
End If
Next I
End With
'--
nettoie
End Sub
1) " base plan" où se trouve les genres de plats, la source pour le nom des genres et le nom des produits
2) "Recettes" où je peux, créer, supprimer et modifier les recettes
Après plusieurs essais pas très concluant, je n'y suis plus.
Plusieurs soucis concernant le code de ce fichier en cliquant dans l'onglet Recettes sur Créer ou modifier une recette :
1) incrémentation dans les onglets recettes et base plan, du genre de la recette qui ne se fait plus.
2) problème également dans l'affichage des ingrédients après le troisième textbox
3) à voir aussi pour la modification et suppression des recettes fonctionne aussi
4) arrondir avec un chiffre entier le calcul des quantités automatiques.
Voilà si quelqu'un peut me trouver une solution, je suis preneur. Grand merci à tous !
Code :
Private Sub UserForm_Initialize()
Me("Genre").RowSource = "genre"
Me.Nombre_convive = ""
Me.Note = ""
For I = 1 To 3
Me("Ingredient_" & I).RowSource = "nomproduits"
Me("Quantite_" & I) = ""
Me("qp_" & I) = ""
Next I
End Sub
Private Sub B_validation_quantite_Click()
Dim T As Double, A As Double, B As Double, c As Double, D As Double, E As Double, F As Double, G As Double, H As Double
If IsNumeric(Me.Nombre_convive) Then
Nc = CDbl(Me.Nombre_convive)
End If
If IsNumeric(Me.Quantite_1) Then
Q1 = CDbl(Me.Quantite_1)
End If
If IsNumeric(Me.Quantite_2) Then
Q2 = CDbl(Me.Quantite_2)
End If
If IsNumeric(Me.Quantite_3) Then
Q3 = CDbl(Me.Quantite_3)
End If
If IsNumeric(Me.Quantite_4) Then
Q4 = CDbl(Me.Quantite_4)
End If
If IsNumeric(Me.Quantite_5) Then
Q5 = CDbl(Me.Quantite_5)
End If
If IsNumeric(Me.Quantite_6) Then
Q6 = CDbl(Me.Quantite_6)
End If
If IsNumeric(Me.Quantite_7) Then
Q7 = CDbl(Me.Quantite_7)
End If
If IsNumeric(Me.Quantite_8) Then
Q8 = CDbl(Me.Quantite_8)
End If
Me.qp_1 = Format(Q1 / Nc, "0.000")
Me.qp_2 = Format(Q2 / Nc, "0.000")
Me.qp_3 = Format(Q3 / Nc, "0.000")
Me.qp_4 = Format(Q4 / Nc, "0.000")
Me.qp_5 = Format(Q5 / Nc, "0.000")
Me.qp_6 = Format(Q6 / Nc, "0.000")
Me.qp_7 = Format(Q7 / Nc, "0.000")
Me.qp_8 = Format(Q8 / Nc, "0.000")
Application.ScreenUpdating = True
End Sub
Private Sub B_valider_Click()
Dim I As Integer, DLig As Long
'--- Positionnement dans la base
With Sheets("Recettes")
.Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Select
'--- Transfert Formulaire dans BD
ActiveCell.Offset(0, 1).Value = Me.Nom_de_la_recette
For I = 2 To 18 Step 2
ActiveCell.Offset(0, I).Value = Me("Ingredient_" & I / 2)
ActiveCell.Offset(0, 1 + I).Value = Me("qp_" & I / 2)
ActiveCell.Offset(0, 18).Value = Me.Note
Next I
' Choix de la recette
For I = 1 To 18
If Me("Genre") = True Then
ActiveCell.Value = Me("Genre").Caption
' Inscrire le nom de la recette dans la listes des plats
' En partant du principe que les OptionButton sont dans le mêmes sens que sur la feuille : Liste des plats
With Sheets("Base plan")
' Trouver la dernière ligne de la colonne concernée
DLig = .Cells(Rows.Count, I).End(xlUp).Row + 1
.Cells(DLig, I).Value = Me.Nom_de_la_recette
End With
' Sortir de la boucle
Exit For
End If
Next I
End With
'--
nettoie
End Sub
Pièces jointes
Dernière édition: