Dans une feuille, j'ai plusieurs textbox num=E9rot=E9s de 1 =E0 12.
Est-ce qu'il est possible, comme dans un userform, de se d=E9placer de text=
box en textbox =E0 l'aide de la touche de tabulation?
Je n'ai pas trouv=E9 l'=E9quivalent dans les propri=E9t=E9s du textbox.
Quand tu dis: Les index doivent se suivre, car dans le module Tbox, on utilise cet index pour retrouver l'item de la collection. Si tu as seulement 5 textbox dans la collection, mais que le dernier index du textbox est 13, cela cause un problème quand arrive le temps d'exécuter cette ligne de code : Col(Ind + 1).GrTBox.Activate Comme l'objet Collection (Col) a seulement 5 objets, elle ne retrouvera jamais l'objet au-delà de 5 comme index.
Il y a une incompatibilité entre la méthode et l'ordre de mes textboxs. Je suis obligé de mettre les 6 textboxs primordiales de 1 à 6 avec les données suivantes: (j'ai pourtant fait des modifications mais rien ne cha nge) textbox1 fournisseur textbox2 contact textbox3 téléphone textbox4 fax textbox5 code postal textbox6 ville car je les inscris dans cette ordre dans ma base de données. Il faudrait donc que le curseur se déplace dans cet ordre pour commencer et ensuite textbox7 rue1 textbox8 rue2 textbox9 email textbox10 site La feuille modifiée:http://cjoint.com/?3KrwYrX0SCm
Donne moi ton avis.
Merci
JP
Denis,
Quand tu dis:
Les index doivent se suivre, car dans le module Tbox, on utilise
cet index pour retrouver l'item de la collection. Si tu as seulement
5 textbox dans la collection, mais que le dernier index du textbox est
13, cela cause un problème quand arrive le temps d'exécuter cette
ligne de code : Col(Ind + 1).GrTBox.Activate
Comme l'objet Collection (Col) a seulement 5 objets, elle ne retrouvera
jamais l'objet au-delà de 5 comme index.
Il y a une incompatibilité entre la méthode et l'ordre de mes textboxs.
Je suis obligé de mettre les 6 textboxs primordiales de 1 à 6 avec les données suivantes: (j'ai pourtant fait des modifications mais rien ne cha nge)
textbox1 fournisseur
textbox2 contact
textbox3 téléphone
textbox4 fax
textbox5 code postal
textbox6 ville
car je les inscris dans cette ordre dans ma base de données.
Il faudrait donc que le curseur se déplace dans cet ordre pour commencer et ensuite
textbox7 rue1
textbox8 rue2
textbox9 email
textbox10 site
La feuille modifiée:http://cjoint.com/?3KrwYrX0SCm
Quand tu dis: Les index doivent se suivre, car dans le module Tbox, on utilise cet index pour retrouver l'item de la collection. Si tu as seulement 5 textbox dans la collection, mais que le dernier index du textbox est 13, cela cause un problème quand arrive le temps d'exécuter cette ligne de code : Col(Ind + 1).GrTBox.Activate Comme l'objet Collection (Col) a seulement 5 objets, elle ne retrouvera jamais l'objet au-delà de 5 comme index.
Il y a une incompatibilité entre la méthode et l'ordre de mes textboxs. Je suis obligé de mettre les 6 textboxs primordiales de 1 à 6 avec les données suivantes: (j'ai pourtant fait des modifications mais rien ne cha nge) textbox1 fournisseur textbox2 contact textbox3 téléphone textbox4 fax textbox5 code postal textbox6 ville car je les inscris dans cette ordre dans ma base de données. Il faudrait donc que le curseur se déplace dans cet ordre pour commencer et ensuite textbox7 rue1 textbox8 rue2 textbox9 email textbox10 site La feuille modifiée:http://cjoint.com/?3KrwYrX0SCm
Donne moi ton avis.
Merci
JP
MichD
http://cjoint.com/?CKsda0pU4xJ
Tu peux insérer autant de Textbox que ton application en requiert.
Bonjour Denis, Voilà, voilà qui répond à ce que je souhaitais obtenir. Si j'ai d'autres feuilles je peux dans le thisworkbook faire de même? Je n'aurais pas besoin de créer un nouveau module de classe?
Une dernière question pour cette feuille. Le textbox pour faire la recher che, je voudrais que lorsque je clique dedans et qu'il y a un texte d'une r echerche précédente, qu'il soit effacer. J'ai cherché comment faire sans y parvenir. Aurais-tu encore un petit cod e miraculeux?
Bonne journée et merci pour tout.
JP
Bonjour Denis,
Voilà, voilà qui répond à ce que je souhaitais obtenir.
Si j'ai d'autres feuilles je peux dans le thisworkbook faire de même? Je n'aurais pas besoin de créer un nouveau module de classe?
Une dernière question pour cette feuille. Le textbox pour faire la recher che, je voudrais que lorsque je clique dedans et qu'il y a un texte d'une r echerche précédente, qu'il soit effacer.
J'ai cherché comment faire sans y parvenir. Aurais-tu encore un petit cod e miraculeux?
Bonjour Denis, Voilà, voilà qui répond à ce que je souhaitais obtenir. Si j'ai d'autres feuilles je peux dans le thisworkbook faire de même? Je n'aurais pas besoin de créer un nouveau module de classe?
Une dernière question pour cette feuille. Le textbox pour faire la recher che, je voudrais que lorsque je clique dedans et qu'il y a un texte d'une r echerche précédente, qu'il soit effacer. J'ai cherché comment faire sans y parvenir. Aurais-tu encore un petit cod e miraculeux?
Bonne journée et merci pour tout.
JP
MichD
Question I
| Si j'ai d'autres feuilles je peux dans le thisworkbook faire de même?
À titre d'exemple, dans le Thisworkbook, tu pourrais avoir ceci : (Dans ton classeur la dernière version du code donnée est un peu différente, mais le principe est le même)
'------------------------------------------------ Private Sub Workbook_Open() Dim Obj As OLEObject Dim Tb As Tbox, Arr(), Elt As Variant
'Liste des noms des onglets des feuilles concernées 'Permet de spécifier seulement lesdites feuilles Arr = Array("MichD", "MichD_1")
'Tu peux faire aussi une boucle sur toutes les feuilles 'du classeur si requis... 'For each Sh in Worksheets
' Boucle sur tous les objets des feuilles spécifiées dans Arr() For Each Elt In Arr For Each Obj In Worksheets(Elt).OLEObjects ' Vérifier s'il s'agit d'un Textbox If TypeOf Obj.Object Is MSForms.TextBox Then Set Tb = New Tbox Set Tb.GrTBox = Obj.Object Col.Add Tb End If Next Obj Next
End Sub '------------------------------------------------
Question II
Dans le code module de la feuille où est le TexBox, tu écris une procédure ressemblant à ceci : '------------------------ Private Sub TextBox1_GotFocus() Me.TextBox1 = "" End Sub '------------------------
MichD --------------------------------------------------------------- "JP" a écrit dans le message de groupe de discussion :
Bonjour Denis, Voilà, voilà qui répond à ce que je souhaitais obtenir. Si j'ai d'autres feuilles je peux dans le thisworkbook faire de même? Je n'aurais pas besoin de créer un nouveau module de classe?
Une dernière question pour cette feuille. Le textbox pour faire la recherche, je voudrais que lorsque je clique dedans et qu'il y a un texte d'une recherche précédente, qu'il soit effacer. J'ai cherché comment faire sans y parvenir. Aurais-tu encore un petit code miraculeux?
Bonne journée et merci pour tout.
JP
Question I
| Si j'ai d'autres feuilles je peux dans le thisworkbook faire de même?
À titre d'exemple, dans le Thisworkbook, tu pourrais avoir ceci :
(Dans ton classeur la dernière version du code donnée est un peu différente,
mais le principe est le même)
'------------------------------------------------
Private Sub Workbook_Open()
Dim Obj As OLEObject
Dim Tb As Tbox, Arr(), Elt As Variant
'Liste des noms des onglets des feuilles concernées
'Permet de spécifier seulement lesdites feuilles
Arr = Array("MichD", "MichD_1")
'Tu peux faire aussi une boucle sur toutes les feuilles
'du classeur si requis...
'For each Sh in Worksheets
' Boucle sur tous les objets des feuilles spécifiées dans Arr()
For Each Elt In Arr
For Each Obj In Worksheets(Elt).OLEObjects
' Vérifier s'il s'agit d'un Textbox
If TypeOf Obj.Object Is MSForms.TextBox Then
Set Tb = New Tbox
Set Tb.GrTBox = Obj.Object
Col.Add Tb
End If
Next Obj
Next
End Sub
'------------------------------------------------
Question II
Dans le code module de la feuille où est le TexBox, tu écris une
procédure ressemblant à ceci :
'------------------------
Private Sub TextBox1_GotFocus()
Me.TextBox1 = ""
End Sub
'------------------------
MichD
---------------------------------------------------------------
"JP" a écrit dans le message de groupe de discussion :
f71d035b-ba5a-4df2-85f9-d70c16c82178@googlegroups.com...
Bonjour Denis,
Voilà, voilà qui répond à ce que je souhaitais obtenir.
Si j'ai d'autres feuilles je peux dans le thisworkbook faire de même? Je
n'aurais pas besoin de créer un nouveau module de classe?
Une dernière question pour cette feuille. Le textbox pour faire la
recherche, je voudrais que lorsque je clique dedans et qu'il y a un texte
d'une recherche précédente, qu'il soit effacer.
J'ai cherché comment faire sans y parvenir. Aurais-tu encore un petit code
miraculeux?
| Si j'ai d'autres feuilles je peux dans le thisworkbook faire de même?
À titre d'exemple, dans le Thisworkbook, tu pourrais avoir ceci : (Dans ton classeur la dernière version du code donnée est un peu différente, mais le principe est le même)
'------------------------------------------------ Private Sub Workbook_Open() Dim Obj As OLEObject Dim Tb As Tbox, Arr(), Elt As Variant
'Liste des noms des onglets des feuilles concernées 'Permet de spécifier seulement lesdites feuilles Arr = Array("MichD", "MichD_1")
'Tu peux faire aussi une boucle sur toutes les feuilles 'du classeur si requis... 'For each Sh in Worksheets
' Boucle sur tous les objets des feuilles spécifiées dans Arr() For Each Elt In Arr For Each Obj In Worksheets(Elt).OLEObjects ' Vérifier s'il s'agit d'un Textbox If TypeOf Obj.Object Is MSForms.TextBox Then Set Tb = New Tbox Set Tb.GrTBox = Obj.Object Col.Add Tb End If Next Obj Next
End Sub '------------------------------------------------
Question II
Dans le code module de la feuille où est le TexBox, tu écris une procédure ressemblant à ceci : '------------------------ Private Sub TextBox1_GotFocus() Me.TextBox1 = "" End Sub '------------------------
MichD --------------------------------------------------------------- "JP" a écrit dans le message de groupe de discussion :
Bonjour Denis, Voilà, voilà qui répond à ce que je souhaitais obtenir. Si j'ai d'autres feuilles je peux dans le thisworkbook faire de même? Je n'aurais pas besoin de créer un nouveau module de classe?
Une dernière question pour cette feuille. Le textbox pour faire la recherche, je voudrais que lorsque je clique dedans et qu'il y a un texte d'une recherche précédente, qu'il soit effacer. J'ai cherché comment faire sans y parvenir. Aurais-tu encore un petit code miraculeux?
Et si tu modifies la procédure du module de classe comme ceci, la touche "TAB" va au textbox suivant et la combinaison des touches "MAJ + TAB" va au textbox précédent.
Et ceci s'applique au nombre de feuilles que tu désires!
Fichier exemple : http://cjoint.com/?CKspiipVZf4
'----------------------------------------------------- Private Sub GrTBox_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) Dim Ind As Integer
'Le nom des textbox de la feuille est Textbox1, Textbox2...etc... 'Ind récupère la valeur de l'index du textbox des noms des textbox 1,2,3... 'Attention si le nom de tes Textbox ne débute pas par "TextBox"... 'il faudra modifier la ligne qui suit. Ind = CInt(Replace(GrTBox.Name, "TextBox", ""))
'si la touche "majuscule" est enfoncée" If Shift = 1 Then ' Si la touche TAB est enfoncée If KeyCode = 9 Then ' Si la Ind du textbox n'est pas le dernier If Ind = 1 Then Col(Col.Count).GrTBox.Activate Else Col(Ind - 1).GrTBox.Activate End If End If
ElseIf Shift = 0 Then ' Si la touche TAB est enfoncée If KeyCode = 9 Then ' Si la Ind du textbox n'est pas le dernier If Ind <> Col.Count Then Col(Ind + 1).GrTBox.Activate Else Col(1).GrTBox.Activate End If End If End If End Sub '-----------------------------------------------------
MichD --------------------------------------------------------------- "JP" a écrit dans le message de groupe de discussion :
MERCI, pour tout.
JP
Et si tu modifies la procédure du module de classe comme ceci,
la touche "TAB" va au textbox suivant et la combinaison des
touches "MAJ + TAB" va au textbox précédent.
Et ceci s'applique au nombre de feuilles que tu désires!
Fichier exemple : http://cjoint.com/?CKspiipVZf4
'-----------------------------------------------------
Private Sub GrTBox_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift
As Integer)
Dim Ind As Integer
'Le nom des textbox de la feuille est Textbox1, Textbox2...etc...
'Ind récupère la valeur de l'index du textbox des noms des textbox 1,2,3...
'Attention si le nom de tes Textbox ne débute pas par "TextBox"...
'il faudra modifier la ligne qui suit.
Ind = CInt(Replace(GrTBox.Name, "TextBox", ""))
'si la touche "majuscule" est enfoncée"
If Shift = 1 Then
' Si la touche TAB est enfoncée
If KeyCode = 9 Then
' Si la Ind du textbox n'est pas le dernier
If Ind = 1 Then
Col(Col.Count).GrTBox.Activate
Else
Col(Ind - 1).GrTBox.Activate
End If
End If
ElseIf Shift = 0 Then
' Si la touche TAB est enfoncée
If KeyCode = 9 Then
' Si la Ind du textbox n'est pas le dernier
If Ind <> Col.Count Then
Col(Ind + 1).GrTBox.Activate
Else
Col(1).GrTBox.Activate
End If
End If
End If
End Sub
'-----------------------------------------------------
MichD
---------------------------------------------------------------
"JP" a écrit dans le message de groupe de discussion :
18690ad6-43b8-47c8-b424-46095d227808@googlegroups.com...
Et si tu modifies la procédure du module de classe comme ceci, la touche "TAB" va au textbox suivant et la combinaison des touches "MAJ + TAB" va au textbox précédent.
Et ceci s'applique au nombre de feuilles que tu désires!
Fichier exemple : http://cjoint.com/?CKspiipVZf4
'----------------------------------------------------- Private Sub GrTBox_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) Dim Ind As Integer
'Le nom des textbox de la feuille est Textbox1, Textbox2...etc... 'Ind récupère la valeur de l'index du textbox des noms des textbox 1,2,3... 'Attention si le nom de tes Textbox ne débute pas par "TextBox"... 'il faudra modifier la ligne qui suit. Ind = CInt(Replace(GrTBox.Name, "TextBox", ""))
'si la touche "majuscule" est enfoncée" If Shift = 1 Then ' Si la touche TAB est enfoncée If KeyCode = 9 Then ' Si la Ind du textbox n'est pas le dernier If Ind = 1 Then Col(Col.Count).GrTBox.Activate Else Col(Ind - 1).GrTBox.Activate End If End If
ElseIf Shift = 0 Then ' Si la touche TAB est enfoncée If KeyCode = 9 Then ' Si la Ind du textbox n'est pas le dernier If Ind <> Col.Count Then Col(Ind + 1).GrTBox.Activate Else Col(1).GrTBox.Activate End If End If End If End Sub '-----------------------------------------------------
MichD --------------------------------------------------------------- "JP" a écrit dans le message de groupe de discussion :
MERCI, pour tout.
JP
JP
trop fort. Juste une précision, dans les feuilles que j'ajoute, il faut que je conti nue la chronologie des textboxs? Exemple: première feuille des textboxs indice de 1 à 13 deuxième feuille des textboxs indice de 1 à 8 ou bien de 14 à 22?
Merci
JP
PS: tu m'as répondu l'autre jour sur une recherche. Je vais faire un nouv eau fil pour ne pas tout mélanger.
Merci encore pour ton aide précieuse.
trop fort.
Juste une précision, dans les feuilles que j'ajoute, il faut que je conti nue la chronologie des textboxs?
Exemple:
première feuille des textboxs indice de 1 à 13
deuxième feuille des textboxs indice de 1 à 8 ou bien de 14 à 22?
Merci
JP
PS: tu m'as répondu l'autre jour sur une recherche. Je vais faire un nouv eau fil pour ne pas tout mélanger.
trop fort. Juste une précision, dans les feuilles que j'ajoute, il faut que je conti nue la chronologie des textboxs? Exemple: première feuille des textboxs indice de 1 à 13 deuxième feuille des textboxs indice de 1 à 8 ou bien de 14 à 22?
Merci
JP
PS: tu m'as répondu l'autre jour sur une recherche. Je vais faire un nouv eau fil pour ne pas tout mélanger.
Merci encore pour ton aide précieuse.
MichD
Si le nombre des textbox de la collection est différent d'une feuille à l'autre, tu dois adapter le code voir ce fichier.
Voici mon fichier exemple : http://cjoint.com/?CKtolEEruCG
Si tu as dans une feuille des textbox que tu veux exclure de la "Collection" donne-leur une appellation différente de Textbox par exemple toto1, toto2
Après plus d'une heure de travail, j'ai tenté vainement d'adapter ton e xemple à mon projet. Les tabulations ne fonctionnent pas et je ne vois pa s où est mon erreur.
Si tu veux bien regarder voici deux feuilles.
http://cjoint.com/?0KtqsFbaH0v
JP
Denis,
Après plus d'une heure de travail, j'ai tenté vainement d'adapter ton e xemple à mon projet. Les tabulations ne fonctionnent pas et je ne vois pa s où est mon erreur.
Après plus d'une heure de travail, j'ai tenté vainement d'adapter ton e xemple à mon projet. Les tabulations ne fonctionnent pas et je ne vois pa s où est mon erreur.