OVH Cloud OVH Cloud

Procédure d'événement

3 réponses
Avatar
Charles
Bonjour à tous,

J'ai un problème, je ne vois pas comment le résoudre !
Dans un classeur, j'ai sur la première feuille (Data) un ComboBox
(cboBureau). Dès que modifie la donnée de cboBureau, la procédure
d'événement suivante est exécutée

Private Sub cboBureau_Change()
Application.ScreenUpdating = False
ActiveSheet.Unprotect
If cboBureau.ListIndex > -1 Then
Range("C13").Value = cboBureau.List(cboBureau.ListIndex, 0)
Range("C14").Value = cboBureau.List(cboBureau.ListIndex, 1)
Range("C15").Value = cboBureau.List(cboBureau.ListIndex, 2)
Range("E13").Value = cboBureau.List(cboBureau.ListIndex, 3)
Else
Range("C13").Value = ""
Range("C14").Value = ""
Range("C15").Value = ""
Range("E13").Value = ""
End If
ActiveSheet.Protect
Application.ScreenUpdating = True
End Sub

Lorsque j'introduis des données sur les autres feuilles de ce classeur,
cette procédure d'événement est à chaque fois exécutée dès que je passe à la
cellule suivante.

Y-a-t'il une possible d'empêcher ce phénomène ?

Merci pour votre aide
A Bientôt
Charles

3 réponses

Avatar
michdenis
Bonjour Charles,

Est-ce que tu peux définir la façon dont tu as renseigné la propriété : "ListFillRange"

Je n'arrive pas à reproduire ton problème ! Dans ton classeur, as-tu des macros qui interviendraient dans le déroulement de
tes opérations ?

Si oui, elles sont de quelle nature ?


Salutations!


"Charles" a écrit dans le message de news:
Bonjour à tous,

J'ai un problème, je ne vois pas comment le résoudre !
Dans un classeur, j'ai sur la première feuille (Data) un ComboBox
(cboBureau). Dès que modifie la donnée de cboBureau, la procédure
d'événement suivante est exécutée

Private Sub cboBureau_Change()
Application.ScreenUpdating = False
ActiveSheet.Unprotect
If cboBureau.ListIndex > -1 Then
Range("C13").Value = cboBureau.List(cboBureau.ListIndex, 0)
Range("C14").Value = cboBureau.List(cboBureau.ListIndex, 1)
Range("C15").Value = cboBureau.List(cboBureau.ListIndex, 2)
Range("E13").Value = cboBureau.List(cboBureau.ListIndex, 3)
Else
Range("C13").Value = ""
Range("C14").Value = ""
Range("C15").Value = ""
Range("E13").Value = ""
End If
ActiveSheet.Protect
Application.ScreenUpdating = True
End Sub

Lorsque j'introduis des données sur les autres feuilles de ce classeur,
cette procédure d'événement est à chaque fois exécutée dès que je passe à la
cellule suivante.

Y-a-t'il une possible d'empêcher ce phénomène ?

Merci pour votre aide
A Bientôt
Charles
Avatar
Charles
Bonjous "Michdenis",


Merci pour ton aide,

La propriété "ListFillRange" est renseignée par macro, au chargement du
classeur:
Private Sub Workbook_Open()

If FICHIEROUVERT("BaseDonnées.xls") Then
Sheets("114-1").cboBureau.ListFillRange "BaseDonnées.xls'!tblBureau"
Else
Sheets("114-1").cboBureau.ListFillRange = ""
End If
End Sub

Il y a effectivement des fonctions personnalisées qui sont utilisées pour
certains calcul, et une macro qui vérifie le numéro matricule saisi par
l'utilisateur

Cordialement
Charles

"michdenis" a écrit dans le message de
news:
Bonjour Charles,

Est-ce que tu peux définir la façon dont tu as renseigné la propriété :
"ListFillRange"


Je n'arrive pas à reproduire ton problème ! Dans ton classeur, as-tu des
macros qui interviendraient dans le déroulement de

tes opérations ?

Si oui, elles sont de quelle nature ?


Salutations!


"Charles" a écrit dans le message de
news:

Bonjour à tous,

J'ai un problème, je ne vois pas comment le résoudre !
Dans un classeur, j'ai sur la première feuille (Data) un ComboBox
(cboBureau). Dès que modifie la donnée de cboBureau, la procédure
d'événement suivante est exécutée

Private Sub cboBureau_Change()
Application.ScreenUpdating = False
ActiveSheet.Unprotect
If cboBureau.ListIndex > -1 Then
Range("C13").Value = cboBureau.List(cboBureau.ListIndex, 0)
Range("C14").Value = cboBureau.List(cboBureau.ListIndex, 1)
Range("C15").Value = cboBureau.List(cboBureau.ListIndex, 2)
Range("E13").Value = cboBureau.List(cboBureau.ListIndex, 3)
Else
Range("C13").Value = ""
Range("C14").Value = ""
Range("C15").Value = ""
Range("E13").Value = ""
End If
ActiveSheet.Protect
Application.ScreenUpdating = True
End Sub

Lorsque j'introduis des données sur les autres feuilles de ce classeur,
cette procédure d'événement est à chaque fois exécutée dès que je passe à
la

cellule suivante.

Y-a-t'il une possible d'empêcher ce phénomène ?

Merci pour votre aide
A Bientôt
Charles





Avatar
michdenis
Bonjour Charles,

Il est difficile sans avoir l'application sous les yeux de "deviner" ce qui peut bien se passer ! Tu peux utiliser plusieurs
points d'arrêt dans tes diverses procédures pour tenter de voir l'ordre des procédures (fonctions personnalisées) qui
s'exécutent à partir de la saisie de données sur les autres feuilles.


Et si tu modifiais l'événement déclencheur de ton combobox :

Private Sub ComboBox1_LostFocus()

End Sub

Dès que tu cliqueras ailleurs dans la feuille où est le combobox, la procédure s'enclenchera !



Salutations!



"Charles" a écrit dans le message de news:
Bonjous "Michdenis",


Merci pour ton aide,

La propriété "ListFillRange" est renseignée par macro, au chargement du
classeur:
Private Sub Workbook_Open()

If FICHIEROUVERT("BaseDonnées.xls") Then
Sheets("114-1").cboBureau.ListFillRange "BaseDonnées.xls'!tblBureau"
Else
Sheets("114-1").cboBureau.ListFillRange = ""
End If
End Sub

Il y a effectivement des fonctions personnalisées qui sont utilisées pour
certains calcul, et une macro qui vérifie le numéro matricule saisi par
l'utilisateur

Cordialement
Charles

"michdenis" a écrit dans le message de
news:
Bonjour Charles,

Est-ce que tu peux définir la façon dont tu as renseigné la propriété :
"ListFillRange"


Je n'arrive pas à reproduire ton problème ! Dans ton classeur, as-tu des
macros qui interviendraient dans le déroulement de

tes opérations ?

Si oui, elles sont de quelle nature ?


Salutations!


"Charles" a écrit dans le message de
news:

Bonjour à tous,

J'ai un problème, je ne vois pas comment le résoudre !
Dans un classeur, j'ai sur la première feuille (Data) un ComboBox
(cboBureau). Dès que modifie la donnée de cboBureau, la procédure
d'événement suivante est exécutée

Private Sub cboBureau_Change()
Application.ScreenUpdating = False
ActiveSheet.Unprotect
If cboBureau.ListIndex > -1 Then
Range("C13").Value = cboBureau.List(cboBureau.ListIndex, 0)
Range("C14").Value = cboBureau.List(cboBureau.ListIndex, 1)
Range("C15").Value = cboBureau.List(cboBureau.ListIndex, 2)
Range("E13").Value = cboBureau.List(cboBureau.ListIndex, 3)
Else
Range("C13").Value = ""
Range("C14").Value = ""
Range("C15").Value = ""
Range("E13").Value = ""
End If
ActiveSheet.Protect
Application.ScreenUpdating = True
End Sub

Lorsque j'introduis des données sur les autres feuilles de ce classeur,
cette procédure d'événement est à chaque fois exécutée dès que je passe à
la

cellule suivante.

Y-a-t'il une possible d'empêcher ce phénomène ?

Merci pour votre aide
A Bientôt
Charles