Ecrire dans une cellule à partir d'une fonction vba
Bonjour,
J’ai une fonction VBA. Pour le débogage je souhaite afficher dans une feuille Excel la valeur de certaines variable. J’utilise l’instruction :
Code:
Workbooks("class_name.xls").Sheets("feille_name").Range(J29).Value = ma_variable
A cette instruction, le programme s’arrete et n’affiche rien dans la cellule J29.
merci d'avance.
Modifier une autre cellule avec une fonction personalisée
On peut contourner en quelque sorte le fait qu'une fonction personnalisée (utilisée dans une formule) ne peut écrire dans une autre cellule. Cela peut se faire en passant par une variable globale. Mettez dans une cellule =test1() et dans une autre =test2(), avec:
Code:
1 2 3 4 5 6 7 8
| Dim ARGU1 As String
Function test1() As String
test1 = "Biensur"
ARGU1 = "qu'on peut !"
End Function
Function test2() As String
test2 = ARGU1
End Function |
Ne serait-ce pas par ailleurs une source d'insécurité ?!
Bien sûr la valeur n'est pas écrite dans la cellule, car il y a une fonction par laquelle on accède à une variable globale, la même pour toutes les cellules y accédant.
On peut varier sur le même principe, par exemple mettre dans les 2 cellules =test1("que si") et =test2(2), avec:
Code:
1 2 3 4 5 6 7 8 9 10 11
| Dim ARGU1 As String
Dim ARGU2 As String
Function test1(Optional ByVal s1 As String) As String
test1 = "Biensur"
ARGU1 = "qu'on peut !"
If s1 <> "" Then ARGU2 = s1
End Function
Function test2(Optional ByVal i1 As Integer) As String
test2 = ARGU1
If i1 = 2 Then test2 = ARGU2
End Function |
Mes salutations respectueuses.