Stockage des inputs des users pour récupérer plus tard

J'ai une feuille de calcul où l'user saisit différents détails sur une page d'input, puis appuie sur un button de calcul pour get ce qu'il veut. Les inputs sont des strings, des numbers et des dates.

Je veux save les inputs pour chaque calcul pour l'user afin que, à une date ultérieure, ils puissent entrer dans l'identifiant calc et ne pas avoir à louer les inputs.

Une façon simple de penser à cela était de copyr les inputs lorsque le calcul est exécuté sur une autre feuille avec les inputs dans une colonne avec l'identifiant calcique. Ensuite, enregistrez les inputs futures dans une colonne séparée et searchz la colonne correcte pour récupérer les inputs à une date ultérieure.

J'ai lu cette question – Quels sont les avantages de l'utilisation de Classes dans VBA? et pensé qu'il serait bon de faire une class appelée CalculationInputs qui avait tous les détails stockés dans un object. Cela peut être une victime excessive pour ce dont j'ai besoin, mais je voulais requestr comment d'autres personnes résoudraient cette tâche simple.

Vous pouvez utiliser Names pour définir des variables dans la scope d'un classur ou d'une feuille de calcul. En règle générale, ceux-ci sont utilisés pour définir des plages, et plus spécifiquement des plages dynamics, mais elles peuvent également être utilisées pour stocker des valeurs statiques / constantes.

Pour créer un Name manuellement, à partir du ruban Formule, nommer le gestionnaire:

entrez la description de l'image ici

Cliquez sur le button "Nouveau", puis donnez-lui un nom significatif:

entrez la description de l'image ici

Assurez-vous de mettre ="" dans le champ "Renvoyer à", si vous le videz, le nom ne sera pas créé.

Ensuite, lorsque vous appuyez sur OK, ou lorsque vous accédez au Gestionnaire des noms, vous verrez une list de tous les Names disponibles dans le classur.

entrez la description de l'image ici

Vous pouvez les éditer via le gestionnaire de Names , ce qui est probablement fastidieux, ou vous pouvez facilement utiliser VBA et les inputs pour les contrôler, par exemple:

 Sub Test() ActiveWorkbook.Names("MyAddress").RefersTo = "734 Evergreen Terrace" End Sub Sous test () Sub Test() ActiveWorkbook.Names("MyAddress").RefersTo = "734 Evergreen Terrace" End Sub ActiveWorkbook.Names ("MyAddress"). RefersTo = "734 Evergreen Terrace" Sub Test() ActiveWorkbook.Names("MyAddress").RefersTo = "734 Evergreen Terrace" End Sub 

Vous pouvez faire quelque chose comme ceci pour capturer la valeur, notre utilisation d'autres macros ou du code d'entreprise user pour atsortingbuer la valeur au Name .

 Activeworkbook.Names("MyAddress").RefersTo = _ Application.Inputbox("please enter your address") Activeworkbook.Names ("MyAddress"). RefersTo = _ Activeworkbook.Names("MyAddress").RefersTo = _ Application.Inputbox("please enter your address") 

Etc.

Si vous exécutez ceci, puis révisez le gestionnaire de noms, vous verrez que la valeur a été mise à jour:

entrez la description de l'image ici

Dans VBE, vous pouvez vous référer au nom comme:

 Debug.Print ActiveWorkbook.Names("MyAddress").Value '# Prints in the immediate pane Range("A1") = ActiveWorkbook.Names("MyAddress").Value Debug.Print ActiveWorkbook.Names ("MyAddress"). Valeur '# Imprime dans le volet immédiat Debug.Print ActiveWorkbook.Names("MyAddress").Value '# Prints in the immediate pane Range("A1") = ActiveWorkbook.Names("MyAddress").Value 

Vous pouvez également accéder à ceux-ci (lire) à partir de la feuille de calcul, comme:

entrez la description de l'image ici