Ecrire dans une cellule

  • Initiateur de la discussion Initiateur de la discussion Guillaume
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Guillaume

XLDnaute Nouveau
Bonjour le forum,

Je débute en VBA et j'ai un problème sur un truc de base: écrire dans une cellule et récupérer la valeur d'une autre cellule.
J'ai testé ce que j'ai trouvé sur des forums mais je dois faire une erreur bête parce que ma fonction me renvoie #VALEUR!
J'ai utilisé des debug.print et la fonction bug dès le premier Worksheets(1).Cells(1, 2).Value et n'inscrit pas la valeur de datefin dans la cellule.

Guillaume

Code:
Public Function volatilite(datefin As Long, ticker As String) As Double

ThisWorkbook.Worksheets(1).Activate
Worksheets(1).Cells(1, 2).Value = datefin 'il y a un problème parce que je mets des variables dans les cellules
ActiveSheet.Cells(3, 2).Value = ticker & " equity isin"

volatilite = Cells(5, 2).Value

End Function
 

Pièces jointes

Re : Ecrire dans une cellule

Bonjour,
Deux anomalies:
1) - Les argument attendus par la fonction ne lui sont pas passés dans la cellule qui l'utilise
2) - La fonction tente de modifier des cellules, c'est plutôt le travail d'une Sub.
Cordialement.
 
Re : Ecrire dans une cellule

Bonjour Guillaume 🙂,
Une fonction n'est pas vraiment prévue pour remplir des cellules, mais pour renvoyer une valeur à travers des arguments fournis 🙄...
Si tu nous décrivais plus particulièrement ce que tu souhaites faire (parce que je ne pense pas que l'addition des 2 dates soient le but final 😛...), il nous serait plus facile de t'aider 😉.
Bonne journée 😎
 
Re : Ecrire dans une cellule

Bonjour Dranreb,

Je voudrais en fait appeler cette fonction de n'importe quelle cellule du classeur, d'où l'utilisation d'une fonction. Je ne sais pas si c'est possible avec une Sub?
Qu'est-ce que tu entends par
Les argument attendus par la fonction ne lui sont pas passés dans la cellule qui l'utilise
s'il te plaît?

Cordialement,
Guillaume
 
Re : Ecrire dans une cellule

Bonjour JNP,

En fait la feuille1 réalise normalement beaucoup de calculs mathématiques avec Excel (type "=fonction_excel") en prenant en paramètre la date de fin et le ticker.
Je souhaiterais conserver ces calculs en créant une fonction (ou une Sub) que je pourrait appeler de n'importe quelle cellule du classeur qui me rentrerait les 2 paramètres "Date de fin" et "Ticker" dans les cellules de la feuille1 et qui me récupère le résultat des calculs Excel dans la cellule "Volatilité" .

As tu une idée s'il te plaît?
 
Re : Ecrire dans une cellule

Re 🙂,
En fait la feuille1 réalise normalement beaucoup de calculs mathématiques avec Excel (type "=fonction_excel") en prenant en paramètre la date de fin et le ticker.
Je souhaiterais conserver ces calculs en créant une fonction (ou une Sub) que je pourrait appeler de n'importe quelle cellule du classeur qui me rentrerait les 2 paramètres "Date de fin" et "Ticker" dans les cellules de la feuille1 et qui me récupère le résultat des calculs Excel dans la cellule "Volatilité".
A partir du moment où tu as les calculs en formules, il suffit de les transposer en VBA pour que ta fonction puisse être indépendante. Il est généralement mauvais de jongler avec un mixte des 2, car c'est aussi bien pas la bonne feuille qui sera utilisée ou pas la bonne cellule 🙄... Une simple insertion de ligne ou de colonne te mettra tout ton VBA à la poubelle 😱 !
Si tu veux qu'on t'aide à transformer les formules de feuille en calcul VBA, pas de soucis, mais il faut que tu nous les fournisses 😛...
Bon courage 😎
 
Re : Ecrire dans une cellule

RE,

Désolé mais je ne peux pas fournir ma feuille complète. Je suis stagiaire dans une société et ces infos sont privées (et assez indigestes 😛).

De plus je suis contraint de conserver la feuille de calcul Excel 🙁.

Mon problème ici est de modifier des cellules à l'aide de fonctions et de récupérer ensuite la valeur d'une cellule pour la rentrer dans la cellule d'où j'ai appelé la fonction.

Est-ce que quelqu'un a une idée pour m'aider s'il vous plaît?

Cordialement.
 
Re : Ecrire dans une cellule

Donc il y avait juste =volatilite() dans un cellule et pas =volatilite($A1;$B$2) par exemple, alors que la fonctionn attendait pourtant 2 paramètres, me semble-t-il, lorsque j'avais examiné le code la première fois.

Mais à quelle moment voudriez vous que ça s'exécute ?
Écrivez une Sub Worksheet_Calculate par exemple pour exécuter des manips lors de chaque recalcul.
 
Dernière édition:
Re : Ecrire dans une cellule

Ah oui j'avais fait des tests en rentrant les paramètres directement dans le code de la fonction, sans succès.

En ce moment j'essaie de réaliser une procédure qui se déclencherait à partir d'un userform où l'utilisateur rentrerait les coordonnées de la cellule où il voudrait voir afficher la solution (une sorte de fonction détournée).

Cela me permet d'utiliser une Sub plutôt qu'une fonction mais j'ai l'impression que je me prends la tête pour pas grand chose.
 
Re : Ecrire dans une cellule

Re 🙂,
Difficile de travailler dans le noir les yeux bandés 🙄...
Vois si le fichier joint te convient, il faut mettre la date en F2 et le ticker en F3 et double cliquer en F4 😛...
Bon courage 😎
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
297
Retour