AIde sur code VBA

mamatt62

XLDnaute Junior
Bonjour,

vous trouverez en pièce jointe le fichier que je tente de faire.

Le bouton pour afficher le formulaire se trouve en feuille 2 cependant tout fonctionne mise a part le fait que mes prix affichés sont toujours les 3 mêmes ( soient ceux des 3 premiers véhicules) et je n'arrive pas à faire en sorte que cela s'applique sur l'ensemble des véhicules.

Si qq1 pouvait m'indiquer la manipulation à faire ce serait top.

Merci d'avance pour votre aide.

Je suis sur le pc donc si vous avez des questions n'hésitez pas je vous répondrais le plus vite possible.
 

Pièces jointes

  • fichier test.xlsm
    37.8 KB · Affichages: 37
  • fichier test.xlsm
    37.8 KB · Affichages: 54
  • fichier test.xlsm
    37.8 KB · Affichages: 40

mamatt62

XLDnaute Junior
Re : AIde sur code VBA

Bonjour Bruno,

c'est le fait d'avoir un 1 dans la colonne qui détermine le montant des équipements par modèles. Donc pour les mII j'ai bien les valorisation pour ces 3 modèles et ils sont bons mais j'ai les mêmes valorisation pour les autres modèles alors qu'ils devraient être différents.
 
C

Compte Supprimé 979

Guest
Re : AIde sur code VBA

Re,

Autant pour moi, c'est le calcul de la colonne qui est complètement faux :(:eek:

Il faut :
1) trouver la 1ère colonne de la marque
2) additionner à cette colonne le choix du modèle
Code:
' Col = 1ère colonne trouvée de la marque + choix du modèleCol = Application.WorksheetFunction.Match(Me.CbBMarques1, Sheets("Feuil1").Rows(1), 0)
Col = Col + Me.ComboBox1.ListIndex

Il faut donc changer les 2 codes des Combobox1 et 2 par
VB:
Private Sub ComboBox1_Change()
  Dim Col As Integer, DLig As Long, Lig As Long, Tot As Single
  ' Vider la Listbox des options et prix
  Me.ListBox1.Clear
  ' Col = 1ère colonne trouvée de la marque + choix du modèle
  Col = Application.WorksheetFunction.Match(Me.CbBMarques1, Sheets("Feuil1").Rows(1), 0)
  Col = Col + Me.ComboBox1.ListIndex
  ' Si aucun choix fait dans le modèle, on sort
  If Me.ComboBox1.ListIndex = -1 Then Exit Sub
  ' Sinon on récupère les options
  With Sheets("Feuil1")
    'DLig = Range("U" & Rows.Count).End(xlUp).Rows
    DLig = 72
    Tot = 0
    For Lig = 21 To DLig
      If .Cells(Lig, Col).Value <> 0 Then
        Me.ListBox1.AddItem .Range("C" & Lig)
        Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Format(.Range("B" & Lig).Value, "0€")
        Tot = Tot + CDec(.Range("B" & Lig))
      End If
    Next Lig
  End With
  Me.Label1.Caption = Format(Tot, "0€")
End Sub


Private Sub ComboBox2_Change()
  Dim Col As Integer, DLig As Long, Lig As Long, Tot As Single
  ' Vider la Listbox des options et prix
  Me.ListBox2.Clear
  ' Col = 1ère colonne trouvée de la marque + choix du modèle
  Col = Application.WorksheetFunction.Match(Me.CbBMarques2, Sheets("Feuil1").Rows(1), 0)
  Col = Col + Me.ComboBox2.ListIndex
  ' Si aucun choix fait dans le modèle, on sort
  If Me.ComboBox2.ListIndex = -1 Then Exit Sub
  ' Sinon on récupère les options
  With Sheets("Feuil1")
    'DLig = .Range("I" & Rows.Count).End(xlUp).Rows
    DLig = 72
    Tot = 0
    For Lig = 21 To DLig
      If .Cells(Lig, Col).Value <> 0 Then
        Me.ListBox2.AddItem .Range("C" & Lig)
        Me.ListBox2.List(Me.ListBox2.ListCount - 1, 1) = Format(.Range("B" & Lig).Value, "0,00 €")
        Tot = Tot + CDec(.Range("B" & Lig))
      End If
    Next Lig
  End With
  Me.Label2.Caption = Format(Tot, "0,00 €")
End Sub

A+
 

mamatt62

XLDnaute Junior
Re : AIde sur code VBA

Ca marche super Bruno et en plus j'ai l'explication de comment tu as fait c'est génial :)

Merci à toi.

J'ai essayé aussi de créer un bouton pour tout remettre à zéro en entrant ce code mais ca ne fonctionne pas, t'aurais peut être une piste

ListBox1.Clear
ListBox2.Clear
ComboBox1.Clear
ComboBox2.Clear
 

Discussions similaires

Statistiques des forums

Discussions
312 310
Messages
2 087 110
Membres
103 472
dernier inscrit
garnoux57