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

Macros et VBA Excel Discussion :

StatusBar et MsgBox


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Travailleur social
    Inscrit en
    Février 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Travailleur social
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 134
    Par défaut StatusBar et MsgBox
    Bonjour le forum

    Dans un userform, je teste la valeur de certaines zones et j'affiche ces valeurs dans des MsgBox.

    Tout se passe bien seuf pour les éléments qui sont dans les outils StatusBar.

    Ma macro plante sur cette partie du code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox StatusBar1, , "Valeur dans StatusBar1"
    Les valeurs dans un StatusBar peuvent-elles être affichées dans un MsgBox ?

    Merci de votre aide.

  2. #2
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    bonjour,


    Tout d'abords, as tu regardé l'aide en ligne :
    StatusBar, propriété
    Voir aussi S'applique à Exemple Spécificités
    Cette propriété renvoie ou définit le texte de la barre d'état. Type de données String en lecture-écriture.

    Note
    Cette propriété renvoie False si Microsoft Excel garde le contrôle de la barre d'état. Pour restaurer le texte par défaut de la barre d'état, affectez la valeur False à cette propriété. Cela est valable même si la barre d'état est masquée.
    donc si StatusBar n'est pas géré par ton code, tu as False en retour quelque soit l'état de la StatusBar


    dans ton code tu met StatusBar1 , pourquoi un 1, Il n'y as qu'une seule StatutsBar sous excel : Application.StatusBar

  3. #3
    Membre confirmé
    Homme Profil pro
    Travailleur social
    Inscrit en
    Février 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Travailleur social
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 134
    Par défaut
    Hello JackOuYA Hello le forum

    Je te parle du StatusBar qui est un objet de la boîte à outils.

    Quand tu regardes dans les propriétés le "name" est StausBar1 comme tu peux avoir Label1 ou DTPicker1.

    A++

  4. #4
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    oh d'accord , je l'avais oublié celui-la

    si tu l'utilise sans préciser la propriété :
    ton contôle retourne, sa propriété par défaut, et celle-ci ne semble pas être la ce que tu désire ! précise la propriété désiré et cela sera mieux

  5. #5
    Membre confirmé
    Homme Profil pro
    Travailleur social
    Inscrit en
    Février 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Travailleur social
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 134
    Par défaut
    Re JackOuYA

    Mon StatusBar1 a une valeur date et un autre une valeur time.

    Si je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox StatusBar1, , "valeur dans StatusBar"
    il y a plantage.

    Avec DTPicker par exemple, il n'y a pas plantage.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox DTPicker1, , "valeur dans DTPicker"
    A++

  6. #6
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    et bien c'est ce que j'ai dis , tu ne précise pas la propriété à afficher ! et de plus tu veux en afficher 2 !

    comment met tu à jour ces propriétés ?

    (VB et trop gentil... mais en te permettant de ne pas mettre la propriété par défaut, il te conduit en erreur quand celle-ci n'est pas du type que tu désire ..)

  7. #7
    Membre confirmé
    Homme Profil pro
    Travailleur social
    Inscrit en
    Février 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Travailleur social
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 134
    Par défaut
    Re JackOuYA

    Je ne comprends pas ta demande.

    Mon StatusBar1 contient une valeur DATE. Mon MsgBox doit me renvoyer la date qui est ce StatusBar1.

    As-tu besoin d'autres informations ?

    A++

  8. #8
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    elle viens d'ou cette date ?

  9. #9
    Membre confirmé
    Homme Profil pro
    Travailleur social
    Inscrit en
    Février 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Travailleur social
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 134
    Par défaut
    RE JackOuYA

    C'est simplement une des propriétés de StatusBar :

    Texte, Date, Time

    Si tu ne précises rien avec Time ou Date c'est l'heure courante et le jour courant qui s'affiche.

    A++

  10. #10
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    Citation Envoyé par olivepao Voir le message
    RE JackOuYA

    C'est simplement une des propriétés de StatusBar :

    Texte, Date, Time

    Si tu ne précises rien avec Time ou Date ces l'heure courante et le jour courant qui s'affiche.

    A++


    ma statusbar n'as pas ces propriétées
    .. si c'était le cas pour les afficher il faut faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    msgbox statusbar1.Texte
    msgbox statusbar1.Date
    msgbox statusbar1.Time
    essai quand même cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     For Each p In StatusBar1.Panels
       MsgBox p.Text
     Next

  11. #11
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    C'est du VBA ? Je ne trouve pas ce contrôle.

  12. #12
    Membre confirmé
    Homme Profil pro
    Travailleur social
    Inscrit en
    Février 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Travailleur social
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 134
    Par défaut
    Re JackOuYA

    Merci de tes propositions.

    La première ne fonctionne pas, elle plante malheureusement.

    La seconde me renvoie une combobox vide même si la valeur de ma StatusBar a une valeur Text.

    J'ai adapté et fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     For Each p In StatusBar1.Panels
       MsgBox p.Date
     Next
    et là ça plante également.

    Merci encore de m'avoir aidé

    A++

  13. #13
    Membre confirmé
    Homme Profil pro
    Travailleur social
    Inscrit en
    Février 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Travailleur social
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 134
    Par défaut
    Hello fring

    Il me manquait les contrôle DTPicker et Calendar.

    J'ai installé les fichiers suivants :

    MSCOMCT2.OCX et MSCAL.OCX dans C:\Windows\System32 et je les ai validé dans la Base de Registre avec regsvr32.

    Lorsque je voulais rentrer dans les propriétés, la boîte à outils me renvoyait cette erreur:

    CLSID:{7EBDAAE0-8120-11CF-899F-00AA00688B10}

    En recherchant sur le site Microsoft, j'ai trouvé qu'il manquait la librairie MSSTKPRP.DLL,

    Je l'ai instalée dans C:\Windows\System32 et je l'ai validé dans la Base de Registre avec regsvr32.

    Et j'ai ce contrôle suplémentaire.

    A++

  14. #14
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Je l'avais, je cherchais à StatusBar et c'est Microsoft StatusBar

    Comme Jack, je ne vois pas où tu vas chercher les propriétés Date et Time ?
    Ceci ne fonctionne pas ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox StatusBar1.Panels(1).Text

  15. #15
    Membre confirmé
    Homme Profil pro
    Travailleur social
    Inscrit en
    Février 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Travailleur social
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 134
    Par défaut
    Re fring, Re JackOuYA et Re le forum

    Je vais dans les propriétés de l'objet StatusBar1. Dans la liste des différentes propriétés, il y en a une qui se nomme (personnalisé).

    En entrant dedant, une ComboBox avec plusieurs onglets s'affiche. On prend l'onglet nommé Zone, la liste déroulante Style. Là, se trouve les options Date et Time.

    Je joins un printscreen des propriétés de la StatusBar

    A++

  16. #16
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Ca serait quand même bien que tu lises les réponses en entier et que tu essayes ce qu'on te propose...

    Les zones sont les Panels donc...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox StatusBar1.Panels(1).Text

  17. #17
    Membre confirmé
    Homme Profil pro
    Travailleur social
    Inscrit en
    Février 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Travailleur social
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 134
    Par défaut
    Re fring

    Tu me demandais où je trouvais ces propriétés, j'ai répondu à ta demande.

    Ceci ne m'a pas empêché entre-temps de tester ta proposition.

    La MsgBox s'affiche normalement et me renvoi une valeur "vide" comme dans la proposition de JackOuYA.

    J'ai également essayer de modifier ma StatusBar en y mettant du texte, le résultat est également une valeur "vide".

    Je suis entrain de refaire une recherche sur la toile mais pour l'instant sans succès.

    A++

  18. #18
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 364
    Par défaut
    Bonsoir,

    Avec ce
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub StatusBar1_PanelClick(ByVal Panel As MSComctlLib.Panel)
      Panel = "oui"
      MsgBox StatusBar1.Panels.Item(1)
    End Sub
    un clic dans le contrôle pour y mettre le texte et afficher cet texte dans la boîte.

  19. #19
    Membre confirmé
    Homme Profil pro
    Travailleur social
    Inscrit en
    Février 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Travailleur social
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 134
    Par défaut
    Hello OrDonc Re le forum

    Merci ta solution fonctionne. Super !

    Ce n'est pas tout à fait ce que je désirais.

    Je fais un click sur le bouton "Valider", une MsgBox me renvoie la valeur de DTPicker, puis la valeur de MonthView, puis la valeur Calendar.

    J'ai ajouté un StatusBar avec la valeur Time et un autre StatusBar avec la valeur Date je voulais sur le principe de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub CommandButton1_Click()
      MsgBox DTPicker1, , "valeur DTPicker"
      MsgBox MonthView1, , "valeur MonthView"
      MsgBox Calendar1, , "valeur Calendar"
    End Sub
    ajouter StatusBar1 et StatusBar2 à la macro. Mais voilà mes essais renvoient à chaque fois une valeur "vide".

    Encore merci et A++

  20. #20
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    Citation Envoyé par olivepao Voir le message
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub CommandButton1_Click()
      MsgBox DTPicker1, , "valeur DTPicker"
      MsgBox MonthView1, , "valeur MonthView"
      MsgBox Calendar1, , "valeur Calendar"
    End Sub
    ..
    Comme dis plus haut dans ce code tu profite de VBA qui te fourni en réponse les propritétés par défaut d'un controle , ce code est incomplet un puriste écritai ton code ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub CommandButton1_Click()
      MsgBox DTPicker1.Value, , "valeur DTPicker"
      MsgBox MonthView1.Value, , "valeur MonthView"
      MsgBox Calendar1.Value, , "valeur Calendar"
    End Sub

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

Discussions similaires

  1. [VB.NET] Form avec comportement msgbox
    Par Berns dans le forum Windows Forms
    Réponses: 2
    Dernier message: 14/06/2004, 12h09
  2. [VBA]répondre automatiquement à un msgbox
    Par gromite dans le forum Général VBA
    Réponses: 11
    Dernier message: 13/01/2004, 18h37
  3. [VB6] Code source pour modifier MsgBox
    Par khany dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 25/02/2003, 16h13
  4. [statusbar] recuperer des infos d'un autre prog
    Par noyax dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 20/12/2002, 16h52
  5. [visuel]ScrollBar et StatusBar
    Par psl dans le forum Composants VCL
    Réponses: 2
    Dernier message: 24/08/2002, 22h28

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