Création scrollbar+modification de caractèr formule VBA Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
q
qperon117
Nouveau venu
Nouveau venu
Messages : 3
Inscrit le : 26 juillet 2016
Version d'Excel : 2016

Message par qperon117 » 26 juillet 2016, 17:27

Bonjour,

J'aurais besoin d'aide pour le problème suivant :

Je voudrais créer une Scrollbar qui, lorsqu'on déplace son curseur, modifie la formule de 12 cases simultanément, en remplacant les derniers caractères de la formule par la nouvelle valeur de la scrollbar. La scrollbar aurait des valeurs entre 3 et 1026 et un pas de 1.

J'ai par exemple une formule dans la case A1 d'une feuille 'Feuille Test' (Z1 étant une autre feuille du classeur) qui est initialement :

='Z1'!I10

et je voudrais que lorsque je déplace le curseur de la scrollbar sur 45, la formule se modifie en ='Z1'!I45. La ligne 1 de cette feuille test correspond à la feuille Z1, et la ligne 2 correspond à Z2, et de même la colonne A de la feuille test correspond à la colonne I pour les feuilles Z1 et Z2, jusque la colonne F qui correspond à la colonne N pour les feuilles Z1 et Z2.

J'ai joint la feuille Excel pour plus de clarté.

Merci de votre aide.
Grille vki3c-0.1-3ms - Copie.xlsm
(358.88 Kio) Téléchargé 10 fois
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'201
Appréciations reçues : 445
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 26 juillet 2016, 20:31

Bonsoir,

Les éléments de ton classeur ne correspondent pas exactement à ce que tu dis ! (10 et 70 ? change à 5 ? etc.)

Ceci étant, une Userform s'avère complètement inutile pour ce que tu veux faire :
une ScrollBar sur la feuille suffit, une cellule liée pour recueillir sa valeur, et la formule à mettre dans cellule utilisera INDIRECT, la fin de la formule étant fournie par appel de la cellule liée (numéro de ligne).
Et le tout est automatiquement modifié par action sur la ScrollBar.

Cordialement.
q
qperon117
Nouveau venu
Nouveau venu
Messages : 3
Inscrit le : 26 juillet 2016
Version d'Excel : 2016

Message par qperon117 » 26 juillet 2016, 21:56

Merci MFerrand pour cette réponse

J'ai créé une scrollbar et c'est en effet simple de la créer directement, et d'afficher sa valeur de sortie dans une case

Mais pour ce qui est de modifier la fin de la formule dans les cases qui m'intéressent, je ne comprends pas comment faire

Si j'ai par exemple en A1 la formule : ='Z1'!I10 et que je veux plutôt avoir ='Z1'IValeurDeLaScrollBar , comment la fonction INDIRECT peut-elle être utilisée ?

Pourriez-vous me donner la formule pour l'exemple qui ci-dessus ?

J'ai essayé de concaténer les chaines de caractères, sans succès

Merci
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'201
Appréciations reçues : 445
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 26 juillet 2016, 22:19

Supposons que H1 soit ta cellule liée, tu peux mettre en A1 :
=INDIRECT("'Z1'!I"&$H$1)
mais si I doit devenir successivement J, K... N, tu as intérêt à faire :
=INDIRECT("'Z1'!"&ADRESSE($H$1;COLONNE(9:9)))
La colonne 9 c'est I, mais le 9 va s'incrémenter en recopiant la formule.
Ta formule devient recopiable sur toute la zone A1:F2.

Cordialement.
q
qperon117
Nouveau venu
Nouveau venu
Messages : 3
Inscrit le : 26 juillet 2016
Version d'Excel : 2016

Message par qperon117 » 27 juillet 2016, 03:47

Merci, ça marche parfaitement !
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message