[VBA-E] écrire dans un range de cellules excel depuis VBA
Bonjour,
Débutant sous VBA, j'ai écrit une petite macro qui doit me permettre
de renvoyer un alphabet (liste de caractères) à partir d'une liste de
mots.
Les mots sont listés dans des cellules contigües et sont passés à la
macro via un range r1, le range r2 est quand à lui un range de
cellules qui doit recevoir chaque caractère de l'alphabet généré.
Voici le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| Public Function generate_alphabet(ByVal r1 As Range, ByVal r2 As
Range) As Boolean
Dim c As Range
return_str = ""
For Each c In r1
For i = 1 To Len(c.Text)
sub_str = Mid(c.Text, i, 1)
If (InStr(1, return_str, sub_str, vbBinaryCompare) = 0) Then
' la lettre n'est pas encore répertoriée dans l'alphabet
return_str = return_str & sub_str & "+" ' <- pour le debug
r2.Cells(c.row - 1, 1).Value = sub_str ' <- la ligne qui pose problème
End If
Next i
Next c
generate_table = VRAI
End Function |
et mon problème :
return_str est bien construite si je commente la ligne r2.Cells(...
Par contre, lorsque je décommente la fameuse ligne r2.Cells(... , la
boucle ne se fait plus : A la première exécution de r2.Cells(c.row -
1, 1).Value = sub_str, la macro semble s'arrêter et ne rien faire....
J'ai essayé plusieurs solutions pour essayer d'écrire dans ces cellules mais rien n'y fait... comme s'il était impossible d'écrire dans des cellules Excel depsui VBA...
Peut-être ya t'il un problème dans la syntaxe... quelqu'un aurait une
idée ?
Merci pour votre aide !
Pour info :
Excel 2002, SP1
VB 6.3