IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

SetFOcus sur un contrôle d'une autre feuille d'un multipage


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 31
    Points : 16
    Points
    16
    Par défaut SetFOcus sur un contrôle d'une autre feuille d'un multipage
    Bonjour à tous,

    Bon je suis toujours avec mes problèmes de SetFocus sur mes contrôles. Alors grâce à Zazaraignée et Ouskel'n'or j'ai réussi à mettre mon point d'insertion dans un contrôle donné de la feuille active. Merci encore.

    Mais j'ai un autre problème... Et oui car j'ai un contrôle multipage et je voudrais mettre le focus sur un contrôle d'une feuille du multipage qui n'est pas à ce moment là la feuille affichée. Quelqu'un aurait-il une idée. Moi j'ai essayé de faire MultiPageFeuille1.MonContrôle.SetFocus, mais apparemment c'est pas ça.
    Et question subsidiaire : comment récupérer l'index de la feuille active du multipage?

    Merci beaucoup d'avance!

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    J'ai ça, extrait de l'aide :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        For i = 0 To MultiPage1.Count - 1
            PageNAme = MultiPage1.Pages(i).Name
            MsgBox "PageName = " & PageNAme
            MsgBox "MultiPage1.Pages(i).Caption = " & MultiPage1.Pages(i).Caption
            MsgBox "MultiPage1.Pages.Item(i).Caption = " & MultiPage1.Pages.Item(i).Caption
        Next i
    Si ça peut t'aider

    A+

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 31
    Points : 16
    Points
    16
    Par défaut
    Merci m'sieur,

    J'ai également trouvé ça dans l'aide.
    Et j'ai aussi trouvé comment récupéré l'index de la page active, c'est juste : MultiPage.Value = Index.

    Par contre pour le SetFocus d'un contrôle je cherche encore...

    MultiPage1.Pages(Index).Controls.MonControle ?

    Le problème est que après MultiPage1.Pages(Index). Visual ne me met pas les propriétés ou méthodes disponibles alors je tatonne et comme l'instruction est difficile à tester dans le programme...

    Merci encore.

    Si vous avez d'autres infos... merci d'avance
    _____________
    EDIT:

    MultiPage1.Pages(0).SetFocus --> Marche pô
    MultiPage1.Pages(0).MonControle.SetFocus --> Marche pô
    MultiPage1.Pages(0).Controls.MonControle.SetFocus --> Marche pô

    MultiPage1.Pages(0).visible = True
    MonControle.SetFocus ---> Marche pô non plus

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Puisque tu as l'aide, alors tu as dû trouver ça :

    L’exemple suivant utilise la propriété ActiveControl d’une sous-routine qui effectue le suivi des contrôles consultés par l’utilisateur. Pour chaque contrôle, le contrôle Event appelle la sous-routine TraceFocus pour identifier le contrôle qui a le focus.
    Pour utiliser cet exemple, copiez le code suivant dans la partie Déclarations d’une feuille et vérifiez que celle-ci contient :

    · un contrôle ScrollBar nommé ScrollBar1,
    · un contrôle ListBox nommé ListBox1,
    · deux contrôles OptionButton nommés OptionButton1 et OptionButton2,
    · un contrôle Frame nommé Frame1.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Dim MyControl As Control
     
    Private Sub TraceFocus()
        ListBox1.AddItem ActiveControl.Name
        ListBox1.List(ListBox1.ListCount - 1, 1) = ActiveControl.TabIndex
    End Sub
     
    Private Sub UserForm_Initialize()
        ListBox1.ColumnCount = 2
        ListBox1.AddItem "Contrôles consultés"
        ListBox1.List(0, 1) = "Index de contrôle"
    End Sub
     
    Private Sub Frame1_Enter()
        TraceFocus
    End Sub
     
    Private Sub ListBox1_Click()
        TraceFocus
    End Sub
     
    Private Sub OptionButton1_Enter()
     
        TraceFocus
    End Sub
     
    Private Sub OptionButton2_Enter()
        TraceFocus
    End Sub
     
    Private Sub ScrollBar1_Enter()
        TraceFocus
    End Sub


    A+

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 31
    Points : 16
    Points
    16
    Par défaut
    Oui, oui, merci Ouskel'n'or,

    effectivement j'ai bien trouvé cela dans l'aide également. Mais cela ne correspond pas à ce que je veux faire. Plutôt que de suivre le focus, je veux placer le focus comme pour ma question précédente, pour laquelle tu m'as bien débloqué d'ailleurs, sauf que là le contrôle sur lequel je veux mettre le focus est sur une page différente de celle active dans un contrôle MultiPage.
    Et c'est bien là le problème...

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Juste une idée comme ça (je n'ai jamais utilisé le multipage) n'as-tu pas moyen "d'aciver" la page en question avant de diregirer le focus ?

    A+

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 31
    Points : 16
    Points
    16
    Par défaut
    Et béh....

    Je cherche, je cherche mais je ne trouve pas dans les propriétés et méthodes de 'MultiPage', 'Pages', et 'Page' dans l'aide... mais... je ne trouve pas...

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    et avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TonMultiPage.Pages(NomDeLaPage).select
    ça marche pas ?

    Sinon,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With TonMultiPage
        .Pages(NomDeLaPage).select
    end with
    ou encore

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Set MaMP = TonMultiPage
    With MaMP
         .Pages(NomDeLaPage).select
    end with
    ... toujours pas ? non, cépasdrôl...

    A+

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 31
    Points : 16
    Points
    16
    Par défaut
    Et béh...
    'Propriété non gérée par cet objet."

    Pffff.... vraiment j'te jure...

    Merci en tout cas Ouskel'n'or.

    Quelqu'un aurait bien une idée tout de même?...

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 31
    Points : 16
    Points
    16
    Par défaut
    Personne n'as donc de solution à cette question?

    Allez s'il vous plaît creusez vous un peu la tête, ça m'embête tout de même pas mal ce truc là...

    Merci d'avance!

  11. #11
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Tu as essayé avec Show ?
    Juste une question pour te montrer qu'il y a encore quelqu'un et te soutenir le moral...

    A+

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 31
    Points : 16
    Points
    16
    Par défaut
    Salut Ouskel'n'or,

    C'est vraiment très très gentil de ta part... mais... pareil... Erreur : Propriété non géré par cet objet...

    Personne n'aurai donc de réponse à cette question?!
    Je pensais que d'autre avaient déjà eut besoins de cette action...

  13. #13
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    C'était juste pour remettre ta question en première place...
    Non c'est pas vrai, mais on sait jamais... quand on connait pas

    A+

  14. #14
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    J'ai eu beau chercher (pas très longtemps, je l'avoue) je n'ai pas trouvé comment "activer" (mettre à l'avant plan) une page d'un multipage.

    La seule "solution" que j'entrevois (pas très propre mais bon...) c'est d'associer une AcceleratorKey à la page en question et de faire un SendKeys.

    Oui, je sais, c'est crade mais je ne vois rien d'autre.

    De toute façon, ça fait un Up pour le message.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 31
    Points : 16
    Points
    16
    Par défaut
    Merci AlainTech,

    il est vrai que mon message avait bien besoin d'un 'up', Ouskel'n'or à déjà fait tout ce qu'il peu également pour cela... Merci d'ailleurs.

    Même si ta solution est 'crade' j'aimerais bien en connaître les tenant et les aboutissant je dois avouer que je ne connait pas les AcceleratorKey (je vais également aller faire un tour dans l'aide de VBA).

    Merci d'avance.

    Et la question reste toujours en suspend... Personne n'as donc jamais eut à mettre une Page d'un multipage en premier plan???
    Aller un p'tit effort.

    Merci d'avance!

    P.S. : Et hop un 'up' de plus!

  16. #16
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Salut

    Je ne connais pas le contrôle MultiPage. Mais avec un TabStrip, il n'y a qu'à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SSTab1.Tab = numéro d'index
    et le tour est joué. Alors pourquoi pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MultiPage.Page = numéro d'index
    :

  17. #17
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Le contrôle MultiPage n'a pas de propriété Page...
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  18. #18
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Hello,

    En cherchant aut' chose, j'ai trouvé ça dans l'aide VBA "Ajout d’un contrôle dans un contrôle MultiPage"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton1_Click()
    Set MyTextBox = MultiPage1.Pages(0).Controls.Add("Forms.TextBox.1", "MyTextBox", Visible)
    End Sub
    D'après ces lignes, il semblerait qu'on peut nommer la page par l'index... (?)
    Désolé AlainTech, mais si ça marche, MacGeol sera content...

    A+

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 31
    Points : 16
    Points
    16
    Par défaut
    A bah pour sûr que je serais content si on trouve quelque chose qui marche!!!

    Merci d'ailleurs à Zazaraignée, AlainTech et Ouskel'n'or pour cette activité subite sur ce sujet!

    Je ne connais pas le contrôle MultiPage. Mais avec un TabStrip, il n'y a qu'à Code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SSTab1.Tab = numéro d'index
    et le tour est joué. Alors pourquoi pasCode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MultiPage.Page = numéro d'index
    Et oui je n'ai pas choisi le TabStrip... j'aurais peu être dû... mais j'ai trouvé le MultiPage vraiment très adapté à ce que je voulais faire. Et tout marche très très bien sauf ce maudit SetFocus sunr un contrôle dans une page différente que celle active!

    Le contrôle MultiPage n'a pas de propriété Page...
    Mais oui malheureusement le contrôle MultiPage n'as pas de propriété page... Par contre on peu effectivement appeler une page par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MultiPage.Pages(n° d'index)
    Ou même par son nom :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MultiPage1.Pages(i).Name
    Mais c'est là que commence le problème. C'est que la page définie par MultiPage.Pages(n° index) a très peu de propriétés (selon l'aide):
    Accelerator
    ActiveControl
    CanPaste
    CanRedo
    CanUndo
    Caption
    ControlTipText
    Cycle
    Enabled
    HelpContextID
    Index
    InsideHeight
    KeepScrollBarsVisible
    Name
    TabIndex
    TabStop
    TrasitionEffect
    Visible
    Zoom

    et encore moins de méthodes (toujours selon l'aide):
    Copy
    Paste
    RedoAction
    Repaint
    Scroll
    SetDefaultTabOrder
    UndoAction

    Alors si l'un de vous trouve là dedans une propriété ou méthode qui pourrait répondre à ma question je serais plus qu'heureux!!!!

    En cherchant aut' chose, j'ai trouvé ça dans l'aide VBA "Ajout d’un contrôle dans un contrôle MultiPage"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton1_Click() 
    Set MyTextBox = MultiPage1.Pages(0).Controls.Add("Forms.TextBox.1", "MyTextBox", Visible) 
    End Sub
    Moi aussi je l'avais trouvé et j'ai donc essayé tout de suite de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MutliPage.Pages(N°Index).Controls.MonControl.SetFocus
    Et si je me souviens bien cela ne fonctionnais pas... sinon je n'en serait pas là....

    Merci à vous pour le soutient et à bientôt!
    Et merci d'avance à tout autre contributeurs!

  20. #20
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Accès à un objet Page, exemple
    Je pense que tu as aussi vu ça dans l'aide...

    A+

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. CountIfs sur des valeurs d'une autre feuille
    Par darki24 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 01/04/2015, 16h16
  2. Créer un contrôle dynamique sur une autre feuille
    Par eleomir dans le forum VB.NET
    Réponses: 4
    Dernier message: 14/10/2010, 11h00
  3. Réponses: 6
    Dernier message: 03/02/2007, 05h29
  4. Afficher nombre de lignes d'une table située sur une autre feuille
    Par nemone dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 08/12/2006, 16h28
  5. Copie d'une colonne de cellules sur une autre feuille
    Par maxou59 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/12/2006, 10h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo