OVH Cloud OVH Cloud

Donnée erronées, aprés changement de valeur dans une ComboBox

9 réponses
Avatar
Jacques
Salut a toutes et tous

Je réhitère mes soucient, car je ne sais pas si mon post c'est perdu.
Donc j'ai deux petits soucie :

Le premier :

Si je choisi un type de soirée et que je met sois un accompte, soit une
réduction ou même les deux et que je veuille modifier le type de soirée les
calculs me donnent des valeur qui n'on rien a voir.

Y'a t'il moyen d'y remedier ?

Le deuxième :

Cela est pour la valeur de l'accomte.

Pour le moment je passe par un ComboBox.Additem, mais cela serait il
possible de faire en sorte que l'accompte ne dépasse pas la valeur du prix
de départ.

Voice les codes :

Dans un module :

Option Explicit
Public TypeDeSoiree As Byte


Dans l'userform :

Option Explicit

Dim Plage, PlagePrix As Range
Dim A, B, C, D As Long
Dim WSDonnees, WSDonneesPrix As Worksheet
Dim PlageTypeDeSoirée As String
Dim L As Integer 'Déclaration de variable "L" pour connaitre la Ligne Numéro

Private Sub cbxAccompteEuros_Change()

On Error Resume Next

If cbxAccompteEuros.Text = "" Then
txtAccompteFrancs = ""
End If
If cbxAccompteEuros = "" Then
lblAccompteFrancs.ForeColor = &H80000008
lblAccompteEuros.ForeColor = &H80000008
Else
lblAccompteFrancs.ForeColor = &HFF0000
lblAccompteEuros.ForeColor = &HFF0000
End If
If cbxAccompteEuros <> "" Then
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros)
End If

If cbxAccompteEuros <> "" Then
txtAccompteFrancs = CDbl(cbxAccompteEuros) * 6.55957
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs)
End If


lblAccompteEuros.Visible = True
txtAccompteFrancs.Visible = True
End Sub

Private Sub cbxReduction_Change()
On Error Resume Next
If cbxReduction = "" Then
txtMontantRemiseEuros = ""
txtMontantRemiseFrancs = ""
lblMontantRemiseEuros.Visible = False
lblMontantRemiseFrancs.Visible = False
txtMontantRemiseEuros.Visible = False
txtMontantRemiseFrancs.Visible = False
Else
lblMontantRemiseEuros.Visible = True
lblMontantRemiseFrancs.Visible = True
txtMontantRemiseEuros.Visible = True
txtMontantRemiseFrancs.Visible = True
End If
txtMontantRemiseEuros = CDbl(txtPrixEuros) * CDbl(cbxReduction) / 100
txtMontantRemiseFrancs = CDbl(txtMontantRemiseEuros) * 6.55957

If cbxReduction <> "" Then
txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros) -
CDbl(txtMontantRemiseEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros)
End If
If cbxReduction <> "" Then
txtSoldeFrancs = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseFrancs)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) - CDbl(cbxAccompteEuros)
End If
If cbxAccompteEuros <> "" Then
txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros) -
CDbl(txtMontantRemiseEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(txtMontantRemiseEuros)
End If

If cbxAccompteEuros <> "" Then
txtSoldeFrancs = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseFrancs)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) - CDbl(txtMontantRemiseFrancs)
End If

'txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros) -
CDbl(txtMontantRemiseEuros)
'txtSoldeFrancs = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseFrancs)

End Sub


Private Sub cbxTypeDeSoiree_Change()
Set WSDonneesPrix = Sheets("Prix")
Set PlagePrix = WSDonneesPrix.Range("B4:B" &
WSDonneesPrix.Range("D65535").End(xlUp).Row)
On Error Resume Next
D = PlagePrix.Find(What:=cbxTypeDeSoiree, LookAt:=xlWhole).Row
With WSDonneesPrix
txtPrixEuros = .Range("C" & D)
End With
If cbxTypeDeSoiree = "" Then
cbxAccompteEuros = ""
cbxReduction = ""
txtPrixFrancs = ""
txtPrixEuros = ""
txtAccompteFrancs = ""
txtSoldeFrancs = ""
txtSoldeEuros = ""
cbxAccompteEuros.Enabled = False
cbxReduction.Enabled = False
Else
cbxAccompteEuros.Enabled = True
cbxReduction.Enabled = True

End If

lblPrixFrancs.Visible = True
txtPrixFrancs.Visible = True
End Sub


Private Sub cmdQuitter_Click()
Unload Me
End Sub

Private Sub txtAccompteFrancs_Change()
On Error Resume Next
txtAccompteFrancs = Format(txtAccompteFrancs, "##,##0.00")
End Sub

Private Sub txtMontantRemiseEuros_Change()
txtMontantRemiseEuros = Format(txtMontantRemiseEuros, "##,##0.00")
End Sub

Private Sub txtMontantRemiseFrancs_Change()
txtMontantRemiseFrancs = Format(txtMontantRemiseFrancs, "##,##0.00")
End Sub

Private Sub txtPortableDeLaMariee_Change()
PhoneFormat txtPortableDeLaMariee
End Sub

Private Sub txtPortableDuMarie_Change()
PhoneFormat txtPortableDuMarie
End Sub

Private Sub txtPrixFrancs_Change()
txtPrixFrancs = Format(txtPrixFrancs, "##,##0.00")
End Sub

Private Sub txtDateDeLaPrestation_Change()
txtDateDeLaPrestation = Application.Proper(Format(Calendar1.Value, "dddd d
mmmm yyyy"))
End Sub

Private Sub txtDateDeLaPrestation_DblClick(ByVal Cancel As
MSForms.ReturnBoolean)
Calendar1.Visible = True
End Sub

Private Sub txtSoldeFrancs_Change()

txtSoldeFrancs = Format(txtSoldeFrancs, "##,##0.00")

If txtSoldeFrancs > 0 Then
lblSoldeFrancs.ForeColor = &HFF&
lblSoldeEuros.ForeColor = &HFF&
Else
lblSoldeFrancs.ForeColor = &H80000008
lblSoldeEuros.ForeColor = &H80000008
End If

End Sub

Private Sub txtAccompteEuros_Change()

On Error Resume Next
txtAccompteEuros = Format(txtAccompteEuros, "##,##0.00")
txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(txtAccompteEuros)
End Sub
Private Sub txtPrixEuros_Change()

On Error Resume Next

If txtPrixEuros <> "" Then
txtPrixFrancs = CDbl(txtPrixEuros) * 6.55957
If cbxAccompteEuros <> "" Then
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros)
End If
If cbxReduction <> "" Then
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseEuros)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs)
End If
Else
txtPrixEuros = ""
If cbxAccompteEuros <> "" Then
txtSoldeEuros.Value = -CDbl(cbxAccompteEuros)
Else
txtSoldeEuros.Value = ""
End If
If cbxAccompteEuros <> "" Then
txtSoldeFrancs.Value = -CDbl(txtAccompteFrancs)
Else
txtSoldeFrancs.Value = ""
End If


End If

txtPrixEuros = Format(txtSoldeEuros, "##,##0.00")

lblAccompteFrancs.Visible = True
cbxAccompteEuros.Visible = True
lblSoldeFrancs.Visible = True
txtSoldeFrancs.Visible = True
lblPrixEuros.Visible = True
txtPrixEuros.Visible = True
lblSoldeEuros.Visible = True
txtSoldeEuros.Visible = True

End Sub
Private Sub txtSoldeEuros_Change()
On Error Resume Next
txtSoldeEuros = Format(txtSoldeEuros, "##,##0.00")
End Sub
Private Sub txtNomDuMarie_Change()
txtNomDuMarie.Value = UCase(txtNomDuMarie.Value)
End Sub
Private Sub txtPrenomDuMarie_Change()
txtPrenomDuMarie = Application.Proper(txtPrenomDuMarie)
End Sub
Private Sub txtNomDeLaMariee_Change()
txtNomDeLaMariee.Value = UCase(txtNomDeLaMariee.Value)
End Sub
Private Sub txtPrenomDeLaMariee_Change()
txtPrenomDeLaMariee = Application.Proper(txtPrenomDeLaMariee)
End Sub

Private Sub UserForm_Initialize()
Dim Ctrl As Control
'Ici je vide les Controls
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is MSForms.TextBox Or TypeOf Ctrl Is MSForms.ComboBox Then
Ctrl = ""
End If
Next Ctrl

cbxAccompteEuros.Enabled = False
cbxReduction.Enabled = False
lblMontantRemiseEuros.Visible = False
lblMontantRemiseFrancs.Visible = False
txtMontantRemiseEuros.Visible = False
txtMontantRemiseFrancs.Visible = False

' Choix des Organisateurs, Nom des salles, Traiteurs, Type de soirée
Set WSDonneesPrix = Worksheets("Prix")
With WSDonneesPrix
PlageTypeDeSoirée = .Range("B4:B" & .Range("B2000").End(xlUp).Row).Address
End With
cbxTypeDeSoiree.RowSource = "Prix!" & PlageTypeDeSoirée

' Choix de l'accompt
cbxAccompteEuros.AddItem "100,00"
cbxAccompteEuros.AddItem "200,00"
cbxAccompteEuros.AddItem "300,00"

'Réduction
cbxReduction.AddItem "10"
cbxReduction.AddItem "15"
cbxReduction.AddItem "20"

End Sub

En vous remerciant par avance, Jacques

9 réponses

Avatar
Daniel
Bonjour.
Difficile de comprendre ce que tu veux faire avec ton userform. Peux-tu
préciser et donner un exemple de ce qui ne fonctionne pas (ce que tu devrais
obtenir et ce que tu obtiens, par exemple.
Cordialement.
Daniel
"Jacques" a écrit dans le message de news:
4365401c$0$1021$
Salut a toutes et tous

Je réhitère mes soucient, car je ne sais pas si mon post c'est perdu.
Donc j'ai deux petits soucie :

Le premier :

Si je choisi un type de soirée et que je met sois un accompte, soit une
réduction ou même les deux et que je veuille modifier le type de soirée
les
calculs me donnent des valeur qui n'on rien a voir.

Y'a t'il moyen d'y remedier ?

Le deuxième :

Cela est pour la valeur de l'accomte.

Pour le moment je passe par un ComboBox.Additem, mais cela serait il
possible de faire en sorte que l'accompte ne dépasse pas la valeur du prix
de départ.

Voice les codes :

Dans un module :

Option Explicit
Public TypeDeSoiree As Byte


Dans l'userform :

Option Explicit

Dim Plage, PlagePrix As Range
Dim A, B, C, D As Long
Dim WSDonnees, WSDonneesPrix As Worksheet
Dim PlageTypeDeSoirée As String
Dim L As Integer 'Déclaration de variable "L" pour connaitre la Ligne
Numéro

Private Sub cbxAccompteEuros_Change()

On Error Resume Next

If cbxAccompteEuros.Text = "" Then
txtAccompteFrancs = ""
End If
If cbxAccompteEuros = "" Then
lblAccompteFrancs.ForeColor = &H80000008
lblAccompteEuros.ForeColor = &H80000008
Else
lblAccompteFrancs.ForeColor = &HFF0000
lblAccompteEuros.ForeColor = &HFF0000
End If
If cbxAccompteEuros <> "" Then
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros)
End If

If cbxAccompteEuros <> "" Then
txtAccompteFrancs = CDbl(cbxAccompteEuros) * 6.55957
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs)
End If


lblAccompteEuros.Visible = True
txtAccompteFrancs.Visible = True
End Sub

Private Sub cbxReduction_Change()
On Error Resume Next
If cbxReduction = "" Then
txtMontantRemiseEuros = ""
txtMontantRemiseFrancs = ""
lblMontantRemiseEuros.Visible = False
lblMontantRemiseFrancs.Visible = False
txtMontantRemiseEuros.Visible = False
txtMontantRemiseFrancs.Visible = False
Else
lblMontantRemiseEuros.Visible = True
lblMontantRemiseFrancs.Visible = True
txtMontantRemiseEuros.Visible = True
txtMontantRemiseFrancs.Visible = True
End If
txtMontantRemiseEuros = CDbl(txtPrixEuros) * CDbl(cbxReduction) / 100
txtMontantRemiseFrancs = CDbl(txtMontantRemiseEuros) * 6.55957

If cbxReduction <> "" Then
txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros) -
CDbl(txtMontantRemiseEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros)
End If
If cbxReduction <> "" Then
txtSoldeFrancs = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseFrancs)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) - CDbl(cbxAccompteEuros)
End If
If cbxAccompteEuros <> "" Then
txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros) -
CDbl(txtMontantRemiseEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(txtMontantRemiseEuros)
End If

If cbxAccompteEuros <> "" Then
txtSoldeFrancs = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseFrancs)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) - CDbl(txtMontantRemiseFrancs)
End If

'txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros) -
CDbl(txtMontantRemiseEuros)
'txtSoldeFrancs = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseFrancs)

End Sub


Private Sub cbxTypeDeSoiree_Change()
Set WSDonneesPrix = Sheets("Prix")
Set PlagePrix = WSDonneesPrix.Range("B4:B" &
WSDonneesPrix.Range("D65535").End(xlUp).Row)
On Error Resume Next
D = PlagePrix.Find(What:ËxTypeDeSoiree, LookAt:=xlWhole).Row
With WSDonneesPrix
txtPrixEuros = .Range("C" & D)
End With
If cbxTypeDeSoiree = "" Then
cbxAccompteEuros = ""
cbxReduction = ""
txtPrixFrancs = ""
txtPrixEuros = ""
txtAccompteFrancs = ""
txtSoldeFrancs = ""
txtSoldeEuros = ""
cbxAccompteEuros.Enabled = False
cbxReduction.Enabled = False
Else
cbxAccompteEuros.Enabled = True
cbxReduction.Enabled = True

End If

lblPrixFrancs.Visible = True
txtPrixFrancs.Visible = True
End Sub


Private Sub cmdQuitter_Click()
Unload Me
End Sub

Private Sub txtAccompteFrancs_Change()
On Error Resume Next
txtAccompteFrancs = Format(txtAccompteFrancs, "##,##0.00")
End Sub

Private Sub txtMontantRemiseEuros_Change()
txtMontantRemiseEuros = Format(txtMontantRemiseEuros, "##,##0.00")
End Sub

Private Sub txtMontantRemiseFrancs_Change()
txtMontantRemiseFrancs = Format(txtMontantRemiseFrancs, "##,##0.00")
End Sub

Private Sub txtPortableDeLaMariee_Change()
PhoneFormat txtPortableDeLaMariee
End Sub

Private Sub txtPortableDuMarie_Change()
PhoneFormat txtPortableDuMarie
End Sub

Private Sub txtPrixFrancs_Change()
txtPrixFrancs = Format(txtPrixFrancs, "##,##0.00")
End Sub

Private Sub txtDateDeLaPrestation_Change()
txtDateDeLaPrestation = Application.Proper(Format(Calendar1.Value, "dddd d
mmmm yyyy"))
End Sub

Private Sub txtDateDeLaPrestation_DblClick(ByVal Cancel As
MSForms.ReturnBoolean)
Calendar1.Visible = True
End Sub

Private Sub txtSoldeFrancs_Change()

txtSoldeFrancs = Format(txtSoldeFrancs, "##,##0.00")

If txtSoldeFrancs > 0 Then
lblSoldeFrancs.ForeColor = &HFF&
lblSoldeEuros.ForeColor = &HFF&
Else
lblSoldeFrancs.ForeColor = &H80000008
lblSoldeEuros.ForeColor = &H80000008
End If

End Sub

Private Sub txtAccompteEuros_Change()

On Error Resume Next
txtAccompteEuros = Format(txtAccompteEuros, "##,##0.00")
txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(txtAccompteEuros)
End Sub
Private Sub txtPrixEuros_Change()

On Error Resume Next

If txtPrixEuros <> "" Then
txtPrixFrancs = CDbl(txtPrixEuros) * 6.55957
If cbxAccompteEuros <> "" Then
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros)
End If
If cbxReduction <> "" Then
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseEuros)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs)
End If
Else
txtPrixEuros = ""
If cbxAccompteEuros <> "" Then
txtSoldeEuros.Value = -CDbl(cbxAccompteEuros)
Else
txtSoldeEuros.Value = ""
End If
If cbxAccompteEuros <> "" Then
txtSoldeFrancs.Value = -CDbl(txtAccompteFrancs)
Else
txtSoldeFrancs.Value = ""
End If


End If

txtPrixEuros = Format(txtSoldeEuros, "##,##0.00")

lblAccompteFrancs.Visible = True
cbxAccompteEuros.Visible = True
lblSoldeFrancs.Visible = True
txtSoldeFrancs.Visible = True
lblPrixEuros.Visible = True
txtPrixEuros.Visible = True
lblSoldeEuros.Visible = True
txtSoldeEuros.Visible = True

End Sub
Private Sub txtSoldeEuros_Change()
On Error Resume Next
txtSoldeEuros = Format(txtSoldeEuros, "##,##0.00")
End Sub
Private Sub txtNomDuMarie_Change()
txtNomDuMarie.Value = UCase(txtNomDuMarie.Value)
End Sub
Private Sub txtPrenomDuMarie_Change()
txtPrenomDuMarie = Application.Proper(txtPrenomDuMarie)
End Sub
Private Sub txtNomDeLaMariee_Change()
txtNomDeLaMariee.Value = UCase(txtNomDeLaMariee.Value)
End Sub
Private Sub txtPrenomDeLaMariee_Change()
txtPrenomDeLaMariee = Application.Proper(txtPrenomDeLaMariee)
End Sub

Private Sub UserForm_Initialize()
Dim Ctrl As Control
'Ici je vide les Controls
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is MSForms.TextBox Or TypeOf Ctrl Is MSForms.ComboBox Then
Ctrl = ""
End If
Next Ctrl

cbxAccompteEuros.Enabled = False
cbxReduction.Enabled = False
lblMontantRemiseEuros.Visible = False
lblMontantRemiseFrancs.Visible = False
txtMontantRemiseEuros.Visible = False
txtMontantRemiseFrancs.Visible = False

' Choix des Organisateurs, Nom des salles, Traiteurs, Type de soirée
Set WSDonneesPrix = Worksheets("Prix")
With WSDonneesPrix
PlageTypeDeSoirée = .Range("B4:B" & .Range("B2000").End(xlUp).Row).Address
End With
cbxTypeDeSoiree.RowSource = "Prix!" & PlageTypeDeSoirée

' Choix de l'accompt
cbxAccompteEuros.AddItem "100,00"
cbxAccompteEuros.AddItem "200,00"
cbxAccompteEuros.AddItem "300,00"

'Réduction
cbxReduction.AddItem "10"
cbxReduction.AddItem "15"
cbxReduction.AddItem "20"

End Sub

En vous remerciant par avance, Jacques



Avatar
Jacques
Daniel, le groupe

Merci de m'avoir répondu :

Donc cette partie de UserForm, me sert a choisir le type de soirée, ce qui
valide un prix prédéfini (Ca cela fonctionne)

Ensuite, si le demandeur donne un accompte, cela fait bien le calcul.

Et si je décide de faire une reduction, le calcule, se fait bien aussi.

Par contre je me suis apercu, que si je m'étais trompé de type de soirée,
donc il faut que je change dans le ComboBox, et la cela ne va plus, cela me
met des chiffre qui n'on rien a voir dans les TextBox. Je ne peu donc pas
revenir en arrière , une fois, un accompte de mis et/ ou une réduction
appliquée.

Donc ce que j'aimerais c'est que même si j'ai fait un choix d'accompte et/ou
de réduction, que si je décide de changer de type de soirée, que cela me
modifie le prix et que cela recalcule l'ensemble.


Pour le second point, j'autais aimer pouvoir arréter la liste des accomptes
sans dépassé la valeur du prix partiqué.

Si par exemple le type de soirée est un mariage, le prix sera de 300 ?,
donc dans l'accompte si la liste il y avait comme choix 50, 100, 150, 200,
250, 300, 350, 400 et bien que cela s'arrète a 300 ?.

Voila, j'espère être plus claire, sinon, je peu te proposer un fichier
joint.

Merci encore, Jacques
"Daniel" a écrit dans le message de news:

Bonjour.
Difficile de comprendre ce que tu veux faire avec ton userform. Peux-tu
préciser et donner un exemple de ce qui ne fonctionne pas (ce que tu
devrais obtenir et ce que tu obtiens, par exemple.
Cordialement.
Daniel
"Jacques" a écrit dans le message de news:
4365401c$0$1021$
Salut a toutes et tous

Je réhitère mes soucient, car je ne sais pas si mon post c'est perdu.
Donc j'ai deux petits soucie :

Le premier :

Si je choisi un type de soirée et que je met sois un accompte, soit une
réduction ou même les deux et que je veuille modifier le type de soirée
les
calculs me donnent des valeur qui n'on rien a voir.

Y'a t'il moyen d'y remedier ?

Le deuxième :

Cela est pour la valeur de l'accomte.

Pour le moment je passe par un ComboBox.Additem, mais cela serait il
possible de faire en sorte que l'accompte ne dépasse pas la valeur du
prix
de départ.

Voice les codes :

Dans un module :

Option Explicit
Public TypeDeSoiree As Byte


Dans l'userform :

Option Explicit

Dim Plage, PlagePrix As Range
Dim A, B, C, D As Long
Dim WSDonnees, WSDonneesPrix As Worksheet
Dim PlageTypeDeSoirée As String
Dim L As Integer 'Déclaration de variable "L" pour connaitre la Ligne
Numéro

Private Sub cbxAccompteEuros_Change()

On Error Resume Next

If cbxAccompteEuros.Text = "" Then
txtAccompteFrancs = ""
End If
If cbxAccompteEuros = "" Then
lblAccompteFrancs.ForeColor = &H80000008
lblAccompteEuros.ForeColor = &H80000008
Else
lblAccompteFrancs.ForeColor = &HFF0000
lblAccompteEuros.ForeColor = &HFF0000
End If
If cbxAccompteEuros <> "" Then
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros)
End If

If cbxAccompteEuros <> "" Then
txtAccompteFrancs = CDbl(cbxAccompteEuros) * 6.55957
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs)
End If


lblAccompteEuros.Visible = True
txtAccompteFrancs.Visible = True
End Sub

Private Sub cbxReduction_Change()
On Error Resume Next
If cbxReduction = "" Then
txtMontantRemiseEuros = ""
txtMontantRemiseFrancs = ""
lblMontantRemiseEuros.Visible = False
lblMontantRemiseFrancs.Visible = False
txtMontantRemiseEuros.Visible = False
txtMontantRemiseFrancs.Visible = False
Else
lblMontantRemiseEuros.Visible = True
lblMontantRemiseFrancs.Visible = True
txtMontantRemiseEuros.Visible = True
txtMontantRemiseFrancs.Visible = True
End If
txtMontantRemiseEuros = CDbl(txtPrixEuros) * CDbl(cbxReduction) / 100
txtMontantRemiseFrancs = CDbl(txtMontantRemiseEuros) * 6.55957

If cbxReduction <> "" Then
txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros) -
CDbl(txtMontantRemiseEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros)
End If
If cbxReduction <> "" Then
txtSoldeFrancs = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseFrancs)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) - CDbl(cbxAccompteEuros)
End If
If cbxAccompteEuros <> "" Then
txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros) -
CDbl(txtMontantRemiseEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(txtMontantRemiseEuros)
End If

If cbxAccompteEuros <> "" Then
txtSoldeFrancs = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseFrancs)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) - CDbl(txtMontantRemiseFrancs)
End If

'txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros) -
CDbl(txtMontantRemiseEuros)
'txtSoldeFrancs = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseFrancs)

End Sub


Private Sub cbxTypeDeSoiree_Change()
Set WSDonneesPrix = Sheets("Prix")
Set PlagePrix = WSDonneesPrix.Range("B4:B" &
WSDonneesPrix.Range("D65535").End(xlUp).Row)
On Error Resume Next
D = PlagePrix.Find(What:ËxTypeDeSoiree, LookAt:=xlWhole).Row
With WSDonneesPrix
txtPrixEuros = .Range("C" & D)
End With
If cbxTypeDeSoiree = "" Then
cbxAccompteEuros = ""
cbxReduction = ""
txtPrixFrancs = ""
txtPrixEuros = ""
txtAccompteFrancs = ""
txtSoldeFrancs = ""
txtSoldeEuros = ""
cbxAccompteEuros.Enabled = False
cbxReduction.Enabled = False
Else
cbxAccompteEuros.Enabled = True
cbxReduction.Enabled = True

End If

lblPrixFrancs.Visible = True
txtPrixFrancs.Visible = True
End Sub


Private Sub cmdQuitter_Click()
Unload Me
End Sub

Private Sub txtAccompteFrancs_Change()
On Error Resume Next
txtAccompteFrancs = Format(txtAccompteFrancs, "##,##0.00")
End Sub

Private Sub txtMontantRemiseEuros_Change()
txtMontantRemiseEuros = Format(txtMontantRemiseEuros, "##,##0.00")
End Sub

Private Sub txtMontantRemiseFrancs_Change()
txtMontantRemiseFrancs = Format(txtMontantRemiseFrancs, "##,##0.00")
End Sub

Private Sub txtPortableDeLaMariee_Change()
PhoneFormat txtPortableDeLaMariee
End Sub

Private Sub txtPortableDuMarie_Change()
PhoneFormat txtPortableDuMarie
End Sub

Private Sub txtPrixFrancs_Change()
txtPrixFrancs = Format(txtPrixFrancs, "##,##0.00")
End Sub

Private Sub txtDateDeLaPrestation_Change()
txtDateDeLaPrestation = Application.Proper(Format(Calendar1.Value, "dddd
d
mmmm yyyy"))
End Sub

Private Sub txtDateDeLaPrestation_DblClick(ByVal Cancel As
MSForms.ReturnBoolean)
Calendar1.Visible = True
End Sub

Private Sub txtSoldeFrancs_Change()

txtSoldeFrancs = Format(txtSoldeFrancs, "##,##0.00")

If txtSoldeFrancs > 0 Then
lblSoldeFrancs.ForeColor = &HFF&
lblSoldeEuros.ForeColor = &HFF&
Else
lblSoldeFrancs.ForeColor = &H80000008
lblSoldeEuros.ForeColor = &H80000008
End If

End Sub

Private Sub txtAccompteEuros_Change()

On Error Resume Next
txtAccompteEuros = Format(txtAccompteEuros, "##,##0.00")
txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(txtAccompteEuros)
End Sub
Private Sub txtPrixEuros_Change()

On Error Resume Next

If txtPrixEuros <> "" Then
txtPrixFrancs = CDbl(txtPrixEuros) * 6.55957
If cbxAccompteEuros <> "" Then
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros)
End If
If cbxReduction <> "" Then
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseEuros)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs)
End If
Else
txtPrixEuros = ""
If cbxAccompteEuros <> "" Then
txtSoldeEuros.Value = -CDbl(cbxAccompteEuros)
Else
txtSoldeEuros.Value = ""
End If
If cbxAccompteEuros <> "" Then
txtSoldeFrancs.Value = -CDbl(txtAccompteFrancs)
Else
txtSoldeFrancs.Value = ""
End If


End If

txtPrixEuros = Format(txtSoldeEuros, "##,##0.00")

lblAccompteFrancs.Visible = True
cbxAccompteEuros.Visible = True
lblSoldeFrancs.Visible = True
txtSoldeFrancs.Visible = True
lblPrixEuros.Visible = True
txtPrixEuros.Visible = True
lblSoldeEuros.Visible = True
txtSoldeEuros.Visible = True

End Sub
Private Sub txtSoldeEuros_Change()
On Error Resume Next
txtSoldeEuros = Format(txtSoldeEuros, "##,##0.00")
End Sub
Private Sub txtNomDuMarie_Change()
txtNomDuMarie.Value = UCase(txtNomDuMarie.Value)
End Sub
Private Sub txtPrenomDuMarie_Change()
txtPrenomDuMarie = Application.Proper(txtPrenomDuMarie)
End Sub
Private Sub txtNomDeLaMariee_Change()
txtNomDeLaMariee.Value = UCase(txtNomDeLaMariee.Value)
End Sub
Private Sub txtPrenomDeLaMariee_Change()
txtPrenomDeLaMariee = Application.Proper(txtPrenomDeLaMariee)
End Sub

Private Sub UserForm_Initialize()
Dim Ctrl As Control
'Ici je vide les Controls
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is MSForms.TextBox Or TypeOf Ctrl Is MSForms.ComboBox Then
Ctrl = ""
End If
Next Ctrl

cbxAccompteEuros.Enabled = False
cbxReduction.Enabled = False
lblMontantRemiseEuros.Visible = False
lblMontantRemiseFrancs.Visible = False
txtMontantRemiseEuros.Visible = False
txtMontantRemiseFrancs.Visible = False

' Choix des Organisateurs, Nom des salles, Traiteurs, Type de soirée
Set WSDonneesPrix = Worksheets("Prix")
With WSDonneesPrix
PlageTypeDeSoirée = .Range("B4:B" &
.Range("B2000").End(xlUp).Row).Address
End With
cbxTypeDeSoiree.RowSource = "Prix!" & PlageTypeDeSoirée

' Choix de l'accompt
cbxAccompteEuros.AddItem "100,00"
cbxAccompteEuros.AddItem "200,00"
cbxAccompteEuros.AddItem "300,00"

'Réduction
cbxReduction.AddItem "10"
cbxReduction.AddItem "15"
cbxReduction.AddItem "20"

End Sub

En vous remerciant par avance, Jacques







Avatar
Daniel
C'est difficile de voir comment tout ce code s'articule.
S'il ne contient rien de confidentiel, peux-tu poster ton classeur à
l'adresse :
www.cjoint.com ?
Daniel
"Jacques" a écrit dans le message de news:
4365c325$0$7860$
Daniel, le groupe

Merci de m'avoir répondu :

Donc cette partie de UserForm, me sert a choisir le type de soirée, ce qui
valide un prix prédéfini (Ca cela fonctionne)

Ensuite, si le demandeur donne un accompte, cela fait bien le calcul.

Et si je décide de faire une reduction, le calcule, se fait bien aussi.

Par contre je me suis apercu, que si je m'étais trompé de type de soirée,
donc il faut que je change dans le ComboBox, et la cela ne va plus, cela
me met des chiffre qui n'on rien a voir dans les TextBox. Je ne peu donc
pas revenir en arrière , une fois, un accompte de mis et/ ou une réduction
appliquée.

Donc ce que j'aimerais c'est que même si j'ai fait un choix d'accompte
et/ou de réduction, que si je décide de changer de type de soirée, que
cela me modifie le prix et que cela recalcule l'ensemble.


Pour le second point, j'autais aimer pouvoir arréter la liste des
accomptes sans dépassé la valeur du prix partiqué.

Si par exemple le type de soirée est un mariage, le prix sera de 300 ?,
donc dans l'accompte si la liste il y avait comme choix 50, 100, 150, 200,
250, 300, 350, 400 et bien que cela s'arrète a 300 ?.

Voila, j'espère être plus claire, sinon, je peu te proposer un fichier
joint.

Merci encore, Jacques
"Daniel" a écrit dans le message de news:

Bonjour.
Difficile de comprendre ce que tu veux faire avec ton userform. Peux-tu
préciser et donner un exemple de ce qui ne fonctionne pas (ce que tu
devrais obtenir et ce que tu obtiens, par exemple.
Cordialement.
Daniel
"Jacques" a écrit dans le message de news:
4365401c$0$1021$
Salut a toutes et tous

Je réhitère mes soucient, car je ne sais pas si mon post c'est perdu.
Donc j'ai deux petits soucie :

Le premier :

Si je choisi un type de soirée et que je met sois un accompte, soit une
réduction ou même les deux et que je veuille modifier le type de soirée
les
calculs me donnent des valeur qui n'on rien a voir.

Y'a t'il moyen d'y remedier ?

Le deuxième :

Cela est pour la valeur de l'accomte.

Pour le moment je passe par un ComboBox.Additem, mais cela serait il
possible de faire en sorte que l'accompte ne dépasse pas la valeur du
prix
de départ.

Voice les codes :

Dans un module :

Option Explicit
Public TypeDeSoiree As Byte


Dans l'userform :

Option Explicit

Dim Plage, PlagePrix As Range
Dim A, B, C, D As Long
Dim WSDonnees, WSDonneesPrix As Worksheet
Dim PlageTypeDeSoirée As String
Dim L As Integer 'Déclaration de variable "L" pour connaitre la Ligne
Numéro

Private Sub cbxAccompteEuros_Change()

On Error Resume Next

If cbxAccompteEuros.Text = "" Then
txtAccompteFrancs = ""
End If
If cbxAccompteEuros = "" Then
lblAccompteFrancs.ForeColor = &H80000008
lblAccompteEuros.ForeColor = &H80000008
Else
lblAccompteFrancs.ForeColor = &HFF0000
lblAccompteEuros.ForeColor = &HFF0000
End If
If cbxAccompteEuros <> "" Then
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros)
End If

If cbxAccompteEuros <> "" Then
txtAccompteFrancs = CDbl(cbxAccompteEuros) * 6.55957
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs)
End If


lblAccompteEuros.Visible = True
txtAccompteFrancs.Visible = True
End Sub

Private Sub cbxReduction_Change()
On Error Resume Next
If cbxReduction = "" Then
txtMontantRemiseEuros = ""
txtMontantRemiseFrancs = ""
lblMontantRemiseEuros.Visible = False
lblMontantRemiseFrancs.Visible = False
txtMontantRemiseEuros.Visible = False
txtMontantRemiseFrancs.Visible = False
Else
lblMontantRemiseEuros.Visible = True
lblMontantRemiseFrancs.Visible = True
txtMontantRemiseEuros.Visible = True
txtMontantRemiseFrancs.Visible = True
End If
txtMontantRemiseEuros = CDbl(txtPrixEuros) * CDbl(cbxReduction) / 100
txtMontantRemiseFrancs = CDbl(txtMontantRemiseEuros) * 6.55957

If cbxReduction <> "" Then
txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros) -
CDbl(txtMontantRemiseEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros)
End If
If cbxReduction <> "" Then
txtSoldeFrancs = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseFrancs)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) - CDbl(cbxAccompteEuros)
End If
If cbxAccompteEuros <> "" Then
txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros) -
CDbl(txtMontantRemiseEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(txtMontantRemiseEuros)
End If

If cbxAccompteEuros <> "" Then
txtSoldeFrancs = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseFrancs)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) -
CDbl(txtMontantRemiseFrancs)
End If

'txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros) -
CDbl(txtMontantRemiseEuros)
'txtSoldeFrancs = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseFrancs)

End Sub


Private Sub cbxTypeDeSoiree_Change()
Set WSDonneesPrix = Sheets("Prix")
Set PlagePrix = WSDonneesPrix.Range("B4:B" &
WSDonneesPrix.Range("D65535").End(xlUp).Row)
On Error Resume Next
D = PlagePrix.Find(What:ËxTypeDeSoiree, LookAt:=xlWhole).Row
With WSDonneesPrix
txtPrixEuros = .Range("C" & D)
End With
If cbxTypeDeSoiree = "" Then
cbxAccompteEuros = ""
cbxReduction = ""
txtPrixFrancs = ""
txtPrixEuros = ""
txtAccompteFrancs = ""
txtSoldeFrancs = ""
txtSoldeEuros = ""
cbxAccompteEuros.Enabled = False
cbxReduction.Enabled = False
Else
cbxAccompteEuros.Enabled = True
cbxReduction.Enabled = True

End If

lblPrixFrancs.Visible = True
txtPrixFrancs.Visible = True
End Sub


Private Sub cmdQuitter_Click()
Unload Me
End Sub

Private Sub txtAccompteFrancs_Change()
On Error Resume Next
txtAccompteFrancs = Format(txtAccompteFrancs, "##,##0.00")
End Sub

Private Sub txtMontantRemiseEuros_Change()
txtMontantRemiseEuros = Format(txtMontantRemiseEuros, "##,##0.00")
End Sub

Private Sub txtMontantRemiseFrancs_Change()
txtMontantRemiseFrancs = Format(txtMontantRemiseFrancs, "##,##0.00")
End Sub

Private Sub txtPortableDeLaMariee_Change()
PhoneFormat txtPortableDeLaMariee
End Sub

Private Sub txtPortableDuMarie_Change()
PhoneFormat txtPortableDuMarie
End Sub

Private Sub txtPrixFrancs_Change()
txtPrixFrancs = Format(txtPrixFrancs, "##,##0.00")
End Sub

Private Sub txtDateDeLaPrestation_Change()
txtDateDeLaPrestation = Application.Proper(Format(Calendar1.Value, "dddd
d
mmmm yyyy"))
End Sub

Private Sub txtDateDeLaPrestation_DblClick(ByVal Cancel As
MSForms.ReturnBoolean)
Calendar1.Visible = True
End Sub

Private Sub txtSoldeFrancs_Change()

txtSoldeFrancs = Format(txtSoldeFrancs, "##,##0.00")

If txtSoldeFrancs > 0 Then
lblSoldeFrancs.ForeColor = &HFF&
lblSoldeEuros.ForeColor = &HFF&
Else
lblSoldeFrancs.ForeColor = &H80000008
lblSoldeEuros.ForeColor = &H80000008
End If

End Sub

Private Sub txtAccompteEuros_Change()

On Error Resume Next
txtAccompteEuros = Format(txtAccompteEuros, "##,##0.00")
txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(txtAccompteEuros)
End Sub
Private Sub txtPrixEuros_Change()

On Error Resume Next

If txtPrixEuros <> "" Then
txtPrixFrancs = CDbl(txtPrixEuros) * 6.55957
If cbxAccompteEuros <> "" Then
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros)
End If
If cbxReduction <> "" Then
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseEuros)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs)
End If
Else
txtPrixEuros = ""
If cbxAccompteEuros <> "" Then
txtSoldeEuros.Value = -CDbl(cbxAccompteEuros)
Else
txtSoldeEuros.Value = ""
End If
If cbxAccompteEuros <> "" Then
txtSoldeFrancs.Value = -CDbl(txtAccompteFrancs)
Else
txtSoldeFrancs.Value = ""
End If


End If

txtPrixEuros = Format(txtSoldeEuros, "##,##0.00")

lblAccompteFrancs.Visible = True
cbxAccompteEuros.Visible = True
lblSoldeFrancs.Visible = True
txtSoldeFrancs.Visible = True
lblPrixEuros.Visible = True
txtPrixEuros.Visible = True
lblSoldeEuros.Visible = True
txtSoldeEuros.Visible = True

End Sub
Private Sub txtSoldeEuros_Change()
On Error Resume Next
txtSoldeEuros = Format(txtSoldeEuros, "##,##0.00")
End Sub
Private Sub txtNomDuMarie_Change()
txtNomDuMarie.Value = UCase(txtNomDuMarie.Value)
End Sub
Private Sub txtPrenomDuMarie_Change()
txtPrenomDuMarie = Application.Proper(txtPrenomDuMarie)
End Sub
Private Sub txtNomDeLaMariee_Change()
txtNomDeLaMariee.Value = UCase(txtNomDeLaMariee.Value)
End Sub
Private Sub txtPrenomDeLaMariee_Change()
txtPrenomDeLaMariee = Application.Proper(txtPrenomDeLaMariee)
End Sub

Private Sub UserForm_Initialize()
Dim Ctrl As Control
'Ici je vide les Controls
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is MSForms.TextBox Or TypeOf Ctrl Is MSForms.ComboBox
Then
Ctrl = ""
End If
Next Ctrl

cbxAccompteEuros.Enabled = False
cbxReduction.Enabled = False
lblMontantRemiseEuros.Visible = False
lblMontantRemiseFrancs.Visible = False
txtMontantRemiseEuros.Visible = False
txtMontantRemiseFrancs.Visible = False

' Choix des Organisateurs, Nom des salles, Traiteurs, Type de soirée
Set WSDonneesPrix = Worksheets("Prix")
With WSDonneesPrix
PlageTypeDeSoirée = .Range("B4:B" &
.Range("B2000").End(xlUp).Row).Address
End With
cbxTypeDeSoiree.RowSource = "Prix!" & PlageTypeDeSoirée

' Choix de l'accompt
cbxAccompteEuros.AddItem "100,00"
cbxAccompteEuros.AddItem "200,00"
cbxAccompteEuros.AddItem "300,00"

'Réduction
cbxReduction.AddItem "10"
cbxReduction.AddItem "15"
cbxReduction.AddItem "20"

End Sub

En vous remerciant par avance, Jacques











Avatar
Jacques
Daniel, le groupe

C'est fait :
http://cjoint.com/?kFmAoMcNOO

Merci, Jacques
"Daniel" a écrit dans le message de news:

C'est difficile de voir comment tout ce code s'articule.
S'il ne contient rien de confidentiel, peux-tu poster ton classeur à
l'adresse :
www.cjoint.com ?
Daniel
"Jacques" a écrit dans le message de news:
4365c325$0$7860$
Daniel, le groupe

Merci de m'avoir répondu :

Donc cette partie de UserForm, me sert a choisir le type de soirée, ce
qui valide un prix prédéfini (Ca cela fonctionne)

Ensuite, si le demandeur donne un accompte, cela fait bien le calcul.

Et si je décide de faire une reduction, le calcule, se fait bien aussi.

Par contre je me suis apercu, que si je m'étais trompé de type de soirée,
donc il faut que je change dans le ComboBox, et la cela ne va plus, cela
me met des chiffre qui n'on rien a voir dans les TextBox. Je ne peu donc
pas revenir en arrière , une fois, un accompte de mis et/ ou une
réduction appliquée.

Donc ce que j'aimerais c'est que même si j'ai fait un choix d'accompte
et/ou de réduction, que si je décide de changer de type de soirée, que
cela me modifie le prix et que cela recalcule l'ensemble.


Pour le second point, j'autais aimer pouvoir arréter la liste des
accomptes sans dépassé la valeur du prix partiqué.

Si par exemple le type de soirée est un mariage, le prix sera de 300 ?,
donc dans l'accompte si la liste il y avait comme choix 50, 100, 150,
200, 250, 300, 350, 400 et bien que cela s'arrète a 300 ?.

Voila, j'espère être plus claire, sinon, je peu te proposer un fichier
joint.

Merci encore, Jacques
"Daniel" a écrit dans le message de news:

Bonjour.
Difficile de comprendre ce que tu veux faire avec ton userform. Peux-tu
préciser et donner un exemple de ce qui ne fonctionne pas (ce que tu
devrais obtenir et ce que tu obtiens, par exemple.
Cordialement.
Daniel
"Jacques" a écrit dans le message de news:
4365401c$0$1021$
Salut a toutes et tous

Je réhitère mes soucient, car je ne sais pas si mon post c'est perdu.
Donc j'ai deux petits soucie :

Le premier :

Si je choisi un type de soirée et que je met sois un accompte, soit une
réduction ou même les deux et que je veuille modifier le type de soirée
les
calculs me donnent des valeur qui n'on rien a voir.

Y'a t'il moyen d'y remedier ?

Le deuxième :

Cela est pour la valeur de l'accomte.

Pour le moment je passe par un ComboBox.Additem, mais cela serait il
possible de faire en sorte que l'accompte ne dépasse pas la valeur du
prix
de départ.

Voice les codes :

Dans un module :

Option Explicit
Public TypeDeSoiree As Byte


Dans l'userform :

Option Explicit

Dim Plage, PlagePrix As Range
Dim A, B, C, D As Long
Dim WSDonnees, WSDonneesPrix As Worksheet
Dim PlageTypeDeSoirée As String
Dim L As Integer 'Déclaration de variable "L" pour connaitre la Ligne
Numéro

Private Sub cbxAccompteEuros_Change()

On Error Resume Next

If cbxAccompteEuros.Text = "" Then
txtAccompteFrancs = ""
End If
If cbxAccompteEuros = "" Then
lblAccompteFrancs.ForeColor = &H80000008
lblAccompteEuros.ForeColor = &H80000008
Else
lblAccompteFrancs.ForeColor = &HFF0000
lblAccompteEuros.ForeColor = &HFF0000
End If
If cbxAccompteEuros <> "" Then
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros)
End If

If cbxAccompteEuros <> "" Then
txtAccompteFrancs = CDbl(cbxAccompteEuros) * 6.55957
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs)
End If


lblAccompteEuros.Visible = True
txtAccompteFrancs.Visible = True
End Sub

Private Sub cbxReduction_Change()
On Error Resume Next
If cbxReduction = "" Then
txtMontantRemiseEuros = ""
txtMontantRemiseFrancs = ""
lblMontantRemiseEuros.Visible = False
lblMontantRemiseFrancs.Visible = False
txtMontantRemiseEuros.Visible = False
txtMontantRemiseFrancs.Visible = False
Else
lblMontantRemiseEuros.Visible = True
lblMontantRemiseFrancs.Visible = True
txtMontantRemiseEuros.Visible = True
txtMontantRemiseFrancs.Visible = True
End If
txtMontantRemiseEuros = CDbl(txtPrixEuros) * CDbl(cbxReduction) / 100
txtMontantRemiseFrancs = CDbl(txtMontantRemiseEuros) * 6.55957

If cbxReduction <> "" Then
txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros) -
CDbl(txtMontantRemiseEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros)
End If
If cbxReduction <> "" Then
txtSoldeFrancs = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseFrancs)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) - CDbl(cbxAccompteEuros)
End If
If cbxAccompteEuros <> "" Then
txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros) -
CDbl(txtMontantRemiseEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(txtMontantRemiseEuros)
End If

If cbxAccompteEuros <> "" Then
txtSoldeFrancs = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseFrancs)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) -
CDbl(txtMontantRemiseFrancs)
End If

'txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros) -
CDbl(txtMontantRemiseEuros)
'txtSoldeFrancs = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseFrancs)

End Sub


Private Sub cbxTypeDeSoiree_Change()
Set WSDonneesPrix = Sheets("Prix")
Set PlagePrix = WSDonneesPrix.Range("B4:B" &
WSDonneesPrix.Range("D65535").End(xlUp).Row)
On Error Resume Next
D = PlagePrix.Find(What:ËxTypeDeSoiree, LookAt:=xlWhole).Row
With WSDonneesPrix
txtPrixEuros = .Range("C" & D)
End With
If cbxTypeDeSoiree = "" Then
cbxAccompteEuros = ""
cbxReduction = ""
txtPrixFrancs = ""
txtPrixEuros = ""
txtAccompteFrancs = ""
txtSoldeFrancs = ""
txtSoldeEuros = ""
cbxAccompteEuros.Enabled = False
cbxReduction.Enabled = False
Else
cbxAccompteEuros.Enabled = True
cbxReduction.Enabled = True

End If

lblPrixFrancs.Visible = True
txtPrixFrancs.Visible = True
End Sub


Private Sub cmdQuitter_Click()
Unload Me
End Sub

Private Sub txtAccompteFrancs_Change()
On Error Resume Next
txtAccompteFrancs = Format(txtAccompteFrancs, "##,##0.00")
End Sub

Private Sub txtMontantRemiseEuros_Change()
txtMontantRemiseEuros = Format(txtMontantRemiseEuros, "##,##0.00")
End Sub

Private Sub txtMontantRemiseFrancs_Change()
txtMontantRemiseFrancs = Format(txtMontantRemiseFrancs, "##,##0.00")
End Sub

Private Sub txtPortableDeLaMariee_Change()
PhoneFormat txtPortableDeLaMariee
End Sub

Private Sub txtPortableDuMarie_Change()
PhoneFormat txtPortableDuMarie
End Sub

Private Sub txtPrixFrancs_Change()
txtPrixFrancs = Format(txtPrixFrancs, "##,##0.00")
End Sub

Private Sub txtDateDeLaPrestation_Change()
txtDateDeLaPrestation = Application.Proper(Format(Calendar1.Value,
"dddd d
mmmm yyyy"))
End Sub

Private Sub txtDateDeLaPrestation_DblClick(ByVal Cancel As
MSForms.ReturnBoolean)
Calendar1.Visible = True
End Sub

Private Sub txtSoldeFrancs_Change()

txtSoldeFrancs = Format(txtSoldeFrancs, "##,##0.00")

If txtSoldeFrancs > 0 Then
lblSoldeFrancs.ForeColor = &HFF&
lblSoldeEuros.ForeColor = &HFF&
Else
lblSoldeFrancs.ForeColor = &H80000008
lblSoldeEuros.ForeColor = &H80000008
End If

End Sub

Private Sub txtAccompteEuros_Change()

On Error Resume Next
txtAccompteEuros = Format(txtAccompteEuros, "##,##0.00")
txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(txtAccompteEuros)
End Sub
Private Sub txtPrixEuros_Change()

On Error Resume Next

If txtPrixEuros <> "" Then
txtPrixFrancs = CDbl(txtPrixEuros) * 6.55957
If cbxAccompteEuros <> "" Then
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros)
End If
If cbxReduction <> "" Then
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseEuros)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs)
End If
Else
txtPrixEuros = ""
If cbxAccompteEuros <> "" Then
txtSoldeEuros.Value = -CDbl(cbxAccompteEuros)
Else
txtSoldeEuros.Value = ""
End If
If cbxAccompteEuros <> "" Then
txtSoldeFrancs.Value = -CDbl(txtAccompteFrancs)
Else
txtSoldeFrancs.Value = ""
End If


End If

txtPrixEuros = Format(txtSoldeEuros, "##,##0.00")

lblAccompteFrancs.Visible = True
cbxAccompteEuros.Visible = True
lblSoldeFrancs.Visible = True
txtSoldeFrancs.Visible = True
lblPrixEuros.Visible = True
txtPrixEuros.Visible = True
lblSoldeEuros.Visible = True
txtSoldeEuros.Visible = True

End Sub
Private Sub txtSoldeEuros_Change()
On Error Resume Next
txtSoldeEuros = Format(txtSoldeEuros, "##,##0.00")
End Sub
Private Sub txtNomDuMarie_Change()
txtNomDuMarie.Value = UCase(txtNomDuMarie.Value)
End Sub
Private Sub txtPrenomDuMarie_Change()
txtPrenomDuMarie = Application.Proper(txtPrenomDuMarie)
End Sub
Private Sub txtNomDeLaMariee_Change()
txtNomDeLaMariee.Value = UCase(txtNomDeLaMariee.Value)
End Sub
Private Sub txtPrenomDeLaMariee_Change()
txtPrenomDeLaMariee = Application.Proper(txtPrenomDeLaMariee)
End Sub

Private Sub UserForm_Initialize()
Dim Ctrl As Control
'Ici je vide les Controls
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is MSForms.TextBox Or TypeOf Ctrl Is MSForms.ComboBox
Then
Ctrl = ""
End If
Next Ctrl

cbxAccompteEuros.Enabled = False
cbxReduction.Enabled = False
lblMontantRemiseEuros.Visible = False
lblMontantRemiseFrancs.Visible = False
txtMontantRemiseEuros.Visible = False
txtMontantRemiseFrancs.Visible = False

' Choix des Organisateurs, Nom des salles, Traiteurs, Type de soirée
Set WSDonneesPrix = Worksheets("Prix")
With WSDonneesPrix
PlageTypeDeSoirée = .Range("B4:B" &
.Range("B2000").End(xlUp).Row).Address
End With
cbxTypeDeSoiree.RowSource = "Prix!" & PlageTypeDeSoirée

' Choix de l'accompt
cbxAccompteEuros.AddItem "100,00"
cbxAccompteEuros.AddItem "200,00"
cbxAccompteEuros.AddItem "300,00"

'Réduction
cbxReduction.AddItem "10"
cbxReduction.AddItem "15"
cbxReduction.AddItem "20"

End Sub

En vous remerciant par avance, Jacques















Avatar
Jacques
Re

Je te remet un autre lien, car j'ai rajouté un boutn pour accéder
directement a L'UserForm.
http://cjoint.com/?kFmEhxd0Rz
Merci, jacques
"Daniel" a écrit dans le message de news:

C'est difficile de voir comment tout ce code s'articule.
S'il ne contient rien de confidentiel, peux-tu poster ton classeur à
l'adresse :
www.cjoint.com ?
Daniel
"Jacques" a écrit dans le message de news:
4365c325$0$7860$
Daniel, le groupe

Merci de m'avoir répondu :

Donc cette partie de UserForm, me sert a choisir le type de soirée, ce
qui valide un prix prédéfini (Ca cela fonctionne)

Ensuite, si le demandeur donne un accompte, cela fait bien le calcul.

Et si je décide de faire une reduction, le calcule, se fait bien aussi.

Par contre je me suis apercu, que si je m'étais trompé de type de soirée,
donc il faut que je change dans le ComboBox, et la cela ne va plus, cela
me met des chiffre qui n'on rien a voir dans les TextBox. Je ne peu donc
pas revenir en arrière , une fois, un accompte de mis et/ ou une
réduction appliquée.

Donc ce que j'aimerais c'est que même si j'ai fait un choix d'accompte
et/ou de réduction, que si je décide de changer de type de soirée, que
cela me modifie le prix et que cela recalcule l'ensemble.


Pour le second point, j'autais aimer pouvoir arréter la liste des
accomptes sans dépassé la valeur du prix partiqué.

Si par exemple le type de soirée est un mariage, le prix sera de 300 ?,
donc dans l'accompte si la liste il y avait comme choix 50, 100, 150,
200, 250, 300, 350, 400 et bien que cela s'arrète a 300 ?.

Voila, j'espère être plus claire, sinon, je peu te proposer un fichier
joint.

Merci encore, Jacques
"Daniel" a écrit dans le message de news:

Bonjour.
Difficile de comprendre ce que tu veux faire avec ton userform. Peux-tu
préciser et donner un exemple de ce qui ne fonctionne pas (ce que tu
devrais obtenir et ce que tu obtiens, par exemple.
Cordialement.
Daniel
"Jacques" a écrit dans le message de news:
4365401c$0$1021$
Salut a toutes et tous

Je réhitère mes soucient, car je ne sais pas si mon post c'est perdu.
Donc j'ai deux petits soucie :

Le premier :

Si je choisi un type de soirée et que je met sois un accompte, soit une
réduction ou même les deux et que je veuille modifier le type de soirée
les
calculs me donnent des valeur qui n'on rien a voir.

Y'a t'il moyen d'y remedier ?

Le deuxième :

Cela est pour la valeur de l'accomte.

Pour le moment je passe par un ComboBox.Additem, mais cela serait il
possible de faire en sorte que l'accompte ne dépasse pas la valeur du
prix
de départ.

Voice les codes :

Dans un module :

Option Explicit
Public TypeDeSoiree As Byte


Dans l'userform :

Option Explicit

Dim Plage, PlagePrix As Range
Dim A, B, C, D As Long
Dim WSDonnees, WSDonneesPrix As Worksheet
Dim PlageTypeDeSoirée As String
Dim L As Integer 'Déclaration de variable "L" pour connaitre la Ligne
Numéro

Private Sub cbxAccompteEuros_Change()

On Error Resume Next

If cbxAccompteEuros.Text = "" Then
txtAccompteFrancs = ""
End If
If cbxAccompteEuros = "" Then
lblAccompteFrancs.ForeColor = &H80000008
lblAccompteEuros.ForeColor = &H80000008
Else
lblAccompteFrancs.ForeColor = &HFF0000
lblAccompteEuros.ForeColor = &HFF0000
End If
If cbxAccompteEuros <> "" Then
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros)
End If

If cbxAccompteEuros <> "" Then
txtAccompteFrancs = CDbl(cbxAccompteEuros) * 6.55957
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs)
End If


lblAccompteEuros.Visible = True
txtAccompteFrancs.Visible = True
End Sub

Private Sub cbxReduction_Change()
On Error Resume Next
If cbxReduction = "" Then
txtMontantRemiseEuros = ""
txtMontantRemiseFrancs = ""
lblMontantRemiseEuros.Visible = False
lblMontantRemiseFrancs.Visible = False
txtMontantRemiseEuros.Visible = False
txtMontantRemiseFrancs.Visible = False
Else
lblMontantRemiseEuros.Visible = True
lblMontantRemiseFrancs.Visible = True
txtMontantRemiseEuros.Visible = True
txtMontantRemiseFrancs.Visible = True
End If
txtMontantRemiseEuros = CDbl(txtPrixEuros) * CDbl(cbxReduction) / 100
txtMontantRemiseFrancs = CDbl(txtMontantRemiseEuros) * 6.55957

If cbxReduction <> "" Then
txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros) -
CDbl(txtMontantRemiseEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros)
End If
If cbxReduction <> "" Then
txtSoldeFrancs = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseFrancs)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) - CDbl(cbxAccompteEuros)
End If
If cbxAccompteEuros <> "" Then
txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros) -
CDbl(txtMontantRemiseEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(txtMontantRemiseEuros)
End If

If cbxAccompteEuros <> "" Then
txtSoldeFrancs = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseFrancs)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) -
CDbl(txtMontantRemiseFrancs)
End If

'txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros) -
CDbl(txtMontantRemiseEuros)
'txtSoldeFrancs = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseFrancs)

End Sub


Private Sub cbxTypeDeSoiree_Change()
Set WSDonneesPrix = Sheets("Prix")
Set PlagePrix = WSDonneesPrix.Range("B4:B" &
WSDonneesPrix.Range("D65535").End(xlUp).Row)
On Error Resume Next
D = PlagePrix.Find(What:ËxTypeDeSoiree, LookAt:=xlWhole).Row
With WSDonneesPrix
txtPrixEuros = .Range("C" & D)
End With
If cbxTypeDeSoiree = "" Then
cbxAccompteEuros = ""
cbxReduction = ""
txtPrixFrancs = ""
txtPrixEuros = ""
txtAccompteFrancs = ""
txtSoldeFrancs = ""
txtSoldeEuros = ""
cbxAccompteEuros.Enabled = False
cbxReduction.Enabled = False
Else
cbxAccompteEuros.Enabled = True
cbxReduction.Enabled = True

End If

lblPrixFrancs.Visible = True
txtPrixFrancs.Visible = True
End Sub


Private Sub cmdQuitter_Click()
Unload Me
End Sub

Private Sub txtAccompteFrancs_Change()
On Error Resume Next
txtAccompteFrancs = Format(txtAccompteFrancs, "##,##0.00")
End Sub

Private Sub txtMontantRemiseEuros_Change()
txtMontantRemiseEuros = Format(txtMontantRemiseEuros, "##,##0.00")
End Sub

Private Sub txtMontantRemiseFrancs_Change()
txtMontantRemiseFrancs = Format(txtMontantRemiseFrancs, "##,##0.00")
End Sub

Private Sub txtPortableDeLaMariee_Change()
PhoneFormat txtPortableDeLaMariee
End Sub

Private Sub txtPortableDuMarie_Change()
PhoneFormat txtPortableDuMarie
End Sub

Private Sub txtPrixFrancs_Change()
txtPrixFrancs = Format(txtPrixFrancs, "##,##0.00")
End Sub

Private Sub txtDateDeLaPrestation_Change()
txtDateDeLaPrestation = Application.Proper(Format(Calendar1.Value,
"dddd d
mmmm yyyy"))
End Sub

Private Sub txtDateDeLaPrestation_DblClick(ByVal Cancel As
MSForms.ReturnBoolean)
Calendar1.Visible = True
End Sub

Private Sub txtSoldeFrancs_Change()

txtSoldeFrancs = Format(txtSoldeFrancs, "##,##0.00")

If txtSoldeFrancs > 0 Then
lblSoldeFrancs.ForeColor = &HFF&
lblSoldeEuros.ForeColor = &HFF&
Else
lblSoldeFrancs.ForeColor = &H80000008
lblSoldeEuros.ForeColor = &H80000008
End If

End Sub

Private Sub txtAccompteEuros_Change()

On Error Resume Next
txtAccompteEuros = Format(txtAccompteEuros, "##,##0.00")
txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(txtAccompteEuros)
End Sub
Private Sub txtPrixEuros_Change()

On Error Resume Next

If txtPrixEuros <> "" Then
txtPrixFrancs = CDbl(txtPrixEuros) * 6.55957
If cbxAccompteEuros <> "" Then
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros)
End If
If cbxReduction <> "" Then
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseEuros)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs)
End If
Else
txtPrixEuros = ""
If cbxAccompteEuros <> "" Then
txtSoldeEuros.Value = -CDbl(cbxAccompteEuros)
Else
txtSoldeEuros.Value = ""
End If
If cbxAccompteEuros <> "" Then
txtSoldeFrancs.Value = -CDbl(txtAccompteFrancs)
Else
txtSoldeFrancs.Value = ""
End If


End If

txtPrixEuros = Format(txtSoldeEuros, "##,##0.00")

lblAccompteFrancs.Visible = True
cbxAccompteEuros.Visible = True
lblSoldeFrancs.Visible = True
txtSoldeFrancs.Visible = True
lblPrixEuros.Visible = True
txtPrixEuros.Visible = True
lblSoldeEuros.Visible = True
txtSoldeEuros.Visible = True

End Sub
Private Sub txtSoldeEuros_Change()
On Error Resume Next
txtSoldeEuros = Format(txtSoldeEuros, "##,##0.00")
End Sub
Private Sub txtNomDuMarie_Change()
txtNomDuMarie.Value = UCase(txtNomDuMarie.Value)
End Sub
Private Sub txtPrenomDuMarie_Change()
txtPrenomDuMarie = Application.Proper(txtPrenomDuMarie)
End Sub
Private Sub txtNomDeLaMariee_Change()
txtNomDeLaMariee.Value = UCase(txtNomDeLaMariee.Value)
End Sub
Private Sub txtPrenomDeLaMariee_Change()
txtPrenomDeLaMariee = Application.Proper(txtPrenomDeLaMariee)
End Sub

Private Sub UserForm_Initialize()
Dim Ctrl As Control
'Ici je vide les Controls
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is MSForms.TextBox Or TypeOf Ctrl Is MSForms.ComboBox
Then
Ctrl = ""
End If
Next Ctrl

cbxAccompteEuros.Enabled = False
cbxReduction.Enabled = False
lblMontantRemiseEuros.Visible = False
lblMontantRemiseFrancs.Visible = False
txtMontantRemiseEuros.Visible = False
txtMontantRemiseFrancs.Visible = False

' Choix des Organisateurs, Nom des salles, Traiteurs, Type de soirée
Set WSDonneesPrix = Worksheets("Prix")
With WSDonneesPrix
PlageTypeDeSoirée = .Range("B4:B" &
.Range("B2000").End(xlUp).Row).Address
End With
cbxTypeDeSoiree.RowSource = "Prix!" & PlageTypeDeSoirée

' Choix de l'accompt
cbxAccompteEuros.AddItem "100,00"
cbxAccompteEuros.AddItem "200,00"
cbxAccompteEuros.AddItem "300,00"

'Réduction
cbxReduction.AddItem "10"
cbxReduction.AddItem "15"
cbxReduction.AddItem "20"

End Sub

En vous remerciant par avance, Jacques















Avatar
Daniel
Il manque du code dans ton classeur.
Daniel
"Jacques" a écrit dans le message de news:
436600e9$0$27432$
Re

Je te remet un autre lien, car j'ai rajouté un boutn pour accéder
directement a L'UserForm.
http://cjoint.com/?kFmEhxd0Rz
Merci, jacques
"Daniel" a écrit dans le message de news:

C'est difficile de voir comment tout ce code s'articule.
S'il ne contient rien de confidentiel, peux-tu poster ton classeur à
l'adresse :
www.cjoint.com ?
Daniel
"Jacques" a écrit dans le message de news:
4365c325$0$7860$
Daniel, le groupe

Merci de m'avoir répondu :

Donc cette partie de UserForm, me sert a choisir le type de soirée, ce
qui valide un prix prédéfini (Ca cela fonctionne)

Ensuite, si le demandeur donne un accompte, cela fait bien le calcul.

Et si je décide de faire une reduction, le calcule, se fait bien aussi.

Par contre je me suis apercu, que si je m'étais trompé de type de
soirée, donc il faut que je change dans le ComboBox, et la cela ne va
plus, cela me met des chiffre qui n'on rien a voir dans les TextBox. Je
ne peu donc pas revenir en arrière , une fois, un accompte de mis et/ ou
une réduction appliquée.

Donc ce que j'aimerais c'est que même si j'ai fait un choix d'accompte
et/ou de réduction, que si je décide de changer de type de soirée, que
cela me modifie le prix et que cela recalcule l'ensemble.


Pour le second point, j'autais aimer pouvoir arréter la liste des
accomptes sans dépassé la valeur du prix partiqué.

Si par exemple le type de soirée est un mariage, le prix sera de 300 ?,
donc dans l'accompte si la liste il y avait comme choix 50, 100, 150,
200, 250, 300, 350, 400 et bien que cela s'arrète a 300 ?.

Voila, j'espère être plus claire, sinon, je peu te proposer un fichier
joint.

Merci encore, Jacques
"Daniel" a écrit dans le message de news:

Bonjour.
Difficile de comprendre ce que tu veux faire avec ton userform. Peux-tu
préciser et donner un exemple de ce qui ne fonctionne pas (ce que tu
devrais obtenir et ce que tu obtiens, par exemple.
Cordialement.
Daniel
"Jacques" a écrit dans le message de news:
4365401c$0$1021$
Salut a toutes et tous

Je réhitère mes soucient, car je ne sais pas si mon post c'est perdu.
Donc j'ai deux petits soucie :

Le premier :

Si je choisi un type de soirée et que je met sois un accompte, soit
une
réduction ou même les deux et que je veuille modifier le type de
soirée les
calculs me donnent des valeur qui n'on rien a voir.

Y'a t'il moyen d'y remedier ?

Le deuxième :

Cela est pour la valeur de l'accomte.

Pour le moment je passe par un ComboBox.Additem, mais cela serait il
possible de faire en sorte que l'accompte ne dépasse pas la valeur du
prix
de départ.

Voice les codes :

Dans un module :

Option Explicit
Public TypeDeSoiree As Byte


Dans l'userform :

Option Explicit

Dim Plage, PlagePrix As Range
Dim A, B, C, D As Long
Dim WSDonnees, WSDonneesPrix As Worksheet
Dim PlageTypeDeSoirée As String
Dim L As Integer 'Déclaration de variable "L" pour connaitre la Ligne
Numéro

Private Sub cbxAccompteEuros_Change()

On Error Resume Next

If cbxAccompteEuros.Text = "" Then
txtAccompteFrancs = ""
End If
If cbxAccompteEuros = "" Then
lblAccompteFrancs.ForeColor = &H80000008
lblAccompteEuros.ForeColor = &H80000008
Else
lblAccompteFrancs.ForeColor = &HFF0000
lblAccompteEuros.ForeColor = &HFF0000
End If
If cbxAccompteEuros <> "" Then
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros)
End If

If cbxAccompteEuros <> "" Then
txtAccompteFrancs = CDbl(cbxAccompteEuros) * 6.55957
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs)
End If


lblAccompteEuros.Visible = True
txtAccompteFrancs.Visible = True
End Sub

Private Sub cbxReduction_Change()
On Error Resume Next
If cbxReduction = "" Then
txtMontantRemiseEuros = ""
txtMontantRemiseFrancs = ""
lblMontantRemiseEuros.Visible = False
lblMontantRemiseFrancs.Visible = False
txtMontantRemiseEuros.Visible = False
txtMontantRemiseFrancs.Visible = False
Else
lblMontantRemiseEuros.Visible = True
lblMontantRemiseFrancs.Visible = True
txtMontantRemiseEuros.Visible = True
txtMontantRemiseFrancs.Visible = True
End If
txtMontantRemiseEuros = CDbl(txtPrixEuros) * CDbl(cbxReduction) / 100
txtMontantRemiseFrancs = CDbl(txtMontantRemiseEuros) * 6.55957

If cbxReduction <> "" Then
txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros) -
CDbl(txtMontantRemiseEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros)
End If
If cbxReduction <> "" Then
txtSoldeFrancs = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseFrancs)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) - CDbl(cbxAccompteEuros)
End If
If cbxAccompteEuros <> "" Then
txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros) -
CDbl(txtMontantRemiseEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(txtMontantRemiseEuros)
End If

If cbxAccompteEuros <> "" Then
txtSoldeFrancs = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseFrancs)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) -
CDbl(txtMontantRemiseFrancs)
End If

'txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros) -
CDbl(txtMontantRemiseEuros)
'txtSoldeFrancs = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseFrancs)

End Sub


Private Sub cbxTypeDeSoiree_Change()
Set WSDonneesPrix = Sheets("Prix")
Set PlagePrix = WSDonneesPrix.Range("B4:B" &
WSDonneesPrix.Range("D65535").End(xlUp).Row)
On Error Resume Next
D = PlagePrix.Find(What:ËxTypeDeSoiree, LookAt:=xlWhole).Row
With WSDonneesPrix
txtPrixEuros = .Range("C" & D)
End With
If cbxTypeDeSoiree = "" Then
cbxAccompteEuros = ""
cbxReduction = ""
txtPrixFrancs = ""
txtPrixEuros = ""
txtAccompteFrancs = ""
txtSoldeFrancs = ""
txtSoldeEuros = ""
cbxAccompteEuros.Enabled = False
cbxReduction.Enabled = False
Else
cbxAccompteEuros.Enabled = True
cbxReduction.Enabled = True

End If

lblPrixFrancs.Visible = True
txtPrixFrancs.Visible = True
End Sub


Private Sub cmdQuitter_Click()
Unload Me
End Sub

Private Sub txtAccompteFrancs_Change()
On Error Resume Next
txtAccompteFrancs = Format(txtAccompteFrancs, "##,##0.00")
End Sub

Private Sub txtMontantRemiseEuros_Change()
txtMontantRemiseEuros = Format(txtMontantRemiseEuros, "##,##0.00")
End Sub

Private Sub txtMontantRemiseFrancs_Change()
txtMontantRemiseFrancs = Format(txtMontantRemiseFrancs, "##,##0.00")
End Sub

Private Sub txtPortableDeLaMariee_Change()
PhoneFormat txtPortableDeLaMariee
End Sub

Private Sub txtPortableDuMarie_Change()
PhoneFormat txtPortableDuMarie
End Sub

Private Sub txtPrixFrancs_Change()
txtPrixFrancs = Format(txtPrixFrancs, "##,##0.00")
End Sub

Private Sub txtDateDeLaPrestation_Change()
txtDateDeLaPrestation = Application.Proper(Format(Calendar1.Value,
"dddd d
mmmm yyyy"))
End Sub

Private Sub txtDateDeLaPrestation_DblClick(ByVal Cancel As
MSForms.ReturnBoolean)
Calendar1.Visible = True
End Sub

Private Sub txtSoldeFrancs_Change()

txtSoldeFrancs = Format(txtSoldeFrancs, "##,##0.00")

If txtSoldeFrancs > 0 Then
lblSoldeFrancs.ForeColor = &HFF&
lblSoldeEuros.ForeColor = &HFF&
Else
lblSoldeFrancs.ForeColor = &H80000008
lblSoldeEuros.ForeColor = &H80000008
End If

End Sub

Private Sub txtAccompteEuros_Change()

On Error Resume Next
txtAccompteEuros = Format(txtAccompteEuros, "##,##0.00")
txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(txtAccompteEuros)
End Sub
Private Sub txtPrixEuros_Change()

On Error Resume Next

If txtPrixEuros <> "" Then
txtPrixFrancs = CDbl(txtPrixEuros) * 6.55957
If cbxAccompteEuros <> "" Then
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros)
End If
If cbxReduction <> "" Then
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseEuros)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs)
End If
Else
txtPrixEuros = ""
If cbxAccompteEuros <> "" Then
txtSoldeEuros.Value = -CDbl(cbxAccompteEuros)
Else
txtSoldeEuros.Value = ""
End If
If cbxAccompteEuros <> "" Then
txtSoldeFrancs.Value = -CDbl(txtAccompteFrancs)
Else
txtSoldeFrancs.Value = ""
End If


End If

txtPrixEuros = Format(txtSoldeEuros, "##,##0.00")

lblAccompteFrancs.Visible = True
cbxAccompteEuros.Visible = True
lblSoldeFrancs.Visible = True
txtSoldeFrancs.Visible = True
lblPrixEuros.Visible = True
txtPrixEuros.Visible = True
lblSoldeEuros.Visible = True
txtSoldeEuros.Visible = True

End Sub
Private Sub txtSoldeEuros_Change()
On Error Resume Next
txtSoldeEuros = Format(txtSoldeEuros, "##,##0.00")
End Sub
Private Sub txtNomDuMarie_Change()
txtNomDuMarie.Value = UCase(txtNomDuMarie.Value)
End Sub
Private Sub txtPrenomDuMarie_Change()
txtPrenomDuMarie = Application.Proper(txtPrenomDuMarie)
End Sub
Private Sub txtNomDeLaMariee_Change()
txtNomDeLaMariee.Value = UCase(txtNomDeLaMariee.Value)
End Sub
Private Sub txtPrenomDeLaMariee_Change()
txtPrenomDeLaMariee = Application.Proper(txtPrenomDeLaMariee)
End Sub

Private Sub UserForm_Initialize()
Dim Ctrl As Control
'Ici je vide les Controls
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is MSForms.TextBox Or TypeOf Ctrl Is MSForms.ComboBox
Then
Ctrl = ""
End If
Next Ctrl

cbxAccompteEuros.Enabled = False
cbxReduction.Enabled = False
lblMontantRemiseEuros.Visible = False
lblMontantRemiseFrancs.Visible = False
txtMontantRemiseEuros.Visible = False
txtMontantRemiseFrancs.Visible = False

' Choix des Organisateurs, Nom des salles, Traiteurs, Type de soirée
Set WSDonneesPrix = Worksheets("Prix")
With WSDonneesPrix
PlageTypeDeSoirée = .Range("B4:B" &
.Range("B2000").End(xlUp).Row).Address
End With
cbxTypeDeSoiree.RowSource = "Prix!" & PlageTypeDeSoirée

' Choix de l'accompt
cbxAccompteEuros.AddItem "100,00"
cbxAccompteEuros.AddItem "200,00"
cbxAccompteEuros.AddItem "300,00"

'Réduction
cbxReduction.AddItem "10"
cbxReduction.AddItem "15"
cbxReduction.AddItem "20"

End Sub

En vous remerciant par avance, Jacques



















Avatar
michdenis
Bonjour Jacques,

Ton fichier est là avec une exemple de code partiel seulement pour les euros.

P.S. Il aurait été judicieux que tu écrives la façon que tu effectues tes calculs dans le cas où il y a un accompte et un rabais.

à défaut de présenter ton problème adéquatement, tu devras te contenter de cela.

http://cjoint.com/?kFoJvjgoUm


Salutations!



"Jacques" a écrit dans le message de news: 436600e9$0$27432$
Re

Je te remet un autre lien, car j'ai rajouté un boutn pour accéder
directement a L'UserForm.
http://cjoint.com/?kFmEhxd0Rz
Merci, jacques
"Daniel" a écrit dans le message de news:

C'est difficile de voir comment tout ce code s'articule.
S'il ne contient rien de confidentiel, peux-tu poster ton classeur à
l'adresse :
www.cjoint.com ?
Daniel
"Jacques" a écrit dans le message de news:
4365c325$0$7860$
Daniel, le groupe

Merci de m'avoir répondu :

Donc cette partie de UserForm, me sert a choisir le type de soirée, ce
qui valide un prix prédéfini (Ca cela fonctionne)

Ensuite, si le demandeur donne un accompte, cela fait bien le calcul.

Et si je décide de faire une reduction, le calcule, se fait bien aussi.

Par contre je me suis apercu, que si je m'étais trompé de type de soirée,
donc il faut que je change dans le ComboBox, et la cela ne va plus, cela
me met des chiffre qui n'on rien a voir dans les TextBox. Je ne peu donc
pas revenir en arrière , une fois, un accompte de mis et/ ou une
réduction appliquée.

Donc ce que j'aimerais c'est que même si j'ai fait un choix d'accompte
et/ou de réduction, que si je décide de changer de type de soirée, que
cela me modifie le prix et que cela recalcule l'ensemble.


Pour le second point, j'autais aimer pouvoir arréter la liste des
accomptes sans dépassé la valeur du prix partiqué.

Si par exemple le type de soirée est un mariage, le prix sera de 300 ?,
donc dans l'accompte si la liste il y avait comme choix 50, 100, 150,
200, 250, 300, 350, 400 et bien que cela s'arrète a 300 ?.

Voila, j'espère être plus claire, sinon, je peu te proposer un fichier
joint.

Merci encore, Jacques
"Daniel" a écrit dans le message de news:

Bonjour.
Difficile de comprendre ce que tu veux faire avec ton userform. Peux-tu
préciser et donner un exemple de ce qui ne fonctionne pas (ce que tu
devrais obtenir et ce que tu obtiens, par exemple.
Cordialement.
Daniel
"Jacques" a écrit dans le message de news:
4365401c$0$1021$
Salut a toutes et tous

Je réhitère mes soucient, car je ne sais pas si mon post c'est perdu.
Donc j'ai deux petits soucie :

Le premier :

Si je choisi un type de soirée et que je met sois un accompte, soit une
réduction ou même les deux et que je veuille modifier le type de soirée
les
calculs me donnent des valeur qui n'on rien a voir.

Y'a t'il moyen d'y remedier ?

Le deuxième :

Cela est pour la valeur de l'accomte.

Pour le moment je passe par un ComboBox.Additem, mais cela serait il
possible de faire en sorte que l'accompte ne dépasse pas la valeur du
prix
de départ.

Voice les codes :

Dans un module :

Option Explicit
Public TypeDeSoiree As Byte


Dans l'userform :

Option Explicit

Dim Plage, PlagePrix As Range
Dim A, B, C, D As Long
Dim WSDonnees, WSDonneesPrix As Worksheet
Dim PlageTypeDeSoirée As String
Dim L As Integer 'Déclaration de variable "L" pour connaitre la Ligne
Numéro

Private Sub cbxAccompteEuros_Change()

On Error Resume Next

If cbxAccompteEuros.Text = "" Then
txtAccompteFrancs = ""
End If
If cbxAccompteEuros = "" Then
lblAccompteFrancs.ForeColor = &H80000008
lblAccompteEuros.ForeColor = &H80000008
Else
lblAccompteFrancs.ForeColor = &HFF0000
lblAccompteEuros.ForeColor = &HFF0000
End If
If cbxAccompteEuros <> "" Then
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros)
End If

If cbxAccompteEuros <> "" Then
txtAccompteFrancs = CDbl(cbxAccompteEuros) * 6.55957
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs)
End If


lblAccompteEuros.Visible = True
txtAccompteFrancs.Visible = True
End Sub

Private Sub cbxReduction_Change()
On Error Resume Next
If cbxReduction = "" Then
txtMontantRemiseEuros = ""
txtMontantRemiseFrancs = ""
lblMontantRemiseEuros.Visible = False
lblMontantRemiseFrancs.Visible = False
txtMontantRemiseEuros.Visible = False
txtMontantRemiseFrancs.Visible = False
Else
lblMontantRemiseEuros.Visible = True
lblMontantRemiseFrancs.Visible = True
txtMontantRemiseEuros.Visible = True
txtMontantRemiseFrancs.Visible = True
End If
txtMontantRemiseEuros = CDbl(txtPrixEuros) * CDbl(cbxReduction) / 100
txtMontantRemiseFrancs = CDbl(txtMontantRemiseEuros) * 6.55957

If cbxReduction <> "" Then
txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros) -
CDbl(txtMontantRemiseEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros)
End If
If cbxReduction <> "" Then
txtSoldeFrancs = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseFrancs)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) - CDbl(cbxAccompteEuros)
End If
If cbxAccompteEuros <> "" Then
txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros) -
CDbl(txtMontantRemiseEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(txtMontantRemiseEuros)
End If

If cbxAccompteEuros <> "" Then
txtSoldeFrancs = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseFrancs)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) -
CDbl(txtMontantRemiseFrancs)
End If

'txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros) -
CDbl(txtMontantRemiseEuros)
'txtSoldeFrancs = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseFrancs)

End Sub


Private Sub cbxTypeDeSoiree_Change()
Set WSDonneesPrix = Sheets("Prix")
Set PlagePrix = WSDonneesPrix.Range("B4:B" &
WSDonneesPrix.Range("D65535").End(xlUp).Row)
On Error Resume Next
D = PlagePrix.Find(What:ËxTypeDeSoiree, LookAt:=xlWhole).Row
With WSDonneesPrix
txtPrixEuros = .Range("C" & D)
End With
If cbxTypeDeSoiree = "" Then
cbxAccompteEuros = ""
cbxReduction = ""
txtPrixFrancs = ""
txtPrixEuros = ""
txtAccompteFrancs = ""
txtSoldeFrancs = ""
txtSoldeEuros = ""
cbxAccompteEuros.Enabled = False
cbxReduction.Enabled = False
Else
cbxAccompteEuros.Enabled = True
cbxReduction.Enabled = True

End If

lblPrixFrancs.Visible = True
txtPrixFrancs.Visible = True
End Sub


Private Sub cmdQuitter_Click()
Unload Me
End Sub

Private Sub txtAccompteFrancs_Change()
On Error Resume Next
txtAccompteFrancs = Format(txtAccompteFrancs, "##,##0.00")
End Sub

Private Sub txtMontantRemiseEuros_Change()
txtMontantRemiseEuros = Format(txtMontantRemiseEuros, "##,##0.00")
End Sub

Private Sub txtMontantRemiseFrancs_Change()
txtMontantRemiseFrancs = Format(txtMontantRemiseFrancs, "##,##0.00")
End Sub

Private Sub txtPortableDeLaMariee_Change()
PhoneFormat txtPortableDeLaMariee
End Sub

Private Sub txtPortableDuMarie_Change()
PhoneFormat txtPortableDuMarie
End Sub

Private Sub txtPrixFrancs_Change()
txtPrixFrancs = Format(txtPrixFrancs, "##,##0.00")
End Sub

Private Sub txtDateDeLaPrestation_Change()
txtDateDeLaPrestation = Application.Proper(Format(Calendar1.Value,
"dddd d
mmmm yyyy"))
End Sub

Private Sub txtDateDeLaPrestation_DblClick(ByVal Cancel As
MSForms.ReturnBoolean)
Calendar1.Visible = True
End Sub

Private Sub txtSoldeFrancs_Change()

txtSoldeFrancs = Format(txtSoldeFrancs, "##,##0.00")

If txtSoldeFrancs > 0 Then
lblSoldeFrancs.ForeColor = &HFF&
lblSoldeEuros.ForeColor = &HFF&
Else
lblSoldeFrancs.ForeColor = &H80000008
lblSoldeEuros.ForeColor = &H80000008
End If

End Sub

Private Sub txtAccompteEuros_Change()

On Error Resume Next
txtAccompteEuros = Format(txtAccompteEuros, "##,##0.00")
txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(txtAccompteEuros)
End Sub
Private Sub txtPrixEuros_Change()

On Error Resume Next

If txtPrixEuros <> "" Then
txtPrixFrancs = CDbl(txtPrixEuros) * 6.55957
If cbxAccompteEuros <> "" Then
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros)
End If
If cbxReduction <> "" Then
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseEuros)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs)
End If
Else
txtPrixEuros = ""
If cbxAccompteEuros <> "" Then
txtSoldeEuros.Value = -CDbl(cbxAccompteEuros)
Else
txtSoldeEuros.Value = ""
End If
If cbxAccompteEuros <> "" Then
txtSoldeFrancs.Value = -CDbl(txtAccompteFrancs)
Else
txtSoldeFrancs.Value = ""
End If


End If

txtPrixEuros = Format(txtSoldeEuros, "##,##0.00")

lblAccompteFrancs.Visible = True
cbxAccompteEuros.Visible = True
lblSoldeFrancs.Visible = True
txtSoldeFrancs.Visible = True
lblPrixEuros.Visible = True
txtPrixEuros.Visible = True
lblSoldeEuros.Visible = True
txtSoldeEuros.Visible = True

End Sub
Private Sub txtSoldeEuros_Change()
On Error Resume Next
txtSoldeEuros = Format(txtSoldeEuros, "##,##0.00")
End Sub
Private Sub txtNomDuMarie_Change()
txtNomDuMarie.Value = UCase(txtNomDuMarie.Value)
End Sub
Private Sub txtPrenomDuMarie_Change()
txtPrenomDuMarie = Application.Proper(txtPrenomDuMarie)
End Sub
Private Sub txtNomDeLaMariee_Change()
txtNomDeLaMariee.Value = UCase(txtNomDeLaMariee.Value)
End Sub
Private Sub txtPrenomDeLaMariee_Change()
txtPrenomDeLaMariee = Application.Proper(txtPrenomDeLaMariee)
End Sub

Private Sub UserForm_Initialize()
Dim Ctrl As Control
'Ici je vide les Controls
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is MSForms.TextBox Or TypeOf Ctrl Is MSForms.ComboBox
Then
Ctrl = ""
End If
Next Ctrl

cbxAccompteEuros.Enabled = False
cbxReduction.Enabled = False
lblMontantRemiseEuros.Visible = False
lblMontantRemiseFrancs.Visible = False
txtMontantRemiseEuros.Visible = False
txtMontantRemiseFrancs.Visible = False

' Choix des Organisateurs, Nom des salles, Traiteurs, Type de soirée
Set WSDonneesPrix = Worksheets("Prix")
With WSDonneesPrix
PlageTypeDeSoirée = .Range("B4:B" &
.Range("B2000").End(xlUp).Row).Address
End With
cbxTypeDeSoiree.RowSource = "Prix!" & PlageTypeDeSoirée

' Choix de l'accompt
cbxAccompteEuros.AddItem "100,00"
cbxAccompteEuros.AddItem "200,00"
cbxAccompteEuros.AddItem "300,00"

'Réduction
cbxReduction.AddItem "10"
cbxReduction.AddItem "15"
cbxReduction.AddItem "20"

End Sub

En vous remerciant par avance, Jacques















Avatar
Jacques
Daniel, Michel, le groupe

Je suis sincèrement désolé de cet oublie de code, j'ai du me trompé lors du
choix du fichier a joindre.

Je rectifie, si cela n'est pas trop tard.

Michel, j'ai regardé, mais n'ayant pas tous les éléments en main de ce que
j'avais fais je comprends que tu n'as pas pu faire ce que je n'arrive pas a
obtenir.

Revoici le lien, si cela peu encore se faire : http://cjoint.com/?kFvmGiCTa1

Je te remercie encore ainsi que daniel, Jacques
"Jacques" a écrit dans le message de news:
436600e9$0$27432$
Re

Je te remet un autre lien, car j'ai rajouté un boutn pour accéder
directement a L'UserForm.
http://cjoint.com/?kFmEhxd0Rz
Merci, jacques
"Daniel" a écrit dans le message de news:

C'est difficile de voir comment tout ce code s'articule.
S'il ne contient rien de confidentiel, peux-tu poster ton classeur à
l'adresse :
www.cjoint.com ?
Daniel
"Jacques" a écrit dans le message de news:
4365c325$0$7860$
Daniel, le groupe

Merci de m'avoir répondu :

Donc cette partie de UserForm, me sert a choisir le type de soirée, ce
qui valide un prix prédéfini (Ca cela fonctionne)

Ensuite, si le demandeur donne un accompte, cela fait bien le calcul.

Et si je décide de faire une reduction, le calcule, se fait bien aussi.

Par contre je me suis apercu, que si je m'étais trompé de type de
soirée, donc il faut que je change dans le ComboBox, et la cela ne va
plus, cela me met des chiffre qui n'on rien a voir dans les TextBox. Je
ne peu donc pas revenir en arrière , une fois, un accompte de mis et/ ou
une réduction appliquée.

Donc ce que j'aimerais c'est que même si j'ai fait un choix d'accompte
et/ou de réduction, que si je décide de changer de type de soirée, que
cela me modifie le prix et que cela recalcule l'ensemble.


Pour le second point, j'autais aimer pouvoir arréter la liste des
accomptes sans dépassé la valeur du prix partiqué.

Si par exemple le type de soirée est un mariage, le prix sera de 300 ?,
donc dans l'accompte si la liste il y avait comme choix 50, 100, 150,
200, 250, 300, 350, 400 et bien que cela s'arrète a 300 ?.

Voila, j'espère être plus claire, sinon, je peu te proposer un fichier
joint.

Merci encore, Jacques
"Daniel" a écrit dans le message de news:

Bonjour.
Difficile de comprendre ce que tu veux faire avec ton userform. Peux-tu
préciser et donner un exemple de ce qui ne fonctionne pas (ce que tu
devrais obtenir et ce que tu obtiens, par exemple.
Cordialement.
Daniel
"Jacques" a écrit dans le message de news:
4365401c$0$1021$
Salut a toutes et tous

Je réhitère mes soucient, car je ne sais pas si mon post c'est perdu.
Donc j'ai deux petits soucie :

Le premier :

Si je choisi un type de soirée et que je met sois un accompte, soit
une
réduction ou même les deux et que je veuille modifier le type de
soirée les
calculs me donnent des valeur qui n'on rien a voir.

Y'a t'il moyen d'y remedier ?

Le deuxième :

Cela est pour la valeur de l'accomte.

Pour le moment je passe par un ComboBox.Additem, mais cela serait il
possible de faire en sorte que l'accompte ne dépasse pas la valeur du
prix
de départ.

Voice les codes :

Dans un module :

Option Explicit
Public TypeDeSoiree As Byte


Dans l'userform :

Option Explicit

Dim Plage, PlagePrix As Range
Dim A, B, C, D As Long
Dim WSDonnees, WSDonneesPrix As Worksheet
Dim PlageTypeDeSoirée As String
Dim L As Integer 'Déclaration de variable "L" pour connaitre la Ligne
Numéro

Private Sub cbxAccompteEuros_Change()

On Error Resume Next

If cbxAccompteEuros.Text = "" Then
txtAccompteFrancs = ""
End If
If cbxAccompteEuros = "" Then
lblAccompteFrancs.ForeColor = &H80000008
lblAccompteEuros.ForeColor = &H80000008
Else
lblAccompteFrancs.ForeColor = &HFF0000
lblAccompteEuros.ForeColor = &HFF0000
End If
If cbxAccompteEuros <> "" Then
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros)
End If

If cbxAccompteEuros <> "" Then
txtAccompteFrancs = CDbl(cbxAccompteEuros) * 6.55957
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs)
End If


lblAccompteEuros.Visible = True
txtAccompteFrancs.Visible = True
End Sub

Private Sub cbxReduction_Change()
On Error Resume Next
If cbxReduction = "" Then
txtMontantRemiseEuros = ""
txtMontantRemiseFrancs = ""
lblMontantRemiseEuros.Visible = False
lblMontantRemiseFrancs.Visible = False
txtMontantRemiseEuros.Visible = False
txtMontantRemiseFrancs.Visible = False
Else
lblMontantRemiseEuros.Visible = True
lblMontantRemiseFrancs.Visible = True
txtMontantRemiseEuros.Visible = True
txtMontantRemiseFrancs.Visible = True
End If
txtMontantRemiseEuros = CDbl(txtPrixEuros) * CDbl(cbxReduction) / 100
txtMontantRemiseFrancs = CDbl(txtMontantRemiseEuros) * 6.55957

If cbxReduction <> "" Then
txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros) -
CDbl(txtMontantRemiseEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros)
End If
If cbxReduction <> "" Then
txtSoldeFrancs = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseFrancs)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) - CDbl(cbxAccompteEuros)
End If
If cbxAccompteEuros <> "" Then
txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros) -
CDbl(txtMontantRemiseEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(txtMontantRemiseEuros)
End If

If cbxAccompteEuros <> "" Then
txtSoldeFrancs = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseFrancs)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) -
CDbl(txtMontantRemiseFrancs)
End If

'txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros) -
CDbl(txtMontantRemiseEuros)
'txtSoldeFrancs = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseFrancs)

End Sub


Private Sub cbxTypeDeSoiree_Change()
Set WSDonneesPrix = Sheets("Prix")
Set PlagePrix = WSDonneesPrix.Range("B4:B" &
WSDonneesPrix.Range("D65535").End(xlUp).Row)
On Error Resume Next
D = PlagePrix.Find(What:ËxTypeDeSoiree, LookAt:=xlWhole).Row
With WSDonneesPrix
txtPrixEuros = .Range("C" & D)
End With
If cbxTypeDeSoiree = "" Then
cbxAccompteEuros = ""
cbxReduction = ""
txtPrixFrancs = ""
txtPrixEuros = ""
txtAccompteFrancs = ""
txtSoldeFrancs = ""
txtSoldeEuros = ""
cbxAccompteEuros.Enabled = False
cbxReduction.Enabled = False
Else
cbxAccompteEuros.Enabled = True
cbxReduction.Enabled = True

End If

lblPrixFrancs.Visible = True
txtPrixFrancs.Visible = True
End Sub


Private Sub cmdQuitter_Click()
Unload Me
End Sub

Private Sub txtAccompteFrancs_Change()
On Error Resume Next
txtAccompteFrancs = Format(txtAccompteFrancs, "##,##0.00")
End Sub

Private Sub txtMontantRemiseEuros_Change()
txtMontantRemiseEuros = Format(txtMontantRemiseEuros, "##,##0.00")
End Sub

Private Sub txtMontantRemiseFrancs_Change()
txtMontantRemiseFrancs = Format(txtMontantRemiseFrancs, "##,##0.00")
End Sub

Private Sub txtPortableDeLaMariee_Change()
PhoneFormat txtPortableDeLaMariee
End Sub

Private Sub txtPortableDuMarie_Change()
PhoneFormat txtPortableDuMarie
End Sub

Private Sub txtPrixFrancs_Change()
txtPrixFrancs = Format(txtPrixFrancs, "##,##0.00")
End Sub

Private Sub txtDateDeLaPrestation_Change()
txtDateDeLaPrestation = Application.Proper(Format(Calendar1.Value,
"dddd d
mmmm yyyy"))
End Sub

Private Sub txtDateDeLaPrestation_DblClick(ByVal Cancel As
MSForms.ReturnBoolean)
Calendar1.Visible = True
End Sub

Private Sub txtSoldeFrancs_Change()

txtSoldeFrancs = Format(txtSoldeFrancs, "##,##0.00")

If txtSoldeFrancs > 0 Then
lblSoldeFrancs.ForeColor = &HFF&
lblSoldeEuros.ForeColor = &HFF&
Else
lblSoldeFrancs.ForeColor = &H80000008
lblSoldeEuros.ForeColor = &H80000008
End If

End Sub

Private Sub txtAccompteEuros_Change()

On Error Resume Next
txtAccompteEuros = Format(txtAccompteEuros, "##,##0.00")
txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(txtAccompteEuros)
End Sub
Private Sub txtPrixEuros_Change()

On Error Resume Next

If txtPrixEuros <> "" Then
txtPrixFrancs = CDbl(txtPrixEuros) * 6.55957
If cbxAccompteEuros <> "" Then
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros)
End If
If cbxReduction <> "" Then
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseEuros)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs)
End If
Else
txtPrixEuros = ""
If cbxAccompteEuros <> "" Then
txtSoldeEuros.Value = -CDbl(cbxAccompteEuros)
Else
txtSoldeEuros.Value = ""
End If
If cbxAccompteEuros <> "" Then
txtSoldeFrancs.Value = -CDbl(txtAccompteFrancs)
Else
txtSoldeFrancs.Value = ""
End If


End If

txtPrixEuros = Format(txtSoldeEuros, "##,##0.00")

lblAccompteFrancs.Visible = True
cbxAccompteEuros.Visible = True
lblSoldeFrancs.Visible = True
txtSoldeFrancs.Visible = True
lblPrixEuros.Visible = True
txtPrixEuros.Visible = True
lblSoldeEuros.Visible = True
txtSoldeEuros.Visible = True

End Sub
Private Sub txtSoldeEuros_Change()
On Error Resume Next
txtSoldeEuros = Format(txtSoldeEuros, "##,##0.00")
End Sub
Private Sub txtNomDuMarie_Change()
txtNomDuMarie.Value = UCase(txtNomDuMarie.Value)
End Sub
Private Sub txtPrenomDuMarie_Change()
txtPrenomDuMarie = Application.Proper(txtPrenomDuMarie)
End Sub
Private Sub txtNomDeLaMariee_Change()
txtNomDeLaMariee.Value = UCase(txtNomDeLaMariee.Value)
End Sub
Private Sub txtPrenomDeLaMariee_Change()
txtPrenomDeLaMariee = Application.Proper(txtPrenomDeLaMariee)
End Sub

Private Sub UserForm_Initialize()
Dim Ctrl As Control
'Ici je vide les Controls
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is MSForms.TextBox Or TypeOf Ctrl Is MSForms.ComboBox
Then
Ctrl = ""
End If
Next Ctrl

cbxAccompteEuros.Enabled = False
cbxReduction.Enabled = False
lblMontantRemiseEuros.Visible = False
lblMontantRemiseFrancs.Visible = False
txtMontantRemiseEuros.Visible = False
txtMontantRemiseFrancs.Visible = False

' Choix des Organisateurs, Nom des salles, Traiteurs, Type de soirée
Set WSDonneesPrix = Worksheets("Prix")
With WSDonneesPrix
PlageTypeDeSoirée = .Range("B4:B" &
.Range("B2000").End(xlUp).Row).Address
End With
cbxTypeDeSoiree.RowSource = "Prix!" & PlageTypeDeSoirée

' Choix de l'accompt
cbxAccompteEuros.AddItem "100,00"
cbxAccompteEuros.AddItem "200,00"
cbxAccompteEuros.AddItem "300,00"

'Réduction
cbxReduction.AddItem "10"
cbxReduction.AddItem "15"
cbxReduction.AddItem "20"

End Sub

En vous remerciant par avance, Jacques



















Avatar
docm
Bonjour.

À première vue, le problème semble se produire quand il y a une valeur dans
cbxAccompteEuros.

Voici qui semble régler le problème: supprimer toutes les autres valeurs
quand il y a un changement dans le type de soirée. Puis rétablir la valeur
accompte à la fin de la procédure.

docm


Private Sub cbxTypeDeSoiree_Change()
memcbxAccompteEuros = cbxAccompteEuros.ListIndex
cbxAccompteEuros = ""
cbxReduction = ""
txtPrixFrancs = ""
txtPrixEuros = ""
txtAccompteFrancs = ""
txtSoldeFrancs = ""
txtSoldeEuros = ""
cbxAccompteEuros.Enabled = False
cbxReduction.Enabled = False
Set WSDonneesPrix = Sheets("Prix")
Set PlagePrix = WSDonneesPrix.Range("B4:B" &
WSDonneesPrix.Range("D65535").End(xlUp).Row)
On Error Resume Next
D = PlagePrix.Find(What:ËxTypeDeSoiree, LookAt:=xlWhole).Row
With WSDonneesPrix
txtPrixEuros = .Range("C" & D)
End With
If cbxTypeDeSoiree = "" Then
cbxAccompteEuros = ""
cbxReduction = ""
txtPrixFrancs = ""
txtPrixEuros = ""
txtAccompteFrancs = ""
txtSoldeFrancs = ""
txtSoldeEuros = ""
cbxAccompteEuros.Enabled = False
cbxReduction.Enabled = False
Else
cbxAccompteEuros.Enabled = True
cbxReduction.Enabled = True

End If

lblPrixFrancs.Visible = True
txtPrixFrancs.Visible = True
cbxAccompteEuros.ListIndex = memcbxAccompteEuros

End Sub


"Jacques" a écrit dans le message news:
43667ade$0$1747$
Daniel, Michel, le groupe

Je suis sincèrement désolé de cet oublie de code, j'ai du me trompé lors
du

choix du fichier a joindre.

Je rectifie, si cela n'est pas trop tard.

Michel, j'ai regardé, mais n'ayant pas tous les éléments en main de ce que
j'avais fais je comprends que tu n'as pas pu faire ce que je n'arrive pas
a

obtenir.

Revoici le lien, si cela peu encore se faire :
http://cjoint.com/?kFvmGiCTa1


Je te remercie encore ainsi que daniel, Jacques
"Jacques" a écrit dans le message de news:
436600e9$0$27432$
Re

Je te remet un autre lien, car j'ai rajouté un boutn pour accéder
directement a L'UserForm.
http://cjoint.com/?kFmEhxd0Rz
Merci, jacques
"Daniel" a écrit dans le message de news:

C'est difficile de voir comment tout ce code s'articule.
S'il ne contient rien de confidentiel, peux-tu poster ton classeur à
l'adresse :
www.cjoint.com ?
Daniel
"Jacques" a écrit dans le message de news:
4365c325$0$7860$
Daniel, le groupe

Merci de m'avoir répondu :

Donc cette partie de UserForm, me sert a choisir le type de soirée, ce
qui valide un prix prédéfini (Ca cela fonctionne)

Ensuite, si le demandeur donne un accompte, cela fait bien le calcul.

Et si je décide de faire une reduction, le calcule, se fait bien
aussi.





Par contre je me suis apercu, que si je m'étais trompé de type de
soirée, donc il faut que je change dans le ComboBox, et la cela ne va
plus, cela me met des chiffre qui n'on rien a voir dans les TextBox.
Je




ne peu donc pas revenir en arrière , une fois, un accompte de mis et/
ou




une réduction appliquée.

Donc ce que j'aimerais c'est que même si j'ai fait un choix d'accompte
et/ou de réduction, que si je décide de changer de type de soirée, que
cela me modifie le prix et que cela recalcule l'ensemble.


Pour le second point, j'autais aimer pouvoir arréter la liste des
accomptes sans dépassé la valeur du prix partiqué.

Si par exemple le type de soirée est un mariage, le prix sera de 300
?,




donc dans l'accompte si la liste il y avait comme choix 50, 100, 150,
200, 250, 300, 350, 400 et bien que cela s'arrète a 300 ?.

Voila, j'espère être plus claire, sinon, je peu te proposer un fichier
joint.

Merci encore, Jacques
"Daniel" a écrit dans le message de news:

Bonjour.
Difficile de comprendre ce que tu veux faire avec ton userform.
Peux-tu





préciser et donner un exemple de ce qui ne fonctionne pas (ce que tu
devrais obtenir et ce que tu obtiens, par exemple.
Cordialement.
Daniel
"Jacques" a écrit dans le message de
news:





4365401c$0$1021$
Salut a toutes et tous

Je réhitère mes soucient, car je ne sais pas si mon post c'est
perdu.






Donc j'ai deux petits soucie :

Le premier :

Si je choisi un type de soirée et que je met sois un accompte, soit
une
réduction ou même les deux et que je veuille modifier le type de
soirée les
calculs me donnent des valeur qui n'on rien a voir.

Y'a t'il moyen d'y remedier ?

Le deuxième :

Cela est pour la valeur de l'accomte.

Pour le moment je passe par un ComboBox.Additem, mais cela serait il
possible de faire en sorte que l'accompte ne dépasse pas la valeur
du






prix
de départ.

Voice les codes :

Dans un module :

Option Explicit
Public TypeDeSoiree As Byte


Dans l'userform :

Option Explicit

Dim Plage, PlagePrix As Range
Dim A, B, C, D As Long
Dim WSDonnees, WSDonneesPrix As Worksheet
Dim PlageTypeDeSoirée As String
Dim L As Integer 'Déclaration de variable "L" pour connaitre la
Ligne






Numéro

Private Sub cbxAccompteEuros_Change()

On Error Resume Next

If cbxAccompteEuros.Text = "" Then
txtAccompteFrancs = ""
End If
If cbxAccompteEuros = "" Then
lblAccompteFrancs.ForeColor = &H80000008
lblAccompteEuros.ForeColor = &H80000008
Else
lblAccompteFrancs.ForeColor = &HFF0000
lblAccompteEuros.ForeColor = &HFF0000
End If
If cbxAccompteEuros <> "" Then
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros)
End If

If cbxAccompteEuros <> "" Then
txtAccompteFrancs = CDbl(cbxAccompteEuros) * 6.55957
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs)
End If


lblAccompteEuros.Visible = True
txtAccompteFrancs.Visible = True
End Sub

Private Sub cbxReduction_Change()
On Error Resume Next
If cbxReduction = "" Then
txtMontantRemiseEuros = ""
txtMontantRemiseFrancs = ""
lblMontantRemiseEuros.Visible = False
lblMontantRemiseFrancs.Visible = False
txtMontantRemiseEuros.Visible = False
txtMontantRemiseFrancs.Visible = False
Else
lblMontantRemiseEuros.Visible = True
lblMontantRemiseFrancs.Visible = True
txtMontantRemiseEuros.Visible = True
txtMontantRemiseFrancs.Visible = True
End If
txtMontantRemiseEuros = CDbl(txtPrixEuros) * CDbl(cbxReduction) /
100






txtMontantRemiseFrancs = CDbl(txtMontantRemiseEuros) * 6.55957

If cbxReduction <> "" Then
txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros) -
CDbl(txtMontantRemiseEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros)
End If
If cbxReduction <> "" Then
txtSoldeFrancs = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseFrancs)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) - CDbl(cbxAccompteEuros)
End If
If cbxAccompteEuros <> "" Then
txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros) -
CDbl(txtMontantRemiseEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros) -
CDbl(txtMontantRemiseEuros)






End If

If cbxAccompteEuros <> "" Then
txtSoldeFrancs = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseFrancs)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) -
CDbl(txtMontantRemiseFrancs)
End If

'txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros) -
CDbl(txtMontantRemiseEuros)
'txtSoldeFrancs = CDbl(txtPrixFrancs) - CDbl(txtAccompteFrancs) -
CDbl(txtMontantRemiseFrancs)

End Sub


Private Sub cbxTypeDeSoiree_Change()
Set WSDonneesPrix = Sheets("Prix")
Set PlagePrix = WSDonneesPrix.Range("B4:B" &
WSDonneesPrix.Range("D65535").End(xlUp).Row)
On Error Resume Next
D = PlagePrix.Find(What:ËxTypeDeSoiree, LookAt:=xlWhole).Row
With WSDonneesPrix
txtPrixEuros = .Range("C" & D)
End With
If cbxTypeDeSoiree = "" Then
cbxAccompteEuros = ""
cbxReduction = ""
txtPrixFrancs = ""
txtPrixEuros = ""
txtAccompteFrancs = ""
txtSoldeFrancs = ""
txtSoldeEuros = ""
cbxAccompteEuros.Enabled = False
cbxReduction.Enabled = False
Else
cbxAccompteEuros.Enabled = True
cbxReduction.Enabled = True

End If

lblPrixFrancs.Visible = True
txtPrixFrancs.Visible = True
End Sub


Private Sub cmdQuitter_Click()
Unload Me
End Sub

Private Sub txtAccompteFrancs_Change()
On Error Resume Next
txtAccompteFrancs = Format(txtAccompteFrancs, "##,##0.00")
End Sub

Private Sub txtMontantRemiseEuros_Change()
txtMontantRemiseEuros = Format(txtMontantRemiseEuros, "##,##0.00")
End Sub

Private Sub txtMontantRemiseFrancs_Change()
txtMontantRemiseFrancs = Format(txtMontantRemiseFrancs, "##,##0.00")
End Sub

Private Sub txtPortableDeLaMariee_Change()
PhoneFormat txtPortableDeLaMariee
End Sub

Private Sub txtPortableDuMarie_Change()
PhoneFormat txtPortableDuMarie
End Sub

Private Sub txtPrixFrancs_Change()
txtPrixFrancs = Format(txtPrixFrancs, "##,##0.00")
End Sub

Private Sub txtDateDeLaPrestation_Change()
txtDateDeLaPrestation = Application.Proper(Format(Calendar1.Value,
"dddd d
mmmm yyyy"))
End Sub

Private Sub txtDateDeLaPrestation_DblClick(ByVal Cancel As
MSForms.ReturnBoolean)
Calendar1.Visible = True
End Sub

Private Sub txtSoldeFrancs_Change()

txtSoldeFrancs = Format(txtSoldeFrancs, "##,##0.00")

If txtSoldeFrancs > 0 Then
lblSoldeFrancs.ForeColor = &HFF&
lblSoldeEuros.ForeColor = &HFF&
Else
lblSoldeFrancs.ForeColor = &H80000008
lblSoldeEuros.ForeColor = &H80000008
End If

End Sub

Private Sub txtAccompteEuros_Change()

On Error Resume Next
txtAccompteEuros = Format(txtAccompteEuros, "##,##0.00")
txtSoldeEuros = CDbl(txtPrixEuros) - CDbl(txtAccompteEuros)
End Sub
Private Sub txtPrixEuros_Change()

On Error Resume Next

If txtPrixEuros <> "" Then
txtPrixFrancs = CDbl(txtPrixEuros) * 6.55957
If cbxAccompteEuros <> "" Then
txtSoldeEuros.Value = CDbl(txtPrixEuros) - CDbl(cbxAccompteEuros)
Else
txtSoldeEuros.Value = CDbl(txtPrixEuros)
End If
If cbxReduction <> "" Then
txtSoldeFrancs.Value = CDbl(txtPrixFrancs) -
CDbl(txtAccompteFrancs) -






CDbl(txtMontantRemiseEuros)
Else
txtSoldeFrancs.Value = CDbl(txtPrixFrancs)
End If
Else
txtPrixEuros = ""
If cbxAccompteEuros <> "" Then
txtSoldeEuros.Value = -CDbl(cbxAccompteEuros)
Else
txtSoldeEuros.Value = ""
End If
If cbxAccompteEuros <> "" Then
txtSoldeFrancs.Value = -CDbl(txtAccompteFrancs)
Else
txtSoldeFrancs.Value = ""
End If


End If

txtPrixEuros = Format(txtSoldeEuros, "##,##0.00")

lblAccompteFrancs.Visible = True
cbxAccompteEuros.Visible = True
lblSoldeFrancs.Visible = True
txtSoldeFrancs.Visible = True
lblPrixEuros.Visible = True
txtPrixEuros.Visible = True
lblSoldeEuros.Visible = True
txtSoldeEuros.Visible = True

End Sub
Private Sub txtSoldeEuros_Change()
On Error Resume Next
txtSoldeEuros = Format(txtSoldeEuros, "##,##0.00")
End Sub
Private Sub txtNomDuMarie_Change()
txtNomDuMarie.Value = UCase(txtNomDuMarie.Value)
End Sub
Private Sub txtPrenomDuMarie_Change()
txtPrenomDuMarie = Application.Proper(txtPrenomDuMarie)
End Sub
Private Sub txtNomDeLaMariee_Change()
txtNomDeLaMariee.Value = UCase(txtNomDeLaMariee.Value)
End Sub
Private Sub txtPrenomDeLaMariee_Change()
txtPrenomDeLaMariee = Application.Proper(txtPrenomDeLaMariee)
End Sub

Private Sub UserForm_Initialize()
Dim Ctrl As Control
'Ici je vide les Controls
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is MSForms.TextBox Or TypeOf Ctrl Is MSForms.ComboBox
Then
Ctrl = ""
End If
Next Ctrl

cbxAccompteEuros.Enabled = False
cbxReduction.Enabled = False
lblMontantRemiseEuros.Visible = False
lblMontantRemiseFrancs.Visible = False
txtMontantRemiseEuros.Visible = False
txtMontantRemiseFrancs.Visible = False

' Choix des Organisateurs, Nom des salles, Traiteurs, Type de soirée
Set WSDonneesPrix = Worksheets("Prix")
With WSDonneesPrix
PlageTypeDeSoirée = .Range("B4:B" &
.Range("B2000").End(xlUp).Row).Address
End With
cbxTypeDeSoiree.RowSource = "Prix!" & PlageTypeDeSoirée

' Choix de l'accompt
cbxAccompteEuros.AddItem "100,00"
cbxAccompteEuros.AddItem "200,00"
cbxAccompteEuros.AddItem "300,00"

'Réduction
cbxReduction.AddItem "10"
cbxReduction.AddItem "15"
cbxReduction.AddItem "20"

End Sub

En vous remerciant par avance, Jacques