Code VBA prix revient

Bonjour,

j'ai un soucis avec mon code VBA. Je dois créer une interface affichant pour

chaque produit sélectionné dans une liste: le prix de revient et le prix du composant le plus

onéreux.

J'ai créer un code cependant celui-ci ne fonctionne pas et je n'arrive pas à détecter l'erreur.

Ci-joint le fichier, en vous remerciant d'avance.

28essaivba.xltm (70.47 Ko)

Hello,

Private Sub Cmd_Prix_Revient_Click()

Dim i As Integer
Dim codepdt As String
Dim matierepremiere As Integer
Dim j As Integer
Dim quantite As Double
Dim prixmax As Double
Dim prixtotale As Double
Dim k As Integer

i = 2

While Sheets("Prod°Finis").Cells(i, 1).Value <> ""
    codepdt = Sheets("Prod°Finis").Cells(i, 1).Value

    j = 1
        While Sheets("Mat1°-Prod Finis").Cells(j, 1).Value <> ""
              If codepdt = Sheets("Mat1°-Prod Finis").Cells(j, 1).Value Then

                    matierepremiere = Sheets("Mat1°-Prod Finis").Cells(j, 2).Value
                    quantite = Sheets("Mat1°-Prod Finis").Cells(j, 3).Value
                    Sheets("Prix-Mat°Prem-Fourn").Activate
                    k = 1
                        While Sheets("Prix-Mat°Prem-Fourn").Cells(k, 1).Value <> ""

                            If matierepremiere = Sheets("Prix-Mat°Prem-Fourn").Cells(k, 2).Value Then

                            prixtotale = Round(prixtotale + Sheets("Prix-Mat°Prem-Fourn").Cells(k, 3).Value * quantite)

                                If Sheets("Prix-Mat°Prem-Fourn").Cells(k, 3).Value > prixmax Then

                                    prixmax = Sheets("Prix-Mat°Prem-Fourn").Cells(k, 3).Value

                                End If

                            End If
                            k = k + 1
                        Wend
                 Sheets("Mat1°-Prod Finis").Activate

Sheets("Prod°Finis").Activate

                End If

            j = j + 1

        Wend

UserForm1.Txt_Prix_Revient = UserForm1.Txt_Prix_Revient & "  Prix de revient " & Range("B" & i).Value & "  :  " & prixtotale & "€" & Chr(10) & "  Prix du composant le plus cher :  " & prixmax & "€" & Chr(10) & Chr(10)
Range("E" & i).Value = prixtotale
i = i + 1
prixtotale = 0
prixmax = 0

Wend

UserForm1.Show

End Sub

R@g

Bonjour,

Je vous remercie de votre réponse. Est-ce normal que mon écran beugue lorsque j'appuie sur prix de revient ? De plus, savez-vous comment faire pour obtenir des espaces lorsque j'obtiens le résultat ? ( que cela aille à la ligne à chaque réponse)

vba excel

Hello,

J'ai pas vu de bug de mon côté.

Vous entendez quoi par "bug" ?

Je pense que vous voulez des sauts de ligne et non des espaces :

Par exemple ==>

UserForm1.Txt_Prix_Revient = UserForm1.Txt_Prix_Revient & "  Prix de revient " & Range("B" & i).Value & "  :  " & prixtotale & "€" & Chr(13) & Chr(10) & "  Prix du composant le plus cher :  " & prixmax & "€" & Chr(13) & Chr(10)

Il faut utiliser cette syntaxe pour sauter une ligne :

Chr(13) & Chr(10)

R@g

Même en mettant cette syntaxe cela ne fonctionne pas pour le saut de ligne.

Il y a un beug quand je clique sur "calculer le prix " l'image bouge.

10essaivba11.xltm (71.09 Ko)

Hello,

C'est normal que l'image bouge ça fait souvent ça quand une macro s'execute sinon il faut passer par :

Application.ScreenUpdating = False 

Mais bon pas besoin pour cette macro ...

Vous voulez ajouter des espaces dans la listbox c'est ça ?

R@g

Bonjour ,

j'aimerais obtenir quelque chose comme ceux-ci.

prix de revient

Hello,

UserForm1.Txt_Prix_Revient = UserForm1.Txt_Prix_Revient & "  Prix de revient " & Range("B" & i).Value & "  :  " & prixtotale & "€" & Chr(13) & Chr(10)  & "  Prix du composant le plus cher :  " & prixmax & "€" &  Chr(13) & Chr(10) & Chr(10)
Range("E" & i).Value = prixtotale

a tester

R@G

Bonjour,

même avec ce code, cela ne fonctionne pas

Rechercher des sujets similaires à "code vba prix revient"