OVH Cloud OVH Cloud

Mise a jours control suivant valeur combobox

1 réponse
Avatar
Jacques
Salut a toutes et tous

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

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.

Merci, jacques

1 réponse

Avatar
Jacques
Bonjour

J'ai bien tout fait pour venir a bout de cette procédure, mais je n'y arrive
pas.

Y'a t-il une solution ?

Merci Jacques
"Jacques" a écrit dans le message de news:
43610baf$0$17199$
Salut a toutes et tous

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

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.

Merci, jacques