Fonction et modification d'une cellule...

L

Le Dahu

Guest
Salut cher Forum,

Voila mon problème:

- J'ai une feuille de calcul dans laquelle je travaille.

- Dans A1, j'ai la valeur 3.

- Dans C1, j'affecte la formule '=toto(A1)'.

- 'toto' est une fonction perso que j'ai créée dans un module VBA de mon classeur. Elle contient le code suivant, tout simple:


Function toto(a As Range)
ThisWorkbook.Worksheets(1).Range("B1") = a
toto = ThisWorkbook.Worksheets(1).Range("A1")
End Function


Elle est censée faire les choses suivantes:
- Affecter 3 à la cellule B1.
- Affecter 3 à la cellule C1 (cellule courante).


Avec le code ci-dessus, la fonction s'arrete au moment de remplir B1, sans message d'erreur.
Si j'enleve la ligne 'Thisworkbook...', ca marche, et la cellule courante C1 récupère bien la valeur 3.


Quelqu'un a-t-il une solution? Ou est-il tout simplement impossible de modifier une cellule différente de la cellule courante à partir d'une fonction?


Merci d'avance pour vos réponses...
Tchao le Forum.
 
P

PhiBou

Guest
Salut Le Dahu, le Forum

Problème que j'ai déjà rencontré...

Avec une Function on est limité à la cellule concernée :

on peut lire la valeur d'une autre cellule mais rien n'y inscrire.

Bonne soirée

PhiBou
 
S

STephane

Guest
sans réfléchir à l'utilité de développer un tel code, voilà ce que cela pourrait donner

dans la feuille de code de la feuille concernée (ou par extension dans la procédure évènementielle correspondante de la feuille de code ThisWorkbook), le code suivant :
Private Sub Worksheet_Calculate()
If flagChangeinSheet = True Then
Feuil1.Range("B1").Value = Feuil1.Range("C1").Value
flagChangeinSheet=false
End If
End Sub


dans un module standard le code suivant :
Public flagChangeinSheet

Function toto(a As Range)
flagChangeinSheet = True
toto = a.Value
End Function
à chaque recalcul de la feuille, toute cellule contenant cette formule est recalculée (selon le mode de calcul défini), et donc elle change le flag
 

Discussions similaires

Statistiques des forums

Discussions
313 020
Messages
2 094 435
Membres
106 027
dernier inscrit
DonSparks