Salut chris, salut à tous,
Biensûr, une fonction n'est pas FAITE POUR être utilisée sans argument et ne pas retourner de valeur !
Mais pour clarifier ma question qui est peut-être un peu masquée dans beaucoup de texte, je voudrais savoir :
Pourquoi est-il impossible de modifier le contenu d'une cellule excel à partir d'une FUNCTION appellée directement depuis une autre cellule excel ?
En clair, tu écris le code:
Function updatecell()
Cells(2, 2).Value = '123'
End Function
(que je donne comme EXEMPLE SIMPLIFé) dans un module du classeur excel et tu executes le code en tapant dans une cellule '=updatecell()' sans les guillemets, hein !!! et ça ne fonctionne pas !!!!
La question n'est pas de débattre philosophiquement de l'emploi que je fais d'une FUNCTION mais c'est de savoir pourquoi ça ne fonctionne pas ???!!!
Moi, je ne vois pas pourquoi ?
Surtout que, si je l'appelle depuis un bouton ajouté à la feuille excel, du genre :
Private Sub CommandButton1_Click()
Call updatecell
End Sub
là, ca fonctionne sans rien changer au code.....
Ce qui est amusant, c'est que dans le code original, la FUNCTION fait pas mal de choses (calcul de valeurs) avant de vouloir inscrire les résultats dans les cellules cibles. Et le code est exécuté jusqu'à rencontrer la première instruction cells(i, j).value = valeur
et là, ça se plante !!!
Qqun peut-il m'expliquer ?
Merci d'avance