OVH Cloud OVH Cloud

Afficher quelchechose dans une cellule donnée depuis une formule

3 réponses
Avatar
Fab
Je teste la fonction Caller.
Voici une petite fonction simple Affiche() pour tester

Je met =affiche() dans une cellule (ex. $B$18)

Function Affiche()
Dim CellCour

Set CellCour = Range(Application.Caller.Address)
MsgBox CellCour.Address 'AFFICHE BIEN $B$18
Set CellCour = CellCour.Offset(1, 0)
MsgBox CellCour.Address 'AFFICHE BIEN $B$19
affiche = CellCour.Address 'AFFICHE $B$19
Range(CellCour.Address)=Now ' NE MARCHE PAS
End Function

Pourquoi cela ne marche pas? il y a pourtant $B$19 dans CellCour.Address met
je ne peux l'afficher dans la cellule cible !

help me!

3 réponses

Avatar
papou
Bonjour
Range(CellCour.Address).Value = Now
Cordialement
Pascal

"Fab" a écrit dans le message de news:

Je teste la fonction Caller.
Voici une petite fonction simple Affiche() pour tester

Je met ¯fiche() dans une cellule (ex. $B$18)

Function Affiche()
Dim CellCour

Set CellCour = Range(Application.Caller.Address)
MsgBox CellCour.Address 'AFFICHE BIEN $B$18
Set CellCour = CellCour.Offset(1, 0)
MsgBox CellCour.Address 'AFFICHE BIEN $B$19
affiche = CellCour.Address 'AFFICHE $B$19
Range(CellCour.Address)=Now ' NE MARCHE PAS
End Function

Pourquoi cela ne marche pas? il y a pourtant $B$19 dans CellCour.Address
met je ne peux l'afficher dans la cellule cible !

help me!




Avatar
Fab
désolé mais cela ne marche ! => affiche #VALEUR

autre solution ?

Apparement depuis une cellule, on ne peux pas ecrire ailleurs avec une
fonction !


"papou" <cestpasbon@çanonplus> a écrit dans le message de news:

Bonjour
Range(CellCour.Address).Value = Now
Cordialement
Pascal

"Fab" a écrit dans le message de news:

Je teste la fonction Caller.
Voici une petite fonction simple Affiche() pour tester

Je met ¯fiche() dans une cellule (ex. $B$18)

Function Affiche()
Dim CellCour

Set CellCour = Range(Application.Caller.Address)
MsgBox CellCour.Address 'AFFICHE BIEN $B$18
Set CellCour = CellCour.Offset(1, 0)
MsgBox CellCour.Address 'AFFICHE BIEN $B$19
affiche = CellCour.Address 'AFFICHE $B$19
Range(CellCour.Address)=Now ' NE MARCHE PAS
End Function

Pourquoi cela ne marche pas? il y a pourtant $B$19 dans CellCour.Address
met je ne peux l'afficher dans la cellule cible !

help me!








Avatar
michdenis
Bonjour Fab,

Une fonction ne peut que renvoyer une valeur. Elle n'a pas d'incidence sur le contenu des autres cellules où sur le format des
cellules. C'est d'ailleurs la différence majeure entre une procédure et une fonction.

Ceci étant dit, tu peux afficher l'information dans la même cellule où tu appelles ta fonction, mais il est impossible de modifier
le contenu d'une autre cellule de la feuille de calcul.

'---------------------
Function Affiche() As String

Dim CellCour As Range
Set CellCour = Range(Application.Caller.Address)
MsgBox CellCour.Address 'AFFICHE BIEN $B$18
Set CellCour = CellCour.Offset(1, 0)
MsgBox CellCour.Address 'AFFICHE BIEN $B$19
Affiche = CellCour.Address & " " & _
Format(Now, "dd/mm/yy H:MM:SS")
'
End Function
'---------------------


Salutations!



"Fab" a écrit dans le message de news:
Je teste la fonction Caller.
Voici une petite fonction simple Affiche() pour tester

Je met ¯fiche() dans une cellule (ex. $B$18)

Function Affiche()
Dim CellCour

Set CellCour = Range(Application.Caller.Address)
MsgBox CellCour.Address 'AFFICHE BIEN $B$18
Set CellCour = CellCour.Offset(1, 0)
MsgBox CellCour.Address 'AFFICHE BIEN $B$19
affiche = CellCour.Address 'AFFICHE $B$19
Range(CellCour.Address)=Now ' NE MARCHE PAS
End Function

Pourquoi cela ne marche pas? il y a pourtant $B$19 dans CellCour.Address met
je ne peux l'afficher dans la cellule cible !

help me!