Empêcher un Combobox change lors de l'initialisation d'un userform

Le
Denys
Bonjour tous,

Lors de l'initialisation d'un userform que j'appelle Correction, je
souhaite que le calendrier choisisse la date en Colonne A, le Combobox
1 la valeur en colonne B, le combobox 2 la valeur en colonne C et le
combobox3 la valeur en colonne D.

Cependant, lorsque quelqu'un change la valeur du Combobox1, les
Combobox 2 et 3 en sont affects car le Rowsource change.

Mais l'initialisation du Userform, je voudrais simplement que les
combobox 1 2 et 3 prennent la valeur des cellules.

Voici le code:

Private Sub UserForm_Initialize()
Application.ScreenUpdating = False

Sheet1.Select

Dim increment As Date, i As Date
increment = 1 / 24 / 12
fin = (1 / 24) * 12 - increment
For i = 0 To fin Step increment
ComboBox7.AddItem Format(i, "h:mm")
Next

Cells(ActiveCell.Row, 1).Activate
DTPicker1.Value = ActiveCell.Value

ligne = [A65536].End(xlUp)(2).Row
Range("C1").Formula = "=SUMIF($A$3:$A$" & ligne & ",$D$1,$F
$3:$F$" & ligne & ")"
TextBox2.Value = [c1].Text


ComboBox1.Value = ActiveCell.Offset(0, 1).Value
ComboBox2.Value = ActiveCell.Offset(0, 2).Value
ComboBox3.Value = ActiveCell.Offset(0, 3).Value


TextBox1.Value = ActiveCell.Offset(0, 4).Value
If ActiveCell.Offset(0, 4).Value = "" Then TextBox1.Value
= 0

TextBox3.Value = ActiveCell.Offset(0, 6).Value

Application.ScreenUpdating = True
End Sub

Sauf que j'ai des vnements Combobox Change que je voudrais viter,
mais seulement l'initialisation du Userform:

Private Sub Combobox2_Change()

If ComboBox1 = "System Defect" Then Call TrouverSD (Je crois que
c'est ici le problme car cela rfre un rowsource situ sur un=
e
autre feuille)

If ComboBox1 = "Support" Then Call TrouverSU

Sheet1.Select
End Sub

Sub TrouverSD()
On Error Resume Next
ComboBox3.Enabled = True
Nom = ComboBox2.Value
Dim C
With Sheet3.Range("proj")
Set C = .Find(What:=Nom, After:=Range("B2"), LookIn:=xlValu=
es)
If Not C Is Nothing Then
fista = C.Address
Application.GoTo Reference:=Range(C.Address)
End If
ComboBox3.Value = Sheet3.Range(C.Address).Offset(0, 1).Value
End With
'ActiveCell.Offset(0, 1).Select
End Sub

J'espre que c'est comprhensible

Merci pour votre temps

Denys
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
DanielCo
Le #22799751
Bonsooir.
En tête du mmodule, tu mets :
Public Test2 as Boolean
Dans :
Private Sub UserForm_Initialize()
mets :
Test2 = False
Après :
Private Sub Combobox2_Change()
mets :
If Test2 = False Then
Test2 = True
Exit Sub
End if
et tu répètes l'opération pour tous les combobox dont tu veux empêcher
le déclenchement de macro évènementielle.
Cordialement.
Daniel

Bonjour à tous,

Lors de l'initialisation d'un userform que j'appelle Correction, je
souhaite que le calendrier choisisse la date en Colonne A, le Combobox
1 la valeur en colonne B, le combobox 2 la valeur en colonne C et le
combobox3 la valeur en colonne D.

Cependant, lorsque quelqu'un change la valeur du Combobox1, les
Combobox 2 et 3 en sont affectés car le Rowsource change.

Mais à l'initialisation du Userform, je voudrais simplement que les
combobox 1 2 et 3 prennent la valeur des cellules.

Voici le code:

Private Sub UserForm_Initialize()
Application.ScreenUpdating = False

Sheet1.Select

Dim increment As Date, i As Date
increment = 1 / 24 / 12
fin = (1 / 24) * 12 - increment
For i = 0 To fin Step increment
ComboBox7.AddItem Format(i, "h:mm")
Next

Cells(ActiveCell.Row, 1).Activate
DTPicker1.Value = ActiveCell.Value

ligne = [A65536].End(xlUp)(2).Row
Range("C1").Formula = "=SUMIF($A$3:$A$" & ligne & ",$D$1,$F
$3:$F$" & ligne & ")"
TextBox2.Value = [c1].Text


ComboBox1.Value = ActiveCell.Offset(0, 1).Value
ComboBox2.Value = ActiveCell.Offset(0, 2).Value
ComboBox3.Value = ActiveCell.Offset(0, 3).Value


TextBox1.Value = ActiveCell.Offset(0, 4).Value
If ActiveCell.Offset(0, 4).Value = "" Then TextBox1.Value
= 0

TextBox3.Value = ActiveCell.Offset(0, 6).Value

Application.ScreenUpdating = True
End Sub

Sauf que j'ai des évènements Combobox Change que je voudrais éviter,
mais seulement à l'initialisation du Userform:

Private Sub Combobox2_Change()

If ComboBox1 = "System Defect" Then Call TrouverSD (Je crois que
c'est ici le problème car cela réfère à un rowsource situé sur une
autre feuille...)

If ComboBox1 = "Support" Then Call TrouverSU

Sheet1.Select
End Sub

Sub TrouverSD()
On Error Resume Next
ComboBox3.Enabled = True
Nom = ComboBox2.Value
Dim C
With Sheet3.Range("proj")
Set C = .Find(What:=Nom, After:=Range("B2"), LookIn:=xlValues)
If Not C Is Nothing Then
fista = C.Address
Application.GoTo Reference:=Range(C.Address)
End If
ComboBox3.Value = Sheet3.Range(C.Address).Offset(0, 1).Value
End With
'ActiveCell.Offset(0, 1).Select
End Sub

J'espère que c'est compréhensible...

Merci pour votre temps

Denys
Denys
Le #22799901
Bonsoir Daniel,

C'est parfait, ça fonctionne à merveille....

Merci beaucoup

Denys
Publicité
Poster une réponse
Anonyme