XL 2019 Ecrire/modifier des cellules à partir du code d'une fonction? (erreur 1004)

p'tit vieux

XLDnaute Occasionnel
Bonjour à tous
En appelant une fonction, je désire faire mes calculs ET écrire certains éléments dans des cellules.
Quoi de bien naturel en somme! Non? 😁
Pourquoi ? 😁
Je viens d'apprendre que le code d'une fonction (même une fonction personnalisée) ne peux écrire dans des cellules … gênant!
Sauf que je désire que ma fonction (personnalisée -Add-In-) "mouline" écrive certaines valeurs dans des cellules et retourne un résultat.
Exemple de se que voudrais (mais qui ne marche pas):
Function Addition ( nb1 as integer, nb2 as integer) as integer
addition= nb1 + nb2
'Ecrire nb1 et nb2 dans cellules
range("B2").value = nb1 ' Là j'ai erreur 1004 car, à priori, ce n'est pas possible.
range("C2").value = nb2 ' idem ici bien sûr
end function
J'ai déjà tenté cela:
Function Addition ( nb1 as integer, nb2 as integer) as integer
.../...
Call EcrireCells(Arg1, Arg2 ....)
End Function

Sub Ecrire(Arg1, Ag2, ...)
range("B2").value = Argx' Là j'ai erreur 1004 pas possible.
range("C2").value = ArgY ' idem ici bien sûr
End Sub
Marche pas 😏 😭
C'est fou ça !
Alors afin de garder ma jeunesse (de p'tit vieux Hum!) quelqu'un pourrait-il me proposer une solution?
Merci à vous pour votre aide.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir p vieux,
En B2 ou C2 écrire :
VB:
=Addition(A1;A2)
Si en a1 et A2 se trouvent les nombres à additionner.
Les fonctions doivent être utiliser exactement comme des fonction XL, sauf qu'elles sont personnelles.
Un pti tuto sur les fonctions perso :
 

soan

XLDnaute Barbatruc
Inactif
Bonsoir p vieux, sylvanu,

bienvenue sur le site XLD ! :)

je te propose le fichier ci-dessous ; charge-le, puis fais Ctrl e

VB:
Option Explicit

Sub Addition(nb1%, nb2%)
  [B2] = nb1: [C2] = nb2: [D2] = nb1 + nb2
End Sub

Sub Essai()
  Addition 10, 5
End Sub

soan
 

Pièces jointes

  • Exo p vieux.xlsm
    14 KB · Affichages: 8

soan

XLDnaute Barbatruc
Inactif
@sylvanu

oui, j'ai bien vu ton post #2 ; mais pour moi, ça revient plus à une fonction personnalisée (même si elle est faite en VBA), qu'à une solution purement VBA indépendante de la feuille (pour ce qui est de l'envoi des 2 nombres à additionner) ; et il me semble bien que le demandeur p vieux aimerait mieux ce genre de solution ; mais après tout, pourquoi pas ? c'est lui qui pourra choisir selon ses préférences. ;)

soan
 

p'tit vieux

XLDnaute Occasionnel
Merci à tous pour vos réponses et pour votre accueil.
@sylvanu Merci. Mais non merci pour votre post #5. J'aime utiliser un F() comme telle 😁. Surtout lorsque l'on a besoin d'un résultat en retour 😂.
@soan Vous avez raison il s'agit bien d'un Add-In. Et je ne savais pas que l'on ne peut pas écrire dans une cellule. Je vous ai répondu ICI.
BON J'AVOUE !!
J'ai écris 2 questions qui se rejoignent.

Mon problème est résumé par @danielco.
J'ai écris une fonction Add-In qui fait des "trucs et des machins" et qui en plus de retourner un résultat dans la cellule qui l'appelle DEVRAIT pouvoir écrire dans des cellules, en cas de réponses multiples,
A priori c'est impossible dans une fonction personnalisée?
Peut-être en l'écrivant avec Visual Studio?
Allez je vais y arriver … Enfin si c'est possible.
Encore merci de m'aider.

NB: Peut-être que je fais une confusion technique entre Add-In et Fonctions Personnalisées?
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 926
Membres
101 842
dernier inscrit
seb0390