probleme avec l'evenement change d'une combobox

Le
Fan
Bonjour,

Mon problème est le suivant :
Quand je faisais "enregistrer sous", j'avais des lettres ou chiffres qui
apparaissaient dans des cellules de l'onglet d'où était executer
l'enregistrement.
Après quelques recherche on constatait que le code vba du classeur possède
plusieurs formulaires dont 3 d'entres eux possèdent des combobox distinctes
avec l'événement "change" qui a pour but de renseigner des cellules d'une
information X.

On peut donc en conclure que lorque je fais "enregistrer sous" les 3
événement sont executés et mettent à jour les cellules concernées dans
l'onglet actif lors de l'enregistrement.

Mes questions sont :
Est-ce normal ?, le problème peut-il etre remédier pour que au minimum, des
informations n'apparaissent pas dans des onglets qui ne sont pas destinés à
recevoir ces informations voire que le code ne soit pas executé n'importe
quand ?.

Merci
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
Youky
Le #12857741
Un exemple.........
'Cet exemple montre comment désactiver des événements avant l'enregistrement
d'un fichier de telle sorte que l'événement BeforeSave n'ait pas lieu.
Application.EnableEvents = False 'ici on désactive les événements
ActiveWorkbook.Save 'on fait ce qu'on veux sans les événements
Application.EnableEvents = True 'et on réactive les événements

Youky

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

Bonjour,

Mon problème est le suivant :
Quand je faisais "enregistrer sous", j'avais des lettres ou chiffres qui
apparaissaient dans des cellules de l'onglet d'où était executer
l'enregistrement.
Après quelques recherche on constatait que le code vba du classeur possède
plusieurs formulaires dont 3 d'entres eux possèdent des combobox
distinctes
avec l'événement "change" qui a pour but de renseigner des cellules d'une
information X.

On peut donc en conclure que lorque je fais "enregistrer sous" les 3
événement sont executés et mettent à jour les cellules concernées dans
l'onglet actif lors de l'enregistrement.

Mes questions sont :
Est-ce normal ?, le problème peut-il etre remédier pour que au minimum,
des
informations n'apparaissent pas dans des onglets qui ne sont pas destinés
à
recevoir ces informations voire que le code ne soit pas executé n'importe
quand ?.

Merci




Fan
Le #12858461
Cette exemple est fait pour un enregistrement sous vba

Mais dans le cas d'un enregistrement manuel comment faire.
Je précise que le probleme n'intervient uniquement lorsque je fais
"enregistrer sous" et non lors d'un simple enregistrement.

Merci


"Youky" news:
Un exemple.........
'Cet exemple montre comment désactiver des événements avant


l'enregistrement
d'un fichier de telle sorte que l'événement BeforeSave n'ait pas lieu.
Application.EnableEvents = False 'ici on désactive les événements
ActiveWorkbook.Save 'on fait ce qu'on veux sans les événements
Application.EnableEvents = True 'et on réactive les événements

Youky

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

> Bonjour,
>
> Mon problème est le suivant :
> Quand je faisais "enregistrer sous", j'avais des lettres ou chiffres qui
> apparaissaient dans des cellules de l'onglet d'où était executer
> l'enregistrement.
> Après quelques recherche on constatait que le code vba du classeur


possède
> plusieurs formulaires dont 3 d'entres eux possèdent des combobox
> distinctes
> avec l'événement "change" qui a pour but de renseigner des cellules


d'une
> information X.
>
> On peut donc en conclure que lorque je fais "enregistrer sous" les 3
> événement sont executés et mettent à jour les cellules concernées dans
> l'onglet actif lors de l'enregistrement.
>
> Mes questions sont :
> Est-ce normal ?, le problème peut-il etre remédier pour que au minimum,
> des
> informations n'apparaissent pas dans des onglets qui ne sont pas


destinés
> à
> recevoir ces informations voire que le code ne soit pas executé


n'importe
> quand ?.
>
> Merci
>
>





Fan
Le #12885181
Je peux toutefois intervenir sur le code en nommant expressement l'onglet
concerné.

Mais comment cela se fait-t-il qu'à l'enregistrement cet évenement se
déclenche ?


Merci


"Fan" a écrit dans le message de
news:eBvQY$
Cette exemple est fait pour un enregistrement sous vba

Mais dans le cas d'un enregistrement manuel comment faire.
Je précise que le probleme n'intervient uniquement lorsque je fais
"enregistrer sous" et non lors d'un simple enregistrement.

Merci


"Youky" news:
> Un exemple.........
> 'Cet exemple montre comment désactiver des événements avant
l'enregistrement
> d'un fichier de telle sorte que l'événement BeforeSave n'ait pas lieu.
> Application.EnableEvents = False 'ici on désactive les événements
> ActiveWorkbook.Save 'on fait ce qu'on veux sans les événements
> Application.EnableEvents = True 'et on réactive les événements
>
> Youky
>
> "Fan" a écrit dans le message de news:
>
> > Bonjour,
> >
> > Mon problème est le suivant :
> > Quand je faisais "enregistrer sous", j'avais des lettres ou chiffres


qui
> > apparaissaient dans des cellules de l'onglet d'où était executer
> > l'enregistrement.
> > Après quelques recherche on constatait que le code vba du classeur
possède
> > plusieurs formulaires dont 3 d'entres eux possèdent des combobox
> > distinctes
> > avec l'événement "change" qui a pour but de renseigner des cellules
d'une
> > information X.
> >
> > On peut donc en conclure que lorque je fais "enregistrer sous" les 3
> > événement sont executés et mettent à jour les cellules concernées dans
> > l'onglet actif lors de l'enregistrement.
> >
> > Mes questions sont :
> > Est-ce normal ?, le problème peut-il etre remédier pour que au


minimum,
> > des
> > informations n'apparaissent pas dans des onglets qui ne sont pas
destinés
> > à
> > recevoir ces informations voire que le code ne soit pas executé
n'importe
> > quand ?.
> >
> > Merci
> >
> >
>
>
>





Youky
Le #12885701
Il faut plus de précision , est-ce bien un combobox qui se vide et la
cellule liée avec...
Si c'est ça il faut écrire du code au lieu de mettre une cell liée..
Je ne vois pas autre chose.
Youky
"Fan" a écrit dans le message de news:
%
Je peux toutefois intervenir sur le code en nommant expressement l'onglet
concerné.

Mais comment cela se fait-t-il qu'à l'enregistrement cet évenement se
déclenche ?


Merci


"Fan" a écrit dans le message de
news:eBvQY$
Cette exemple est fait pour un enregistrement sous vba

Mais dans le cas d'un enregistrement manuel comment faire.
Je précise que le probleme n'intervient uniquement lorsque je fais
"enregistrer sous" et non lors d'un simple enregistrement.

Merci


"Youky" news:
> Un exemple.........
> 'Cet exemple montre comment désactiver des événements avant
l'enregistrement
> d'un fichier de telle sorte que l'événement BeforeSave n'ait pas lieu.
> Application.EnableEvents = False 'ici on désactive les événements
> ActiveWorkbook.Save 'on fait ce qu'on veux sans les événements
> Application.EnableEvents = True 'et on réactive les événements
>
> Youky
>
> "Fan" a écrit dans le message de news:
>
> > Bonjour,
> >
> > Mon problème est le suivant :
> > Quand je faisais "enregistrer sous", j'avais des lettres ou chiffres


qui
> > apparaissaient dans des cellules de l'onglet d'où était executer
> > l'enregistrement.
> > Après quelques recherche on constatait que le code vba du classeur
possède
> > plusieurs formulaires dont 3 d'entres eux possèdent des combobox
> > distinctes
> > avec l'événement "change" qui a pour but de renseigner des cellules
d'une
> > information X.
> >
> > On peut donc en conclure que lorque je fais "enregistrer sous" les 3
> > événement sont executés et mettent à jour les cellules concernées
> > dans
> > l'onglet actif lors de l'enregistrement.
> >
> > Mes questions sont :
> > Est-ce normal ?, le problème peut-il etre remédier pour que au


minimum,
> > des
> > informations n'apparaissent pas dans des onglets qui ne sont pas
destinés
> > à
> > recevoir ces informations voire que le code ne soit pas executé
n'importe
> > quand ?.
> >
> > Merci
> >
> >
>
>
>









Fan
Le #12886631
Voici une partie du code du formulaire ou se trouve la combobox

Private sub combobox1_change()
Cells(1, 5).value = ComboBox1.ListIndex +1
End sub

Donc si je suis dans l'onglet X lorsque je fais enregister sous il me
renseigne la cellule (1, 5) de la valeur + 1 de la combo.
Idem si j'étais sur l'onglet Y.

La solution serait de nommer l'onglet uniquement concerné le changement ?

Et d'autres part est-ce normal ce problème ?
Merci

"Youky" news:%
Il faut plus de précision , est-ce bien un combobox qui se vide et la
cellule liée avec...
Si c'est ça il faut écrire du code au lieu de mettre une cell liée..
Je ne vois pas autre chose.
Youky
"Fan" a écrit dans le message de news:
%
> Je peux toutefois intervenir sur le code en nommant expressement


l'onglet
> concerné.
>
> Mais comment cela se fait-t-il qu'à l'enregistrement cet évenement se
> déclenche ?
>
>
> Merci
>
>
> "Fan" a écrit dans le message de
> news:eBvQY$
>> Cette exemple est fait pour un enregistrement sous vba
>>
>> Mais dans le cas d'un enregistrement manuel comment faire.
>> Je précise que le probleme n'intervient uniquement lorsque je fais
>> "enregistrer sous" et non lors d'un simple enregistrement.
>>
>> Merci
>>
>>
>> "Youky" >> news:
>> > Un exemple.........
>> > 'Cet exemple montre comment désactiver des événements avant
>> l'enregistrement
>> > d'un fichier de telle sorte que l'événement BeforeSave n'ait pas


lieu.
>> > Application.EnableEvents = False 'ici on désactive les événements
>> > ActiveWorkbook.Save 'on fait ce qu'on veux sans les événements
>> > Application.EnableEvents = True 'et on réactive les événements
>> >
>> > Youky
>> >
>> > "Fan" a écrit dans le message de news:
>> >
>> > > Bonjour,
>> > >
>> > > Mon problème est le suivant :
>> > > Quand je faisais "enregistrer sous", j'avais des lettres ou


chiffres
> qui
>> > > apparaissaient dans des cellules de l'onglet d'où était executer
>> > > l'enregistrement.
>> > > Après quelques recherche on constatait que le code vba du classeur
>> possède
>> > > plusieurs formulaires dont 3 d'entres eux possèdent des combobox
>> > > distinctes
>> > > avec l'événement "change" qui a pour but de renseigner des cellules
>> d'une
>> > > information X.
>> > >
>> > > On peut donc en conclure que lorque je fais "enregistrer sous" les


3
>> > > événement sont executés et mettent à jour les cellules concernées
>> > > dans
>> > > l'onglet actif lors de l'enregistrement.
>> > >
>> > > Mes questions sont :
>> > > Est-ce normal ?, le problème peut-il etre remédier pour que au
> minimum,
>> > > des
>> > > informations n'apparaissent pas dans des onglets qui ne sont pas
>> destinés
>> > > à
>> > > recevoir ces informations voire que le code ne soit pas executé
>> n'importe
>> > > quand ?.
>> > >
>> > > Merci
>> > >
>> > >
>> >
>> >
>> >
>>
>>
>>
>
>





Youky
Le #14474601
>>il me renseigne la cellule (1, 5) de la valeur + 1 de la combo.




Non ......le + 1 de la combo est que listindex commence à zéro donc si tu
veux avoir le 1er élément de la liste il faut ajouter 1
Une solution pour ton PB
If ActiveSheet.Name="onglet Y" Then exit sub
If ActiveSheet.Name="onglet K" Then exit sub
Cells(1, 5).value = ComboBox1.ListIndex +1

ou encore si tu veux que la macro s'exécute que sur l'onglet X
Sheets(X).Cells(1, 5).value = ComboBox1.ListIndex +1
ou mieux encore regarde en fenetre des projets en haut à gauche
Utilise le codename de la feuille c'est mieux car si on renomme l'onglet la
macro plante
exemple
Feuil1 (toto)
Feuil2 (X)
Il est préférable d'utiliser Feuil1.Cells(1,5) que Sheets("toto").Cells(1,5)
Je vois rien d'autres, mes essais n'ont pas fait broncher la cells(1,5) même
en enregistrer sous
Youky


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

Voici une partie du code du formulaire ou se trouve la combobox

Private sub combobox1_change()
Cells(1, 5).value = ComboBox1.ListIndex +1
End sub

Donc si je suis dans l'onglet X lorsque je fais enregister sous il me
renseigne la cellule (1, 5) de la valeur + 1 de la combo.
Idem si j'étais sur l'onglet Y.

La solution serait de nommer l'onglet uniquement concerné le changement ?

Et d'autres part est-ce normal ce problème ?
Merci

"Youky" news:%
Il faut plus de précision , est-ce bien un combobox qui se vide et la
cellule liée avec...
Si c'est ça il faut écrire du code au lieu de mettre une cell liée..
Je ne vois pas autre chose.
Youky
"Fan" a écrit dans le message de news:
%
> Je peux toutefois intervenir sur le code en nommant expressement


l'onglet
> concerné.
>
> Mais comment cela se fait-t-il qu'à l'enregistrement cet évenement se
> déclenche ?
>
>
> Merci
>
>
> "Fan" a écrit dans le message de
> news:eBvQY$
>> Cette exemple est fait pour un enregistrement sous vba
>>
>> Mais dans le cas d'un enregistrement manuel comment faire.
>> Je précise que le probleme n'intervient uniquement lorsque je fais
>> "enregistrer sous" et non lors d'un simple enregistrement.
>>
>> Merci
>>
>>
>> "Youky" >> news:
>> > Un exemple.........
>> > 'Cet exemple montre comment désactiver des événements avant
>> l'enregistrement
>> > d'un fichier de telle sorte que l'événement BeforeSave n'ait pas


lieu.
>> > Application.EnableEvents = False 'ici on désactive les événements
>> > ActiveWorkbook.Save 'on fait ce qu'on veux sans les événements
>> > Application.EnableEvents = True 'et on réactive les événements
>> >
>> > Youky
>> >
>> > "Fan" a écrit dans le message de news:
>> >
>> > > Bonjour,
>> > >
>> > > Mon problème est le suivant :
>> > > Quand je faisais "enregistrer sous", j'avais des lettres ou


chiffres
> qui
>> > > apparaissaient dans des cellules de l'onglet d'où était executer
>> > > l'enregistrement.
>> > > Après quelques recherche on constatait que le code vba du classeur
>> possède
>> > > plusieurs formulaires dont 3 d'entres eux possèdent des combobox
>> > > distinctes
>> > > avec l'événement "change" qui a pour but de renseigner des
>> > > cellules
>> d'une
>> > > information X.
>> > >
>> > > On peut donc en conclure que lorque je fais "enregistrer sous" les


3
>> > > événement sont executés et mettent à jour les cellules concernées
>> > > dans
>> > > l'onglet actif lors de l'enregistrement.
>> > >
>> > > Mes questions sont :
>> > > Est-ce normal ?, le problème peut-il etre remédier pour que au
> minimum,
>> > > des
>> > > informations n'apparaissent pas dans des onglets qui ne sont pas
>> destinés
>> > > à
>> > > recevoir ces informations voire que le code ne soit pas executé
>> n'importe
>> > > quand ?.
>> > >
>> > > Merci
>> > >
>> > >
>> >
>> >
>> >
>>
>>
>>
>
>









Fan
Le #14469661
Merci pour tes recherches et réponses, j'essaye des aujourd'hui

merci


"Youky" news:
>>il me renseigne la cellule (1, 5) de la valeur + 1 de la combo.
Non ......le + 1 de la combo est que listindex commence à zéro donc si tu
veux avoir le 1er élément de la liste il faut ajouter 1
Une solution pour ton PB
If ActiveSheet.Name="onglet Y" Then exit sub
If ActiveSheet.Name="onglet K" Then exit sub
Cells(1, 5).value = ComboBox1.ListIndex +1

ou encore si tu veux que la macro s'exécute que sur l'onglet X
Sheets(X).Cells(1, 5).value = ComboBox1.ListIndex +1
ou mieux encore regarde en fenetre des projets en haut à gauche
Utilise le codename de la feuille c'est mieux car si on renomme l'onglet


la
macro plante
exemple
Feuil1 (toto)
Feuil2 (X)
Il est préférable d'utiliser Feuil1.Cells(1,5) que


Sheets("toto").Cells(1,5)
Je vois rien d'autres, mes essais n'ont pas fait broncher la cells(1,5)


même
en enregistrer sous
Youky


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

> Voici une partie du code du formulaire ou se trouve la combobox
>
> Private sub combobox1_change()
> Cells(1, 5).value = ComboBox1.ListIndex +1
> End sub
>
> Donc si je suis dans l'onglet X lorsque je fais enregister sous il me
> renseigne la cellule (1, 5) de la valeur + 1 de la combo.
> Idem si j'étais sur l'onglet Y.
>
> La solution serait de nommer l'onglet uniquement concerné le changement


?
>
> Et d'autres part est-ce normal ce problème ?
> Merci
>
> "Youky" > news:%
>> Il faut plus de précision , est-ce bien un combobox qui se vide et la
>> cellule liée avec...
>> Si c'est ça il faut écrire du code au lieu de mettre une cell liée..
>> Je ne vois pas autre chose.
>> Youky
>> "Fan" a écrit dans le message de news:
>> %
>> > Je peux toutefois intervenir sur le code en nommant expressement
> l'onglet
>> > concerné.
>> >
>> > Mais comment cela se fait-t-il qu'à l'enregistrement cet évenement se
>> > déclenche ?
>> >
>> >
>> > Merci
>> >
>> >
>> > "Fan" a écrit dans le message de
>> > news:eBvQY$
>> >> Cette exemple est fait pour un enregistrement sous vba
>> >>
>> >> Mais dans le cas d'un enregistrement manuel comment faire.
>> >> Je précise que le probleme n'intervient uniquement lorsque je fais
>> >> "enregistrer sous" et non lors d'un simple enregistrement.
>> >>
>> >> Merci
>> >>
>> >>
>> >> "Youky" >> >> news:
>> >> > Un exemple.........
>> >> > 'Cet exemple montre comment désactiver des événements avant
>> >> l'enregistrement
>> >> > d'un fichier de telle sorte que l'événement BeforeSave n'ait pas
> lieu.
>> >> > Application.EnableEvents = False 'ici on désactive les événements
>> >> > ActiveWorkbook.Save 'on fait ce qu'on veux sans les événements
>> >> > Application.EnableEvents = True 'et on réactive les événements
>> >> >
>> >> > Youky
>> >> >
>> >> > "Fan" a écrit dans le message de news:
>> >> >
>> >> > > Bonjour,
>> >> > >
>> >> > > Mon problème est le suivant :
>> >> > > Quand je faisais "enregistrer sous", j'avais des lettres ou
> chiffres
>> > qui
>> >> > > apparaissaient dans des cellules de l'onglet d'où était executer
>> >> > > l'enregistrement.
>> >> > > Après quelques recherche on constatait que le code vba du


classeur
>> >> possède
>> >> > > plusieurs formulaires dont 3 d'entres eux possèdent des combobox
>> >> > > distinctes
>> >> > > avec l'événement "change" qui a pour but de renseigner des
>> >> > > cellules
>> >> d'une
>> >> > > information X.
>> >> > >
>> >> > > On peut donc en conclure que lorque je fais "enregistrer sous"


les
> 3
>> >> > > événement sont executés et mettent à jour les cellules


concernées
>> >> > > dans
>> >> > > l'onglet actif lors de l'enregistrement.
>> >> > >
>> >> > > Mes questions sont :
>> >> > > Est-ce normal ?, le problème peut-il etre remédier pour que au
>> > minimum,
>> >> > > des
>> >> > > informations n'apparaissent pas dans des onglets qui ne sont pas
>> >> destinés
>> >> > > à
>> >> > > recevoir ces informations voire que le code ne soit pas executé
>> >> n'importe
>> >> > > quand ?.
>> >> > >
>> >> > > Merci
>> >> > >
>> >> > >
>> >> >
>> >> >
>> >> >
>> >>
>> >>
>> >>
>> >
>> >
>>
>>
>>
>
>




Publicité
Poster une réponse
Anonyme