Est-il possible de contrôler de façon dynamique l'emplacement d'une zone de texte dans excel 2007
Je travaille sur un projet de tableau de bord où je vais avoir trois valeurs: valeur min, valeur max et la valeur actuelle. Les valeurs min et max seront les points d'extrémité d'une barre et j'aimerais placer une zone de texte contenant la valeur actuelle à l'emplacement approprié le long de la barre. Voir ci-dessous:
Est-il possible de le faire dans Excel et si oui, comment pourrais-je aller sur la réalisation de cet. J'ai une certaine expérience avec Visual Basic, mais je n'ai pas rencontré de celui-ci avant.
En fin de compte, je suis tenter de faire une version excel du tableau de bord sur le lien suivant:
Le bar juste une forme dessinée?
Une zone de texte objet aura une
Maintenant, le bar est juste une forme dessinée. En fin de compte, je tiens à rendre la barre plus dynamique. Je suis en train d'essayer de simuler un tableau de bord que je trouve utile. Voir ci-dessus.
Une zone de texte objet aura une
top
et left
de la valeur, vous devriez être en mesure d'utiliser pour le contrôle de la position de l'objet par rapport à la feuille de calcul, ou par rapport à une autre forme/objet, en fonction de comment il a été créé.Maintenant, le bar est juste une forme dessinée. En fin de compte, je tiens à rendre la barre plus dynamique. Je suis en train d'essayer de simuler un tableau de bord que je trouve utile. Voir ci-dessus.
OriginalL'auteur Mutuelinvestor | 2013-03-19
Vous devez vous connecter pour publier un commentaire.
J'aime bien ton idée donc j'ai vérifié comment le code complet ressemble. Voici le résultat:
Appeler la procédure à partir de l'événement de partir de la fenêtre de test, par exemple.:
Cette solution permettra de travailler partout où vous passez formes et tout ce que de nouvelles dimensions d'entre eux vous définissez.
Kaz, avez-vous l'intention de votre code doit être une Fonction ou un Sous.
Sous-procédure...
Intéressant, je n'ai comme une fonction et il fonctionne vraiment bien. J'ai juste à comprendre comment gérer plus de formes. Le tableau de bord je suis en train de construire aura probablement 20 ou. Merci encore, c'est une excellente solution.
Ce que je peux vous suggérer est d'utiliser
.Name
de la propriété de chaque forme dans la feuille. Après tout, il serait assez facile de travailler avec eux si vous appelezActiveSheet.Shapes("barDebt")
,ActiveSheet.Shapes("curDebt")
au lieu deActivesheet.Shapes(1)
,Activesheet.Shapes(2)
, etc...OriginalL'auteur Kazimierz Jawor
Activer l'enregistrement de la macro lorsque la Forme de l'objet n'est pas sélectionné. Maintenant sélectionner et modifier sa position. Arrêter l'enregistrement et l'utilisation du code généré.
Il semble utile pour moi quand je l'ai essayé. J'ai eu quelques IncrementTop et IncrementLeft code. Vous pouvez également utiliser le Haut et à Gauche de la propriété directement.
Il pourrait être une idée pour changer le nom de la Forme-objet en quelque chose de concret (l'adresse dans la boîte à gauche de la zone formule) de sorte que votre code est plus lisible.
Donc pour ma Forme nommée PositionIndicator:
Ou
De la relier à la valeur d'une cellule suffit d'utiliser
Range("CELLADDRESS").Value2
De l'appliquer à chaque fois que vous modifiez les valeurs des cellules de l'utilisation:
Bonne chance
à l'aide de la fonction d'enregistrement est très souvent un bon point de départ lorsque vous ne savez pas exactement quoi faire. Le truc par la suite, consiste à transformer ce code en une utile à votre but!
OriginalL'auteur K_B
En supposant que la barre de progression est une forme sur votre feuille de calcul (indice 1) et de la zone de texte est l'indice de forme de 2; le se déplace suivant la zone de texte le long de la barre de progression de l'%.
Remarque: Il devra être ajusté pour compenser la partie de la zone de texte de la forme qui est à la gauche de la tête de flèche.
OriginalL'auteur Alistair Weir