Problèmes de focus dans une comboBox..

Le
Emile63
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 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édure
"Insérer" malgré les différents option que j'ai testé 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 = "$C$3" Then
Call Insérer ' Cette procédure insert mes données dan=
s
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
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #21317861
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

Emile63
Le #21317891
On 4 mar, 21:07, Emile63
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... :-(
michdenis
Le #21317981
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"
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
Emile63
Le #21321551
On 4 mar, 21:07, Emile63
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
michdenis
Le #21321811
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"
On 4 mar, 21:07, Emile63
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
Emile63
Le #21351751
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
michdenis
Le #21351941
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"
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
Emile63
Le #21352341
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
michdenis
Le #21352361
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"
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
Emile63
Le #21353441
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
Publicité
Poster une réponse
Anonyme