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 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 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'espère que c'est compréhensible

Merci pour votre temps

Denys
Vidéos High-Tech et Jeu Vidéo
Téléchargements
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