D=E9butant sous VBA, j'ai =E9crit une petite macro qui doit me permettre
de renvoyer un alphabet (liste de caract=E8res) =E0 partir d'une liste de
mots.
Les mots sont list=E9s dans des cellules contig=FCes et sont pass=E9s =E0 la
macro via un range r1, le range r2 est quand =E0 lui un range de
cellules qui doit recevoir chaque caract=E8re de l'alphabet g=E9n=E9r=E9.
Voici le code :
Public Function generate_alphabet(ByVal r1 As Range, ByVal r2 As
Range) As Boolean
Dim c As Range
return_str =3D ""
For Each c In r1
For i =3D 1 To Len(c.Text)
sub_str =3D Mid(c.Text, i, 1)
If (InStr(1, return_str, sub_str, vbBinaryCompare) =3D 0) Then
' la lettre n'est pas encore r=E9pertori=E9e dans l'alphabet
return_str =3D return_str & sub_str & "+" ' <- pour le
debug
r2.Cells(c.row - 1, 1).Value =3D sub_str ' <- la ligne
qui pose probl=E8me
End If
Next i
Next c
generate_table =3D VRAI
End Function
et mon probl=E8me :
return_str est bien construite si je commente la ligne r2.Cells(...
Par contre, lorsque je d=E9commente la fameuse ligne r2.Cells(... , la
boucle ne se fait plus : A la premi=E8re ex=E9cution de r2.Cells(c.row -
1, 1).Value =3D sub_str, la macro semble s'arr=EAter et ne rien faire....
Peut-=EAtre ya t'il un probl=E8me dans la syntaxe... quelqu'un aurait une
id=E9e ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
JB
Bonjour,
Une fonction ne peut pas écrire dans une cellule.
JB On 19 mar, 11:49, wrote:
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 :
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.... Peut-être ya t'il un problème dans la syntaxe... quelqu'un aurait une idée ?
Merci pour votre aide !
Pierre
Bonjour,
Une fonction ne peut pas écrire dans une cellule.
JB
On 19 mar, 11:49, pierrerot...@gmail.com wrote:
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 :
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....
Peut-être ya t'il un problème dans la syntaxe... quelqu'un aurait une
idée ?
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 :
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.... Peut-être ya t'il un problème dans la syntaxe... quelqu'un aurait une idée ?
Merci pour votre aide !
Pierre
pierreroth64
On 19 mar, 12:08, "JB" wrote:
Bonjour,
Une fonction ne peut pas écrire dans une cellule.
JB On 19 mar, 11:49, wrote:
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 :
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.. .. Peut-être ya t'il un problème dans la syntaxe... quelqu'un aurait u ne idée ?
Merci pour votre aide !
Pierre
Ah... je ne savais pas... Est-il toujours impossible d'écrire dans des cellules depuis VBA (ce qui semble peu probable) ou dois-je faire ça dans une procédure ou autre ? Merci !
On 19 mar, 12:08, "JB" <boisgont...@hotmail.com> wrote:
Bonjour,
Une fonction ne peut pas écrire dans une cellule.
JB
On 19 mar, 11:49, pierrerot...@gmail.com wrote:
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 :
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.. ..
Peut-être ya t'il un problème dans la syntaxe... quelqu'un aurait u ne
idée ?
Merci pour votre aide !
Pierre
Ah... je ne savais pas... Est-il toujours impossible d'écrire dans des
cellules depuis VBA (ce qui semble peu probable) ou dois-je faire ça
dans une procédure ou autre ?
Merci !
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 :
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.. .. Peut-être ya t'il un problème dans la syntaxe... quelqu'un aurait u ne idée ?
Merci pour votre aide !
Pierre
Ah... je ne savais pas... Est-il toujours impossible d'écrire dans des cellules depuis VBA (ce qui semble peu probable) ou dois-je faire ça dans une procédure ou autre ? Merci !
JB
Une fonction renvoie une valeur - ou un tableau - mais le code de la fonction ne peut pas écrire directement dans le tableur .
Débutant sous VBA, j'ai écrit une petite macro qui doit me permet tre de renvoyer un alphabet (liste de caractères) à partir d'une list e 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 :
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.ro w - 1, 1).Value = sub_str, la macro semble s'arrêter et ne rien faire .... Peut-être ya t'il un problème dans la syntaxe... quelqu'un aurait une idée ?
Merci pour votre aide !
Pierre
Ah... je ne savais pas... Est-il toujours impossible d'écrire dans des cellules depuis VBA (ce qui semble peu probable) ou dois-je faire ça dans une procédure ou autre ? Merci !- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Une fonction renvoie une valeur - ou un tableau - mais le code de la
fonction ne peut pas écrire directement dans le tableur .
On 19 mar, 12:08, "JB" <boisgont...@hotmail.com> wrote:
Bonjour,
Une fonction ne peut pas écrire dans une cellule.
JB
On 19 mar, 11:49, pierrerot...@gmail.com wrote:
Bonjour,
Débutant sous VBA, j'ai écrit une petite macro qui doit me permet tre
de renvoyer un alphabet (liste de caractères) à partir d'une list e 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 :
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.ro w -
1, 1).Value = sub_str, la macro semble s'arrêter et ne rien faire ....
Peut-être ya t'il un problème dans la syntaxe... quelqu'un aurait une
idée ?
Merci pour votre aide !
Pierre
Ah... je ne savais pas... Est-il toujours impossible d'écrire dans des
cellules depuis VBA (ce qui semble peu probable) ou dois-je faire ça
dans une procédure ou autre ?
Merci !- Masquer le texte des messages précédents -
Débutant sous VBA, j'ai écrit une petite macro qui doit me permet tre de renvoyer un alphabet (liste de caractères) à partir d'une list e 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 :
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.ro w - 1, 1).Value = sub_str, la macro semble s'arrêter et ne rien faire .... Peut-être ya t'il un problème dans la syntaxe... quelqu'un aurait une idée ?
Merci pour votre aide !
Pierre
Ah... je ne savais pas... Est-il toujours impossible d'écrire dans des cellules depuis VBA (ce qui semble peu probable) ou dois-je faire ça dans une procédure ou autre ? Merci !- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
pierreroth64
On 19 mar, 12:24, "JB" wrote:
Une fonction renvoie une valeur - ou un tableau - mais le code de la fonction ne peut pas écrire directement dans le tableur .
Débutant sous VBA, j'ai écrit une petite macro qui doit me perm ettre de renvoyer un alphabet (liste de caractères) à partir d'une li ste 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 :
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) T hen ' 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 li gne 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 fai re.... Peut-être ya t'il un problème dans la syntaxe... quelqu'un aura it une idée ?
Merci pour votre aide !
Pierre
Ah... je ne savais pas... Est-il toujours impossible d'écrire dans des cellules depuis VBA (ce qui semble peu probable) ou dois-je faire ça dans une procédure ou autre ? Merci !- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Il est donc impossible d'écrire dans un tableur depuis VBA... je trouve ça vraimenttrès bizarre... il doit y avoir un moyen....
On 19 mar, 12:24, "JB" <boisgont...@hotmail.com> wrote:
Une fonction renvoie une valeur - ou un tableau - mais le code de la
fonction ne peut pas écrire directement dans le tableur .
On 19 mar, 12:08, "JB" <boisgont...@hotmail.com> wrote:
Bonjour,
Une fonction ne peut pas écrire dans une cellule.
JB
On 19 mar, 11:49, pierrerot...@gmail.com wrote:
Bonjour,
Débutant sous VBA, j'ai écrit une petite macro qui doit me perm ettre
de renvoyer un alphabet (liste de caractères) à partir d'une li ste 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 :
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) T hen
' 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 li gne
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 fai re....
Peut-être ya t'il un problème dans la syntaxe... quelqu'un aura it une
idée ?
Merci pour votre aide !
Pierre
Ah... je ne savais pas... Est-il toujours impossible d'écrire dans des
cellules depuis VBA (ce qui semble peu probable) ou dois-je faire ça
dans une procédure ou autre ?
Merci !- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Il est donc impossible d'écrire dans un tableur depuis VBA... je
trouve ça vraimenttrès bizarre... il doit y avoir un moyen....
Débutant sous VBA, j'ai écrit une petite macro qui doit me perm ettre de renvoyer un alphabet (liste de caractères) à partir d'une li ste 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 :
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) T hen ' 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 li gne 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 fai re.... Peut-être ya t'il un problème dans la syntaxe... quelqu'un aura it une idée ?
Merci pour votre aide !
Pierre
Ah... je ne savais pas... Est-il toujours impossible d'écrire dans des cellules depuis VBA (ce qui semble peu probable) ou dois-je faire ça dans une procédure ou autre ? Merci !- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Il est donc impossible d'écrire dans un tableur depuis VBA... je trouve ça vraimenttrès bizarre... il doit y avoir un moyen....