Le contrôle RefEdit inclus dans VBA est un peu bogué, mais il est bon pour mettre un formulaire lorsque vous souhaitez que les utilisateurs spécifient une ou plusieurs plages de cellules (c'est-à-dire Excel.Range
objets).Alternative au contrôle RefEdit d'Excel pouvant être utilisé en dehors de VBA
Le problème principal est que vous ne pouvez utiliser le contrôle RefEdit sur un VBA UserForm (Microsoft states this, et mes tests le confirmer aussi). Je fais un complément Excel en utilisant Delphi, et je cherche une alternative au contrôle RefEdit.
Excel.Application.InputBox Type:=8
est une autre façon de sélectionner une plage de cellules, mais il est pas très facile à utiliser lorsque vous avez besoin de personnes pour sélectionner multiples plages de cellules sur une seule forme. La meilleure alternative réelle que j'ai pour le moment est d'appeler un formulaire VBA à partir de mon add-in Delphi, mais c'est loin d'être idéal.
Donc, idéalement, je pourrais faire avec un remplacement drop-in pour RefEdit - un que je peux utiliser sur un formulaire Delphi. S'il y en a un, ce n'est pas facile à trouver (j'ai cherché assez dur, et je n'ai pas été capable de trouver un remplacement de RefEdit pour Delphi, VB6 ou .NET).
A défaut de remplacement, je pourrais essayer de concocter ma propre alternative, mais je pense qu'il serait difficile, voire impossible, d'en faire un qui fonctionne aussi bien que RefEdit. RefEdit vous permet de "sélectionner" des cellules sans les sélectionner réellement: il utilise des fourmis marchant autour des cellules que vous choisissez au lieu de les surligner et de changer le Excel.Application.Selection
. Je ne connais pas un moyen de le faire en manipulant le modèle d'objet Excel via VBA, Delphi ou autre.
Tous les conseils, astuces, hacks, ou, si j'ai vraiment de la chance, des pointeurs vers des remplacements de RefEdit drop-in seraient les bienvenus.
Je l'ai essayé: ça a fonctionné, mais c'était une implémentation plutôt basique qui reposait sur des changements dans la sélection Excel. J'espère vraiment quelque chose qui a fonctionné plus comme le vrai RefEdit. Je vais donc laisser cette question ouverte, à savoir que quelqu'un sait quelque chose d'autre. –