[Excel] Problème de formule personnalisée

Problème de formule personnalisée [Excel] - Logiciels - Windows & Software

Marsh Posté le 10-06-2016 à 10:31:13    

Bonjour à tous,

 

Dans Excel, j'aimerais beaucoup créer une nouvelle formule de cette forme :

 

https://www.dropbox.com/s/z160q3ebmepeaih/Capture%20d%27%C3%A9cran%202016-06-10%2010.23.27.png?dl=0

 

J'ai donc utilisé le mode développeur pour écrire ceci :

 

Function f(a, n)
        For j = 1 To a / 2
        f = f + j * [(2j/a)^n-((2j-2)/a)^n]
    Next j
End Function

 

Mais ça ne marche pas car j'obtiens toujours #VALEUR! quand je donne une valeur à mes deux paramètres "a" et "n". Quelqu'un peut-il m'aider ? :/

 

Je précise que je suis un débutant en la matière.

 

Merci d'avance !

 

EDIT: oups, j'avais pas vu qu'il existait déjà un topic pour toutes les questions relatives à Excel et je ne trouve pas comment supprimer ce sujet-ci :s


Message édité par Didgy le 10-06-2016 à 10:38:00
Reply

Marsh Posté le 10-06-2016 à 10:31:13   

Reply

Marsh Posté le 11-06-2016 à 01:03:28    

Bonjour,
 
Pour commencer il serait bien de définir toutes les variables, exemple : dim j as integer
 
Ensuite, avec quels valeurs de a et n ça ne marche pas ?
 
Le crochet n'existe pas en vba. A la validation de la ligne Excel doit mettre des espaces. En tout cas pour moi, la fonction tel quel ne marche pas du tout.
 
Je ne me suis pas penché sur le but de la formule mais j'ai écris basiquement :
 
Private Sub CommandButton1_Click()
Dim a As Integer
Dim n As Integer
Dim j As Integer
 
Dim f As Double
 
f = 0
 
a = 50
n = 10
 
For j = 1 To a / 2
        f = f + j * ((2 * j / a) ^ n - ((2 * j - 2) / a) ^ n)
Next j
 
Cells(1, 1) = f
End Sub
 
J'obtiens 23.1940033
 
C'est un début de réponse ?
 
Edit : pour t'aider, il y a un mode debogage pour aller pas à pas et afficher la valeur des différentes variables.


Message édité par P4board le 11-06-2016 à 01:06:08
Reply

Marsh Posté le 12-06-2016 à 01:47:15    

Hey ! Merci de m'aider :)
 
Alors, concernant les crochets, c'était le seul moyen que j'avais trouvé pour que le VBA arrête de râler (il disait qu'il y avait un problème avec mes parenthèses alors que j'étais sûr de les avoir bien placées).
 
Sinon, le pauvre débutant que je suis doit t'avouer qu'il est encore peu à l'aise avec le "Private Sub CommandButton1_Click()". Je sais pas encore très bien comment manipuler ce truc :s (je compte apprendre très vite mais pour le moment j'en suis encore aux simples fonctions).
 
Quoi qu'il en soit, je peux te dire que pour a=36 et n=14, on est censé obtenir une valeur d'environ 17,24. Ca fonctionne chez toi ?
 
EDIT: et pour répondre à ta question du début, j'obtiens #VALEURS! pour n'importe quelles valeurs de a et n :/


Message édité par Didgy le 12-06-2016 à 01:50:41
Reply

Marsh Posté le 12-06-2016 à 10:31:21    

17.2357011 d'après ma petite routine...  :D  
 
J'utilise une vieille version d'Excel 2003 mais ça n'a pas dû beaucoup changer. Voici comment faire
 
Il faut insérer un bouton de commande (pas un simple bouton de la barre d'outil formulaire, attention) via la barre d'outils boites à outils contrôle : faire un rectangle avec la souris n'importe où sur ta feuille Excel pour définir la taille du bouton de commande.
 
Tu double clic dessus en mode création (icône avec la règle, l'équerre et le crayon de la boite à outils Visual Basic enfoncé). Normalement VB s'ouvre avec directement la fonction sub qui répondra au clic sur le bouton.
Tu colle les lignes à l'intérieur.
Tu repasse sur ta feuille, désactive le mode création et clique sur ton bouton.
 
Voilou.
 
Attention en programmation, on défini une variable et on l'initialise avant de l'utiliser, sinon on peut avoir des choses farfelus.

Reply

Marsh Posté le 14-06-2016 à 00:57:04    

Parfait, ça marche ! Un tout tout grand merci pour ton aide !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed