Contrôles et VBA en Excel
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

Contrôles et VBA en Excel



  1. #1
    invite6de5f0ac

    Contrôles et VBA en Excel


    ------

    Bonjour,

    J'ai un classeur Excel qui me fait tous mes calculs comme je veux. Mais pour pouvoir jouer sur les données d'entrée, j'aimerais avoir des sliders qui ajusteraient les cases en "temps réel".

    Je sais créer des formulaires avec des contrôles (boutons, sliders, etc) mais... je ne sais pas comment récupérer la valeur d'un slider! Bien sûr, je connais assez de VBA pour faire la manip' si on m'explique gentiment.

    Alors si quelqu'un sait faire, merci d'avance.

    Un petit exemple avec une case qui reflète la valeur du slider quand on le bouge, ça me suffirait amplement.

    -- françois

    -----

  2. #2
    mécano41

    Re : Contrôles et VBA en Excel

    Bonjour,

    Je ne suis pas très avancé en VBA néanmoins je te propose cela, mais je ne sais pas si c'est exactement ce que tu cherches :

    - on crée une boîte de dialogue (userform) que l'on nomme : BoîteDeDialogue1
    On y place :
    - une zone de texte que l'on nomme ListeDesNombres
    - une barre de défilement nommée ScrollBar1
    - une étiquette nommée Label1 à gauche de la zone texte
    - une étiquette nommée Label2 à droite de la zone texte


    Sur la feuille de calcul, on fait à partir de A1, une colonne des nombres à faire défiler (ici j'ai mis des entiers) par exemple de -125 à +125 de 1 en 1

    Dans Visual Basic, on met le code que je joins. Quand on lance :
    - la boîte de dialogue s'affiche
    - dans la zone de texte, le premier nombre s'inscrit
    - dans la première étiquette la valeur mini s'inscrit
    - dans la deuxième étiquette la valeur maxi s'inscrit
    - en cliquant sur les flèches, la valeur dans la zone de texte passe du mini au maxi par tous les intermédiaires
    - en glissant le curseur, on va plus vite mais je n'ai pas trouvé le moyen de faire défiler les valeurs au fur et à mesure. La mise à jour ne se fait qu'en relâchant le curseur (de même, je n'ai pas réussi à supprimer le clignotement de ce curseur)

    Il faut ajouter un bouton validation puis récupérer la valeur sélectionnée dans "ScrollBar1.Value"

    Cordialement
    Images attachées Images attachées

  3. #3
    invite6de5f0ac

    Re : Contrôles et VBA en Excel

    Bonsoir et merci à mécano41,

    Entretemps j'ai trouvé une solution sans passer par VBA, qui me suffit pour le moment.

    Afficher la barre d'outils "Formulaire", insérer une barre de défilement, la dimensionner et la placer comme on veut. Clic droit sur ladite barre, "Format de contrôle", onglet "Contrôle". Choisir les valeurs min et max, les incréments. Champ "Cellule liée", choisir une cellule.

    Alors miracle, en bougeant le slider la cellule affiche la valeur du slider en temps réel. Mais il faut relâcher le curseur pour que les cases dépendantes se mettent à jour. Pour l'instant ça ne me dérange pas.

    Cela dit, ta méhode m'a quand même permis d'y voir plus clair dans l'utilisation de VBA avec Excel, il faudra que je m'y mette vraiment, c'est quand même plus puissant.

    Encore merci,

    -- françois

  4. #4
    mécano41

    Re : Contrôles et VBA en Excel

    Citation Envoyé par fderwelt Voir le message
    ... en bougeant le slider la cellule affiche la valeur du slider en temps réel. Mais il faut relâcher le curseur pour que les cases dépendantes se mettent à jour...
    Bonjour,

    J'ai essayé ce que tu indiques, ça marche parfaitement et c'est simple. En revanche pour moi, la mise à jour d'une autre cellule se fait bien en temps réel. En exemple, comme ce système n'accepte pas le négatif, j'ai mis une cellule qui recalcule un nouveau nombre à partir de la cellule liée, elle défile bien de -50 à +50 en même temps que cette dernière défile de 0 à 100

    Cordialement

  5. A voir en vidéo sur Futura
  6. #5
    invite6de5f0ac

    Re : Contrôles et VBA en Excel

    Citation Envoyé par mécano41 Voir le message
    En revanche pour moi, la mise à jour d'une autre cellule se fait bien en temps réel.
    Bonjour,

    Tu as raison, ça se fait bien en temps réel. C'est juste que j'ai un cas un peu particulier: mes sliders sont dans une feuille à côté d'une courbe, dont les valeurs sont calculées dans une autre feuille. Les valeurs calculées sont bien mises à jour en temps réel, mais la courbe, elle, n'est recalculée qu'une fois le slider lâché.

    Faut être vicieux pour espérer que la courbe allait se déformer continûment quand on balade le slider...

    -- françois

  7. #6
    EspritTordu

    Re : Contrôles et VBA en Excel

    Bonjour,

    J'ai essayé dans Excel de mettre une barre de défilement, de faire incrémenter de 1 les valeurs d'un graphique associé à la plage de valeur sur une autre feuille (dont la dimension reste identique dans un premier temps), et en "temps réel"..., ma courbe change...

    Ma recette :

    On bascule en mode création sur une feuille 2 (barre d'outils de contrôle)
    On ajoute une barre de défilement sur la feuille2
    Sur la feuille 1 on rentre la plage de valeur, disons 20 valeurs sur la première colonne.
    On crée le graphique de cette plage de valeur, en précisant bien à la fin de l'assistant qu'on le veut non pas sur la feuille 1 mais sur la feuille2.
    On va dans le module de la feuille2 dans VBA
    On colle cette affaire :

    Private Sub ScrollBar1_Change()
    Dim i As Long

    For i = 1 To 20
    Sheets(1).Cells(i, 1).Value = Sheets(1).Cells(i, 1).Value + 1
    Next i
    End Sub

    Et le tour est joué ! Au passage l'objet en VBA correspondant au barre de défilement s'appelle pas slider mais scrollbar. On veux réagir à l'événement Change, c'est-à-dire quand l'objet détecte un changement sur son statut.

  8. #7
    invite6de5f0ac

    Re : Contrôles et VBA en Excel

    Citation Envoyé par EspritTordu Voir le message
    Au passage l'objet en VBA correspondant au barre de défilement s'appelle pas slider mais scrollbar. On veux réagir à l'événement Change, c'est-à-dire quand l'objet détecte un changement sur son statut.
    Bonjour,

    Bien vu!

    Pour le "slider", c'est un mot auquel je suis habitué dans d'autres toolkits, ja vais pas changer mes habitudes pour faire plaisir à Bill et puis une scrollbar ça doit scroller quelque chose, non?

    -- françois

Discussions similaires

  1. Problème conversion fichiers excel PC vers excel MAC
    Par invite6b974360 dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 14/11/2007, 22h31
  2. VBA Excel: appliquer une macro a plusieurs fichiers
    Par inviteb73ce398 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 14/03/2007, 10h45
  3. problème utilisation VBA sur excel 2007
    Par invite7b559047 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 16/02/2007, 01h00
  4. Publipostage en vba de excel vers word
    Par invite588da7a7 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 21/07/2004, 10h45
  5. Impression excel / vba
    Par invite83451e7e dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 05/03/2004, 10h10
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...