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 :

Difficulté de paramétrage d'une Progressbar [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 39
    Par défaut Difficulté de paramétrage d'une Progressbar
    bonjour,
    voila j'essaye de faire un progressbar mais je commence a m'arracher les cheveux.
    actuellement j'affiche ma progression via statusbar et ca marche
    voici la fin du code dans le module1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Application.StatusBar = "test N° " & T & "  /  " & lignefin - 3 ' ca c'est OK
    call Bar ' ca ca marche pas
    Loop Until T = lignefin2 - 2
    et voici le code dans l'userform
    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
     
    Private Sub bcapa_Click()
    Call Capabilité
    End Sub
     
     
    Public Sub Bar()
    Application.ScreenUpdating = False
      With ProgressBar
        .Min = 0
        .Max = lignefin - 3
        .Value = N
        Label1 = N
        DoEvents
      End With
      Application.ScreenUpdating = True
    End Sub
    pour expliquer un peu ma macro dans le module1
    elle realise des test "N" de capabilité. "N" s'incremente a chaque test.
    lignefin-3 represente le nombre total de test.
    le probleme si je ne me trompe pas c'est que je n'arrive pas a recuperer la valeur de "N" et "lignefin-3" dans mon userform, mais la je métrise pas du tout

    merci d'avance

  2. #2
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    Salut,
    tu dis çà marche pas? OK quel est le message d'erreur ?
    je n'ai jamais fait de progressbar mais d'après tes explications dans le module1 tu vais appel à une macro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    call Bar ' ca ca marche pas
    .
    Si j'ai bien lu ton message cette macro serait dans un userform ?
    et voici le code dans l'userform
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public Sub Bar()
    Application.ScreenUpdating = False
      With ProgressBar
        .Min = 0
        .Max = lignefin - 3
        .Value = N
        Label1 = N
        DoEvents
      End With
      Application.ScreenUpdating = True
    End Sub
    .
    Il me semble que tu ne peux pas faire appel a cette macro. Elle devrait être aussi dans le module1 ou autre non?
    Regarde le lien ci dessous il pourras t'aider je pense.http://www.developpez.net/forums/d19...l-progressbar/

  3. #3
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 39
    Par défaut
    merci pour le lien,
    j'ai appliqué la methode decrite , y a du mieux mais j'ai du oublier quelque chose car j'ai un probleme avec la ligne ( avec le .FrameProgress)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     .LabelPROGBAR.Width = (.FrameProgress.Width - 10) * Avancement 'TAILLE de la bar
    erreur de compilation
    membre de méthode ou de données introuvable

  4. #4
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    En fait dans la méthode proposée il faut rectifier quelques lignes.
    tout d'abord :
    => CREER UN USERFORM AVEC UNE BARRE ET UN LABEL !
    Elle contient :
    - une textbox qui doit s'appeller FramePROGBAR
    - une barre qui doit s'appeller LabelPROGBAR
    c'est plutot :
    => CREER UN USERFORM AVEC UNE BARRE ET UN LABEL !
    Elle contient :
    - un Frame : qui doit s'appeller FramePROGBAR
    - dans le Frame, un Label : qui doit s'appeller LabelPROGBAR

    ensuite :
    dans le code il s'est trompé dans le nom des controles d'ou l'erreur que tu as eu donc avec les rectifications , dans un module standard :
    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
    Sub gestionProgbar(Avancement)
    ' Ze progress bar !!!!
     
    AvancementColor= 255 - Round(255 * Pct, 0) 'pour colorier ;)
     
        With UserForm1
            .FramePROGBAR.Caption = Format(Avancement, "0%")
            .LabelPROGBAR.Width = (.FramePROGBAR.Width - 10)*Avancement  'TAILLE de la bar
            .LabelPROGBAR.BackColor = RGB(0, AvancementColor/ 3, AvancementColor) 'pour du bleu
            .Repaint
        End With
    End Sub
     
    sub main()
    for I = 1 to 100
    'Call actionalacon
    Call gestionProgbar(I/100)
    next I
     
    'a la fin du code il faut (evidement !) :!
    unload userform1
    End Sub
     
    Sub launcher()
     
    'Facultatif : 
    UserForm1.LabelPROGBAR.Width = 0'(initialize la bar à zero)
    'c'est utile si on affiche une msgbow juste avant...
    '
    userform1.show
    End Sub
    EDIT:
    Ne pas oublier dans le code de l'userform :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub UserForm_activate()
        Call main
    'ou main est ta marco principale
    End Sub
    NOTE: ici tu n'utilises pas le controle progressbar mais tu en simules une.
    Si tu veux utiliser le controle progressbar regarde ici :http://excel.developpez.com/sources/?page=UserForm
    Il y a un exemple de fichier proposé par Silkyroad tu peux l'analyser pour comprendre l'utilisation de la progressbar.

  5. #5
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 39
    Par défaut
    super ca marche, c'était ca,
    ma progressbar fonctionne nikel
    merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MFC] afficher une ProgressBar dans une barre d'etat
    Par guillaume21 dans le forum MFC
    Réponses: 5
    Dernier message: 30/03/2007, 11h16
  2. utilisation d'une ProgressBar
    Par knittel02 dans le forum C++Builder
    Réponses: 1
    Dernier message: 25/12/2004, 23h04
  3. [C#] Utilisation d'une ProgressBar pour un téléchargement
    Par snoof dans le forum Windows Forms
    Réponses: 10
    Dernier message: 04/10/2004, 19h37
  4. Une ProgressBar pour un rafraichissement d'image
    Par JakeGrafton dans le forum Composants VCL
    Réponses: 8
    Dernier message: 06/01/2004, 22h21
  5. comment programmer une progressbar
    Par Choucas dans le forum Paradox
    Réponses: 3
    Dernier message: 13/11/2002, 11h07

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