A voir également:
- Vba ecrire dans une cellule
- Écrire plusieurs lignes dans une cellule excel mac - Guide
- Excel compter cellule couleur sans vba - Guide
- Ecrire en gras sur whatsapp - Guide
- Excel cellule couleur si condition texte - Guide
- Comment écrire # sur pc - Guide
7 réponses
Je pense que j'ai compris, tu en fais une fonction excel... =toto()
Si OUI, la réponse est NON impossible de modifier une autre cellule que celle dans lequel est la fonction.
De plus, dans ce genre de fonction, les commandes que tu applique ne sont pas valable, il faut employer
Application.Caller
Si OUI, la réponse est NON impossible de modifier une autre cellule que celle dans lequel est la fonction.
De plus, dans ce genre de fonction, les commandes que tu applique ne sont pas valable, il faut employer
Application.Caller
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Essaye avec...
A+
Essaye avec...
Public Function toto() As Integer Dim Lig As Long, Col As Integer Lig = ActiveCell.Row Col = ActiveCell.Column For i = 1 To 10 Cells(Lig + i, Col) = i Next toto = 1 End Function
A+
Ce n'est pas cela qui pose problème, c'est juste une modification d'écriture qui ne donne aucune résultat. Le problème qui se pose est que cette fonction tente de modifier d'autre cellules à part celle d'ou elle est lancée, et apparament ceci n'est pas permis en Excel, existe t-il un moyen de détourner ceci?
le problème vient du fait fait de la ligne
Set Cellule = Application.ActiveCell
Public Function toto() As Integer
Dim i As Integer
Dim Cellule As Cell
Set Cellule = Application.ActiveCell 'cette ligne sera actualisée dès l'entrée dans la boucle For
For i = 1 To 10
Cellule.Offset(i,0).Value = i
Next
toto = 1
End Function
pour le mettre en évidence : place un point d'arrêt et utilise le pas à pas tu verras que cellule.address n'est plus définie
il faut donc lui passer l'adresse de départ
essaye toto (adresse as range) as integer
définit ensuite
set cellulle as range(adresse)
et teste ....
je ne peux pas faire le test mais c'est une piste.
A+
Set Cellule = Application.ActiveCell
Public Function toto() As Integer
Dim i As Integer
Dim Cellule As Cell
Set Cellule = Application.ActiveCell 'cette ligne sera actualisée dès l'entrée dans la boucle For
For i = 1 To 10
Cellule.Offset(i,0).Value = i
Next
toto = 1
End Function
pour le mettre en évidence : place un point d'arrêt et utilise le pas à pas tu verras que cellule.address n'est plus définie
il faut donc lui passer l'adresse de départ
essaye toto (adresse as range) as integer
définit ensuite
set cellulle as range(adresse)
et teste ....
je ne peux pas faire le test mais c'est une piste.
A+
c'est impossible??
aucune solution??