Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problèmes de focus dans une comboBox..

11 réponses
Avatar
Emile63
Bonsoir =E0 tous,
Je dispose des donn=E9es sur une ligne, puis insert cette ligne dans une
base de donn=E9es.
Pour m'aider, j'utilise une comboBox qui me permet de choisir dans une
liste ferm=E9e l'un des champs,
une fois que ce choix est fait (Condition VRAI de Target.address=3D"$C
$3") je lance la proc=E9dure "Ins=E9rer "
qui me copie/colle cet enregistrement dans une base de donn=E9es.
Le probl=E8me c'est qu' apr=E8s cette proc=E9dure, la comboBox perd le focu=
s
et disparait...
En fait si je clic a l'entroit ou elle devrait se trouver elle
redeviens visible.
Mais je n'arrive pas a lui rendre le focus a la fin de ma proc=E9dure
"Ins=E9rer" malgr=E9 les diff=E9rents option que j'ai test=E9 ci dessous, i=
l
n'y en a pas une qui fonctionne...
Est-ce que quelqu'un pourrait me venir en aide?

--------------------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address =3D "$C$3" Then
Call Ins=E9rer ' Cette proc=E9dure insert mes donn=E9es dan=
s
une base de donn=E9es

Me.ComboBoxEmile.Activate '
' Me.ComboBoxEmile.SetFocus
' ComboBoxEmile.Show
' ComboBoxEmile.SetFocus
End If
End Sub
--------------------------------------------------------------------------
Merci d'avance pour votre aide,
cordialement,

Emile

10 réponses

1 2
Avatar
isabelle
bonjour Émile,

essais en remplacant ME. par Sheets("NomDeLaFeuille").

isabelle

Le 2010-03-04 15:07, Emile63 a écrit :
Bonsoir à tous,
Je dispose des données sur une ligne, puis insert cette ligne dans une
base de données.
Pour m'aider, j'utilise une comboBox qui me permet de choisir dans une
liste fermée l'un des champs,
une fois que ce choix est fait (Condition VRAI de Target.address="$C
$3") je lance la procédure "Insérer "
qui me copie/colle cet enregistrement dans une base de données.
Le problème c'est qu' après cette procédure, la comboBox perd le focus
et disparait...
En fait si je clic a l'entroit ou elle devrait se trouver elle
redeviens visible.
Mais je n'arrive pas a lui rendre le focus a la fin de ma procédure
"Insérer" malgré les différents option que j'ai testé ci dessous, il
n'y en a pas une qui fonctionne...
Est-ce que quelqu'un pourrait me venir en aide?

--------------------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$3" Then
Call Insérer ' Cette procédure insert mes données dans
une base de données

Me.ComboBoxEmile.Activate '
' Me.ComboBoxEmile.SetFocus
' ComboBoxEmile.Show
' ComboBoxEmile.SetFocus
End If
End Sub
--------------------------------------------------------------------------
Merci d'avance pour votre aide,
cordialement,

Emile

Avatar
Emile63
On 4 mar, 21:07, Emile63 wrote:
Bonsoir à tous,
Je dispose des données sur une ligne, puis insert cette ligne dans une
base de données.
Pour m'aider, j'utilise une comboBox qui me permet de choisir dans une
liste fermée l'un des champs,
une fois que ce choix est fait (Condition VRAI de Target.address="$C
$3") je lance la procédure   "Insérer "
qui me copie/colle cet enregistrement dans une base de données.
Le problème c'est qu' après cette procédure, la comboBox perd le fo cus
et disparait...
En fait si je clic a l'entroit ou elle devrait se trouver elle
redeviens visible.
Mais je n'arrive pas a lui rendre le focus a la fin de ma procédure
"Insérer" malgré les différents option que j'ai testé ci dessous, il
n'y en a pas une qui fonctionne...
Est-ce que quelqu'un pourrait me venir en aide?

------------------------------------------------------------------------- -
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$C$3" Then
                Call Insérer ' Cette procédure insert mes données dans
une base de données

                Me.ComboBoxEmile.Activate '
'                Me.ComboBoxEmile.SetFocus
'                ComboBoxEmile.Show
'                ComboBoxEmile.SetFocus
      End If
End Sub
------------------------------------------------------------------------- -
Merci d'avance pour votre aide,
cordialement,

Emile



Merci pour ton aide Isabelle,
Malheureusement, c'est pas mieux... :-(
Avatar
michdenis
Bonjour,

As-tu essayé quelque chose comme ceci :

'-------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$3" Then
Application.EnableEvents = False
Call Insérer
Application.EnableEvents = True
DoEvents
Me.ComboBox1.Activate
End If
End Sub
'-------------------------------------



"Emile63" a écrit dans le message de groupe de discussion :

Bonsoir à tous,
Je dispose des données sur une ligne, puis insert cette ligne dans une
base de données.
Pour m'aider, j'utilise une comboBox qui me permet de choisir dans une
liste fermée l'un des champs,
une fois que ce choix est fait (Condition VRAI de Target.address="$C
$3") je lance la procédure "Insérer "
qui me copie/colle cet enregistrement dans une base de données.
Le problème c'est qu' après cette procédure, la comboBox perd le focus
et disparait...
En fait si je clic a l'entroit ou elle devrait se trouver elle
redeviens visible.
Mais je n'arrive pas a lui rendre le focus a la fin de ma procédure
"Insérer" malgré les différents option que j'ai testé ci dessous, il
n'y en a pas une qui fonctionne...
Est-ce que quelqu'un pourrait me venir en aide?

--------------------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$3" Then
Call Insérer ' Cette procédure insert mes données dans
une base de données

Me.ComboBoxEmile.Activate '
' Me.ComboBoxEmile.SetFocus
' ComboBoxEmile.Show
' ComboBoxEmile.SetFocus
End If
End Sub
--------------------------------------------------------------------------
Merci d'avance pour votre aide,
cordialement,

Emile
Avatar
Emile63
On 4 mar, 21:07, Emile63 wrote:
Bonsoir à tous,
Je dispose des données sur une ligne, puis insert cette ligne dans une
base de données.
Pour m'aider, j'utilise une comboBox qui me permet de choisir dans une
liste fermée l'un des champs,
une fois que ce choix est fait (Condition VRAI de Target.address="$C
$3") je lance la procédure   "Insérer "
qui me copie/colle cet enregistrement dans une base de données.
Le problème c'est qu' après cette procédure, la comboBox perd le fo cus
et disparait...
En fait si je clic a l'entroit ou elle devrait se trouver elle
redeviens visible.
Mais je n'arrive pas a lui rendre le focus a la fin de ma procédure
"Insérer" malgré les différents option que j'ai testé ci dessous, il
n'y en a pas une qui fonctionne...
Est-ce que quelqu'un pourrait me venir en aide?

------------------------------------------------------------------------- -
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$C$3" Then
                Call Insérer ' Cette procédure insert mes données dans
une base de données

                Me.ComboBoxEmile.Activate '
'                Me.ComboBoxEmile.SetFocus
'                ComboBoxEmile.Show
'                ComboBoxEmile.SetFocus
      End If
End Sub
------------------------------------------------------------------------- -
Merci d'avance pour votre aide,
cordialement,

Emile



Bonjour Michdenis,
Merci pour ta proposition, malheureusement... Ce n'est pas mieux...
Je ne comprends pas pourquoi cette satanée "combo" se planque... :-(
J'ai même "essayé" un: VISIBLE=TRUE sans meilleur succès..

-Est-ce que le fait que la macro "Insérer" qui est située dans un
module standard,
soit appellée depuis une événementielle , puis qu'après son éxé cution
elle finisse (End Sub) dans l'événementielle peut jouer un rôle??
...
Je sais pas!

Merci pour vos conseils,
Cordialement,
Emile
Avatar
michdenis
Après avoir enlevé de ton fichier toutes les informations sensibles
t, tout ce qui n'est pas pertinent à l'exécution de ta procédure
peux-tu publier ton fichier en utilisant cijoint.fr et nous communiquer
l'adresse où il se trouve sur ce fil ?





"Emile63" a écrit dans le message de groupe de discussion :

On 4 mar, 21:07, Emile63 wrote:
Bonsoir à tous,
Je dispose des données sur une ligne, puis insert cette ligne dans une
base de données.
Pour m'aider, j'utilise une comboBox qui me permet de choisir dans une
liste fermée l'un des champs,
une fois que ce choix est fait (Condition VRAI de Target.address="$C
$3") je lance la procédure "Insérer "
qui me copie/colle cet enregistrement dans une base de données.
Le problème c'est qu' après cette procédure, la comboBox perd le focus
et disparait...
En fait si je clic a l'entroit ou elle devrait se trouver elle
redeviens visible.
Mais je n'arrive pas a lui rendre le focus a la fin de ma procédure
"Insérer" malgré les différents option que j'ai testé ci dessous, il
n'y en a pas une qui fonctionne...
Est-ce que quelqu'un pourrait me venir en aide?

--------------------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$3" Then
Call Insérer ' Cette procédure insert mes données dans
une base de données

Me.ComboBoxEmile.Activate '
' Me.ComboBoxEmile.SetFocus
' ComboBoxEmile.Show
' ComboBoxEmile.SetFocus
End If
End Sub
--------------------------------------------------------------------------
Merci d'avance pour votre aide,
cordialement,

Emile



Bonjour Michdenis,
Merci pour ta proposition, malheureusement... Ce n'est pas mieux...
Je ne comprends pas pourquoi cette satanée "combo" se planque... :-(
J'ai même "essayé" un: VISIBLE=TRUE sans meilleur succès..

-Est-ce que le fait que la macro "Insérer" qui est située dans un
module standard,
soit appellée depuis une événementielle , puis qu'après son éxécution
elle finisse (End Sub) dans l'événementielle peut jouer un rôle??
...
Je sais pas!

Merci pour vos conseils,
Cordialement,
Emile
Avatar
Emile63
Bonsoir Michdenis,
Et bonsoir à tous.

J'ai déposé mon fichier "problematique" sur cijoint.fr comme tu me
l'as proposé.
http://www.cijoint.fr/cjlink.php?file=cj201003/cijbBtKuf3.xls

Merci encore pour ton aide,
Très cordialement,
Emile
Avatar
michdenis
Bonjour,

à la toute fin de ta procédure "Insérer", j'ajourais ces lignes de code

'****************le code ajouté ******************
With ActiveWindow.Panes(1)
.ScrollRow = 1
.ScrollColumn = 1
End With
Range("C3").Select
'***************************************************

Et vers la fin de la procédure "NouvelleInsertion"
tu pourrais supprimer ces 2 lignes de code :

'Application.Goto Reference:¬tiveSheet.Range("A1"), Scroll:=True
'Range("C3").Select






"Emile63" a écrit dans le message de groupe de discussion :

Bonsoir Michdenis,
Et bonsoir à tous.

J'ai déposé mon fichier "problematique" sur cijoint.fr comme tu me
l'as proposé.
http://www.cijoint.fr/cjlink.php?file=cj201003/cijbBtKuf3.xls

Merci encore pour ton aide,
Très cordialement,
Emile
Avatar
Emile63
Bonsoir Michdenis,

Je te remercie pour ton aide.
J'ai bien suivi tes conseils et appliqué ta petite procédure, mais la
combobox reste masquée à l'affichage, lors du retour.. :-(
-Est-ce que ça fonctionne chez toi?

Cordialement,
Emile
Avatar
michdenis
Ok. Je pensais que tu voulais sélectionner la cellule C3

Pour le combobox, ajoute une macro à ton module

'--------------------------------------
Sub Sélection_ComboboxEmile()
With Feuil2.ComboBoxEmile
.Activate
End With
SendKeys "%{Down}"
End Sub
'--------------------------------------

Et comme dernière ligne de code à la procédure "insérer"
tu ajoutes la ligne de code suivante :
Sélection_ComboboxEmile




"Emile63" a écrit dans le message de groupe de discussion :

Bonsoir Michdenis,

Je te remercie pour ton aide.
J'ai bien suivi tes conseils et appliqué ta petite procédure, mais la
combobox reste masquée à l'affichage, lors du retour.. :-(
-Est-ce que ça fonctionne chez toi?

Cordialement,
Emile
Avatar
Emile63
Bonjour Michdenis,

Merci pour ton aide.
Ça fonctionne pile poils... ;-)

Pour ma gouverne:
Ce sont donc les volets figés qui créent ce problème de focus dans la
combobox?

Cordialement,
Emile
1 2