2 votes

Utilisation d'une feuille Excel comme fonction

Je me demande comment je peux utiliser une feuille excel comme fonction.

Disons que j'ai un calcul complexe dans Sheet1 avec un paramètre et que je voudrais itérer sur une plage comme [1 à 400] dans une deuxième feuille pour créer un tableau x, f(x) dans Sheet2.

Je vais utiliser Excel ou Open Office.

Comment dois-je m'y prendre ?

Danke.


Mise à jour des progrès

Tenté de faire un test dans la feuille (Général) :

Public Function test() as Boolean
    test = True
End Function

Puis dans une cellule :

=test()

Résultant en #Nom ?

J'ai aussi essayé de chercher des tutoriels en ligne.


Partiellement résolu :

  • La visibilité de la fonction est obtenue en plaçant le code dans un module.
  • Insérer -> module en VBA.

Progrès :

Réglage de la valeur av à l'aide de

 Worksheets("Sheet1").Range("A1").Value = 10

 or

 Worksheets("Sheet1").Cells(1,1).Value = 10

échoue silencieusement et n'exécute pas la ligne sous.


Progrès :

Les techniques fonctionnent bien si je réduis le code à une sous-routine sans paramètre et que je l'affecte à un bouton.

Solution de rechange

La mise en œuvre a été très simple lorsqu'elle a utilisé une macro VBA lancée à partir d'un bouton plutôt que d'utiliser une fonction.

J'ai itéré sur une série de lignes pour obtenir les entrées des calculs.

3voto

polyglot Points 157

Le meilleur moyen est de créer l'algorithme dans Excel VBA. Vous pouvez ouvrir VBA et taper ceci

Public Function Test1(x as Integer, y as Integer)  
    Test1 = x*y  
End Function   

Vous pouvez appeler cette fonction comme n'importe quelle autre fonction à partir de la barre de formule.
Dans la barre de formule pour A1

  • =Test1(2,4) avec un résultat de 8.

Modifiez l'algorithme en VBA pour obtenir les résultats que vous recherchez.

1voto

AsTeR Points 169

Je cherchais une réponse à une question similaire et j'ai trouvé quelque chose comme ça :

public function GetWhatever(byval p1 as variant, byval p2 as variant) as variant
  'Make sure you're in AutoCalculation mode, otherwise use me.calculate
  me.range("A1").value = p1
  me.range("A2").value = p2
  GetWhatever = me.range("A3").value
end function

Une question : https://stackoverflow.com/a/3570907

0voto

Ankit Tiwari Points 1

Ce que je préfère, c'est créer une TABLE DE DONNÉES en faisant varier le paramètre, puis rechercher la valeur requise dans la table de données créée.

Une manière plus appropriée serait d'écrire un code dans Excel VBA et il peut être appelé très facilement, sans beaucoup d'effort. Cependant, si vous avez déjà la feuille Excel en main, vous pouvez facilement passer à la première en créant une TABLE DE DONNÉES.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X