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 :
et mon problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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
Partager