Bonjour,
J'ai une fonction qui permet de changer des mots clés dans un texte et
le renvoit. Le problème est que je n'arrive pas à faire fonctionner la
fonction.
Quand je mets les appels en direct, tout fonctionne. Mais, dès que je
les mets dans une fonction, ca ne vient plus. d'ou vient le problème
selon vous ?
Voici mon code :
Function ConversionTags(Cellule As Range, ChaIne As String) As String
Dim CONF As Worksheet
Set CONF = Worksheets("Configuration")
'Remplacement du tag [year] par la date
ChaIne = Replace(ChaIne, "[year]", Year(Now()), 1, -1,
vbTextCompare)
'Remplacement du tag [assoc] par le nom de l'association
ChaIne = Replace(ChaIne, "[assoc]", CONF.Cells(26, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ChaIne = Replace(ChaIne, "[RespAdh]", CONF.Cells(27, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [PreAdh] par le prénom de l'adhérent
ChaIne = Replace(ChaIne, "[PreAdh]", Cellule.Offset(0, -9).Value,
1, -1, vbTextCompare)
'Remplacement du tag [NomAdh] par le nom de l'adhérent
ChaIne = Replace(ChaIne, "[NomAdh]", Cellule.Offset(0, -8).Value,
1, -1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ConversionTags = Replace(ChaIne, "[RespNom]", CONF.Cells(28,
5).Value, 1, -1, vbTextCompare)
End Function
With ObjMail
....
.Subject = ConversionTags(cell.Address, CONF.Cells(4, 12).Value)
....
End With
Bonjour,
J'ai une fonction qui permet de changer des mots clés dans un texte et
le renvoit. Le problème est que je n'arrive pas à faire fonctionner la
fonction.
Quand je mets les appels en direct, tout fonctionne. Mais, dès que je
les mets dans une fonction, ca ne vient plus. d'ou vient le problème
selon vous ?
Voici mon code :
Function ConversionTags(Cellule As Range, ChaIne As String) As String
Dim CONF As Worksheet
Set CONF = Worksheets("Configuration")
'Remplacement du tag [year] par la date
ChaIne = Replace(ChaIne, "[year]", Year(Now()), 1, -1,
vbTextCompare)
'Remplacement du tag [assoc] par le nom de l'association
ChaIne = Replace(ChaIne, "[assoc]", CONF.Cells(26, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ChaIne = Replace(ChaIne, "[RespAdh]", CONF.Cells(27, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [PreAdh] par le prénom de l'adhérent
ChaIne = Replace(ChaIne, "[PreAdh]", Cellule.Offset(0, -9).Value,
1, -1, vbTextCompare)
'Remplacement du tag [NomAdh] par le nom de l'adhérent
ChaIne = Replace(ChaIne, "[NomAdh]", Cellule.Offset(0, -8).Value,
1, -1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ConversionTags = Replace(ChaIne, "[RespNom]", CONF.Cells(28,
5).Value, 1, -1, vbTextCompare)
End Function
With ObjMail
....
.Subject = ConversionTags(cell.Address, CONF.Cells(4, 12).Value)
....
End With
Bonjour,
J'ai une fonction qui permet de changer des mots clés dans un texte et
le renvoit. Le problème est que je n'arrive pas à faire fonctionner la
fonction.
Quand je mets les appels en direct, tout fonctionne. Mais, dès que je
les mets dans une fonction, ca ne vient plus. d'ou vient le problème
selon vous ?
Voici mon code :
Function ConversionTags(Cellule As Range, ChaIne As String) As String
Dim CONF As Worksheet
Set CONF = Worksheets("Configuration")
'Remplacement du tag [year] par la date
ChaIne = Replace(ChaIne, "[year]", Year(Now()), 1, -1,
vbTextCompare)
'Remplacement du tag [assoc] par le nom de l'association
ChaIne = Replace(ChaIne, "[assoc]", CONF.Cells(26, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ChaIne = Replace(ChaIne, "[RespAdh]", CONF.Cells(27, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [PreAdh] par le prénom de l'adhérent
ChaIne = Replace(ChaIne, "[PreAdh]", Cellule.Offset(0, -9).Value,
1, -1, vbTextCompare)
'Remplacement du tag [NomAdh] par le nom de l'adhérent
ChaIne = Replace(ChaIne, "[NomAdh]", Cellule.Offset(0, -8).Value,
1, -1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ConversionTags = Replace(ChaIne, "[RespNom]", CONF.Cells(28,
5).Value, 1, -1, vbTextCompare)
End Function
With ObjMail
....
.Subject = ConversionTags(cell.Address, CONF.Cells(4, 12).Value)
....
End With
Bonsoir,
Normal.
Une fonction, function, renvoie un résultat, et ne peut effectuer
d'actions. Il faut une procédure, sub, pour effectuer une action.
Dans ta fonction tu peux faire des substitutions de texte dans des
variables mais pas modifier des cellules ou des plages de feuille de calc ul.
Cordialement.
lStephBonjour,
J'ai une fonction qui permet de changer des mots clés dans un texte et
le renvoit. Le problème est que je n'arrive pas à faire fonctionner la
fonction.
Quand je mets les appels en direct, tout fonctionne. Mais, dès que je
les mets dans une fonction, ca ne vient plus. d'ou vient le problème
selon vous ?
Voici mon code :
Function ConversionTags(Cellule As Range, ChaIne As String) As String
Dim CONF As Worksheet
Set CONF = Worksheets("Configuration")
'Remplacement du tag [year] par la date
ChaIne = Replace(ChaIne, "[year]", Year(Now()), 1, -1,
vbTextCompare)
'Remplacement du tag [assoc] par le nom de l'association
ChaIne = Replace(ChaIne, "[assoc]", CONF.Cells(26, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ChaIne = Replace(ChaIne, "[RespAdh]", CONF.Cells(27, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [PreAdh] par le prénom de l'adhérent
ChaIne = Replace(ChaIne, "[PreAdh]", Cellule.Offset(0, -9).Value,
1, -1, vbTextCompare)
'Remplacement du tag [NomAdh] par le nom de l'adhérent
ChaIne = Replace(ChaIne, "[NomAdh]", Cellule.Offset(0, -8).Value,
1, -1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ConversionTags = Replace(ChaIne, "[RespNom]", CONF.Cells(28,
5).Value, 1, -1, vbTextCompare)
End Function
With ObjMail
....
.Subject = ConversionTags(cell.Address, CONF.Cells(4, 12).Value)
....
End With
Bonsoir,
Normal.
Une fonction, function, renvoie un résultat, et ne peut effectuer
d'actions. Il faut une procédure, sub, pour effectuer une action.
Dans ta fonction tu peux faire des substitutions de texte dans des
variables mais pas modifier des cellules ou des plages de feuille de calc ul.
Cordialement.
lSteph
Bonjour,
J'ai une fonction qui permet de changer des mots clés dans un texte et
le renvoit. Le problème est que je n'arrive pas à faire fonctionner la
fonction.
Quand je mets les appels en direct, tout fonctionne. Mais, dès que je
les mets dans une fonction, ca ne vient plus. d'ou vient le problème
selon vous ?
Voici mon code :
Function ConversionTags(Cellule As Range, ChaIne As String) As String
Dim CONF As Worksheet
Set CONF = Worksheets("Configuration")
'Remplacement du tag [year] par la date
ChaIne = Replace(ChaIne, "[year]", Year(Now()), 1, -1,
vbTextCompare)
'Remplacement du tag [assoc] par le nom de l'association
ChaIne = Replace(ChaIne, "[assoc]", CONF.Cells(26, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ChaIne = Replace(ChaIne, "[RespAdh]", CONF.Cells(27, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [PreAdh] par le prénom de l'adhérent
ChaIne = Replace(ChaIne, "[PreAdh]", Cellule.Offset(0, -9).Value,
1, -1, vbTextCompare)
'Remplacement du tag [NomAdh] par le nom de l'adhérent
ChaIne = Replace(ChaIne, "[NomAdh]", Cellule.Offset(0, -8).Value,
1, -1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ConversionTags = Replace(ChaIne, "[RespNom]", CONF.Cells(28,
5).Value, 1, -1, vbTextCompare)
End Function
With ObjMail
....
.Subject = ConversionTags(cell.Address, CONF.Cells(4, 12).Value)
....
End With
Bonsoir,
Normal.
Une fonction, function, renvoie un résultat, et ne peut effectuer
d'actions. Il faut une procédure, sub, pour effectuer une action.
Dans ta fonction tu peux faire des substitutions de texte dans des
variables mais pas modifier des cellules ou des plages de feuille de calc ul.
Cordialement.
lStephBonjour,
J'ai une fonction qui permet de changer des mots clés dans un texte et
le renvoit. Le problème est que je n'arrive pas à faire fonctionner la
fonction.
Quand je mets les appels en direct, tout fonctionne. Mais, dès que je
les mets dans une fonction, ca ne vient plus. d'ou vient le problème
selon vous ?
Voici mon code :
Function ConversionTags(Cellule As Range, ChaIne As String) As String
Dim CONF As Worksheet
Set CONF = Worksheets("Configuration")
'Remplacement du tag [year] par la date
ChaIne = Replace(ChaIne, "[year]", Year(Now()), 1, -1,
vbTextCompare)
'Remplacement du tag [assoc] par le nom de l'association
ChaIne = Replace(ChaIne, "[assoc]", CONF.Cells(26, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ChaIne = Replace(ChaIne, "[RespAdh]", CONF.Cells(27, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [PreAdh] par le prénom de l'adhérent
ChaIne = Replace(ChaIne, "[PreAdh]", Cellule.Offset(0, -9).Value,
1, -1, vbTextCompare)
'Remplacement du tag [NomAdh] par le nom de l'adhérent
ChaIne = Replace(ChaIne, "[NomAdh]", Cellule.Offset(0, -8).Value,
1, -1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ConversionTags = Replace(ChaIne, "[RespNom]", CONF.Cells(28,
5).Value, 1, -1, vbTextCompare)
End Function
With ObjMail
....
.Subject = ConversionTags(cell.Address, CONF.Cells(4, 12).Value)
....
End With
Je n'ai pas compris ta réponse. Je ne modifie aucunement les données
Function ConversionTags(Cellule As Range, ChaIne As String) As String
Dim CONF As Worksheet
Set CONF = Worksheets("Configuration")
'Remplacement du tag [year] par la date
...
End Function
Essaie plus simplement un With et cela devrait aller
ChaIne = Replace(ChaIne, "[assoc]", CONF.Cells(26, 5).Value, 1,
ChaIne = Replace(ChaIne, "[assoc]", .Cells(26, 5).Value, 1,
Mais, d'après l'aide, j'ai cru comprendre..
... Comment puis-je faire alors ?
Une fois ta fonction écrite, tu dois la placer dans une cellule
Bonjour,
Je n'ai pas compris ta réponse. Je ne modifie aucunement les données
dans les cellules. Plutôt je récupère des données pour faire un
traitement.
Mais, d'après l'aide, j'ai cru comprendre qu'une fonction sub ne peut
pas renvoyer de données. Comment puis-je faire alors ?
On 31 mar, 23:24, LSteph wrote:Bonsoir,
Normal.
Une fonction, function, renvoie un résultat, et ne peut effectuer
d'actions. Il faut une procédure, sub, pour effectuer une action.
Dans ta fonction tu peux faire des substitutions de texte dans des
variables mais pas modifier des cellules ou des plages de feuille de calcul.
Cordialement.
lStephBonjour,
J'ai une fonction qui permet de changer des mots clés dans un texte et
le renvoit. Le problème est que je n'arrive pas à faire fonctionner la
fonction.
Quand je mets les appels en direct, tout fonctionne. Mais, dès que je
les mets dans une fonction, ca ne vient plus. d'ou vient le problème
selon vous ?
Voici mon code :
Function ConversionTags(Cellule As Range, ChaIne As String) As String
Dim CONF As Worksheet
Set CONF = Worksheets("Configuration")
'Remplacement du tag [year] par la date
ChaIne = Replace(ChaIne, "[year]", Year(Now()), 1, -1,
vbTextCompare)
'Remplacement du tag [assoc] par le nom de l'association
ChaIne = Replace(ChaIne, "[assoc]", CONF.Cells(26, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ChaIne = Replace(ChaIne, "[RespAdh]", CONF.Cells(27, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [PreAdh] par le prénom de l'adhérent
ChaIne = Replace(ChaIne, "[PreAdh]", Cellule.Offset(0, -9).Value,
1, -1, vbTextCompare)
'Remplacement du tag [NomAdh] par le nom de l'adhérent
ChaIne = Replace(ChaIne, "[NomAdh]", Cellule.Offset(0, -8).Value,
1, -1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ConversionTags = Replace(ChaIne, "[RespNom]", CONF.Cells(28,
5).Value, 1, -1, vbTextCompare)
End Function
With ObjMail
....
.Subject = ConversionTags(cell.Address, CONF.Cells(4, 12).Value)
....
End With
Je n'ai pas compris ta réponse. Je ne modifie aucunement les données
Function ConversionTags(Cellule As Range, ChaIne As String) As String
Dim CONF As Worksheet
Set CONF = Worksheets("Configuration")
'Remplacement du tag [year] par la date
...
End Function
Essaie plus simplement un With et cela devrait aller
ChaIne = Replace(ChaIne, "[assoc]", CONF.Cells(26, 5).Value, 1,
ChaIne = Replace(ChaIne, "[assoc]", .Cells(26, 5).Value, 1,
Mais, d'après l'aide, j'ai cru comprendre..
... Comment puis-je faire alors ?
Une fois ta fonction écrite, tu dois la placer dans une cellule
Bonjour,
Je n'ai pas compris ta réponse. Je ne modifie aucunement les données
dans les cellules. Plutôt je récupère des données pour faire un
traitement.
Mais, d'après l'aide, j'ai cru comprendre qu'une fonction sub ne peut
pas renvoyer de données. Comment puis-je faire alors ?
On 31 mar, 23:24, LSteph <lecocost...@frite.fr> wrote:
Bonsoir,
Normal.
Une fonction, function, renvoie un résultat, et ne peut effectuer
d'actions. Il faut une procédure, sub, pour effectuer une action.
Dans ta fonction tu peux faire des substitutions de texte dans des
variables mais pas modifier des cellules ou des plages de feuille de calcul.
Cordialement.
lSteph
Bonjour,
J'ai une fonction qui permet de changer des mots clés dans un texte et
le renvoit. Le problème est que je n'arrive pas à faire fonctionner la
fonction.
Quand je mets les appels en direct, tout fonctionne. Mais, dès que je
les mets dans une fonction, ca ne vient plus. d'ou vient le problème
selon vous ?
Voici mon code :
Function ConversionTags(Cellule As Range, ChaIne As String) As String
Dim CONF As Worksheet
Set CONF = Worksheets("Configuration")
'Remplacement du tag [year] par la date
ChaIne = Replace(ChaIne, "[year]", Year(Now()), 1, -1,
vbTextCompare)
'Remplacement du tag [assoc] par le nom de l'association
ChaIne = Replace(ChaIne, "[assoc]", CONF.Cells(26, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ChaIne = Replace(ChaIne, "[RespAdh]", CONF.Cells(27, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [PreAdh] par le prénom de l'adhérent
ChaIne = Replace(ChaIne, "[PreAdh]", Cellule.Offset(0, -9).Value,
1, -1, vbTextCompare)
'Remplacement du tag [NomAdh] par le nom de l'adhérent
ChaIne = Replace(ChaIne, "[NomAdh]", Cellule.Offset(0, -8).Value,
1, -1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ConversionTags = Replace(ChaIne, "[RespNom]", CONF.Cells(28,
5).Value, 1, -1, vbTextCompare)
End Function
With ObjMail
....
.Subject = ConversionTags(cell.Address, CONF.Cells(4, 12).Value)
....
End With
Je n'ai pas compris ta réponse. Je ne modifie aucunement les données
Function ConversionTags(Cellule As Range, ChaIne As String) As String
Dim CONF As Worksheet
Set CONF = Worksheets("Configuration")
'Remplacement du tag [year] par la date
...
End Function
Essaie plus simplement un With et cela devrait aller
ChaIne = Replace(ChaIne, "[assoc]", CONF.Cells(26, 5).Value, 1,
ChaIne = Replace(ChaIne, "[assoc]", .Cells(26, 5).Value, 1,
Mais, d'après l'aide, j'ai cru comprendre..
... Comment puis-je faire alors ?
Une fois ta fonction écrite, tu dois la placer dans une cellule
Bonjour,
Je n'ai pas compris ta réponse. Je ne modifie aucunement les données
dans les cellules. Plutôt je récupère des données pour faire un
traitement.
Mais, d'après l'aide, j'ai cru comprendre qu'une fonction sub ne peut
pas renvoyer de données. Comment puis-je faire alors ?
On 31 mar, 23:24, LSteph wrote:Bonsoir,
Normal.
Une fonction, function, renvoie un résultat, et ne peut effectuer
d'actions. Il faut une procédure, sub, pour effectuer une action.
Dans ta fonction tu peux faire des substitutions de texte dans des
variables mais pas modifier des cellules ou des plages de feuille de calcul.
Cordialement.
lStephBonjour,
J'ai une fonction qui permet de changer des mots clés dans un texte et
le renvoit. Le problème est que je n'arrive pas à faire fonctionner la
fonction.
Quand je mets les appels en direct, tout fonctionne. Mais, dès que je
les mets dans une fonction, ca ne vient plus. d'ou vient le problème
selon vous ?
Voici mon code :
Function ConversionTags(Cellule As Range, ChaIne As String) As String
Dim CONF As Worksheet
Set CONF = Worksheets("Configuration")
'Remplacement du tag [year] par la date
ChaIne = Replace(ChaIne, "[year]", Year(Now()), 1, -1,
vbTextCompare)
'Remplacement du tag [assoc] par le nom de l'association
ChaIne = Replace(ChaIne, "[assoc]", CONF.Cells(26, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ChaIne = Replace(ChaIne, "[RespAdh]", CONF.Cells(27, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [PreAdh] par le prénom de l'adhérent
ChaIne = Replace(ChaIne, "[PreAdh]", Cellule.Offset(0, -9).Value,
1, -1, vbTextCompare)
'Remplacement du tag [NomAdh] par le nom de l'adhérent
ChaIne = Replace(ChaIne, "[NomAdh]", Cellule.Offset(0, -8).Value,
1, -1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ConversionTags = Replace(ChaIne, "[RespNom]", CONF.Cells(28,
5).Value, 1, -1, vbTextCompare)
End Function
With ObjMail
....
.Subject = ConversionTags(cell.Address, CONF.Cells(4, 12).Value)
....
End With
Bonjour,Je n'ai pas compris ta réponse. Je ne modifie aucunement les données
J'avais lu un peu vite mais qd même,suggestion:
Au lieu d'assigner ta feuille à une variable objet
Set CONFFunction ConversionTags(Cellule As Range, ChaIne As String) As String
Dim CONF As Worksheet
Set CONF = Worksheets("Configuration")
'Remplacement du tag [year] par la date
...End Function
Essaie plus simplement un With et cela devrait aller
Function ConversionTags(Cellule As Range, ChaIne As String) As String
With Worksheets("Configuration")
'Remplacement du tag [year] par la date
'....
End With
End Function
Ensuite évidemment modifier ainsi ce qui y fait appel>>>> ChaIne = Replace(ChaIne, "[assoc]", CONF.Cells(26, 5).Value, 1,
ChaIne = Replace(ChaIne, "[assoc]", .Cells(26, 5).Value, 1,
'....
Sinon il y avait aussi cette instruction
With ObjMail
mais effectivement elle sest en dehors de la fonction
d'ailleurs je ne saisis pas bien ce qu'elle fait là toute seule ..Mais, d'après l'aide, j'ai cru comprendre..
Une procédure (sub) permet d'effecuer des actions, (autrement dit)
un traitement.
Une fonction (Function) sert précisément à renvoyer des données
dans une cellule.... Comment puis-je faire alors ?
Une fois ta fonction écrite, tu dois la placer dans une cellule
elle y renverra le résultat.
Cordialement.
lStephBonjour,
Je n'ai pas compris ta réponse. Je ne modifie aucunement les données
dans les cellules. Plutôt je récupère des données pour faire un
traitement.
Mais, d'après l'aide, j'ai cru comprendre qu'une fonction sub ne peut
pas renvoyer de données. Comment puis-je faire alors ?
On 31 mar, 23:24, LSteph wrote:Bonsoir,
Normal.
Une fonction, function, renvoie un résultat, et ne peut effectuer
d'actions. Il faut une procédure, sub, pour effectuer une action.
Dans ta fonction tu peux faire des substitutions de texte dans des
variables mais pas modifier des cellules ou des plages de feuille de c alcul.
Cordialement.
lStephBonjour,
J'ai une fonction qui permet de changer des mots clés dans un texte et
le renvoit. Le problème est que je n'arrive pas à faire fonctionn er la
fonction.
Quand je mets les appels en direct, tout fonctionne. Mais, dès que je
les mets dans une fonction, ca ne vient plus. d'ou vient le problème
selon vous ?
Voici mon code :
Function ConversionTags(Cellule As Range, ChaIne As String) As String
Dim CONF As Worksheet
Set CONF = Worksheets("Configuration")
'Remplacement du tag [year] par la date
ChaIne = Replace(ChaIne, "[year]", Year(Now()), 1, -1,
vbTextCompare)
'Remplacement du tag [assoc] par le nom de l'association
ChaIne = Replace(ChaIne, "[assoc]", CONF.Cells(26, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ChaIne = Replace(ChaIne, "[RespAdh]", CONF.Cells(27, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [PreAdh] par le prénom de l'adhérent
ChaIne = Replace(ChaIne, "[PreAdh]", Cellule.Offset(0, -9).Valu e,
1, -1, vbTextCompare)
'Remplacement du tag [NomAdh] par le nom de l'adhérent
ChaIne = Replace(ChaIne, "[NomAdh]", Cellule.Offset(0, -8).Valu e,
1, -1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ConversionTags = Replace(ChaIne, "[RespNom]", CONF.Cells(28,
5).Value, 1, -1, vbTextCompare)
End Function
With ObjMail
....
.Subject = ConversionTags(cell.Address, CONF.Cells(4, 12).Value)
....
End With- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Je n'ai pas compris ta réponse. Je ne modifie aucunement les données
J'avais lu un peu vite mais qd même,suggestion:
Au lieu d'assigner ta feuille à une variable objet
Set CONF
Function ConversionTags(Cellule As Range, ChaIne As String) As String
Dim CONF As Worksheet
Set CONF = Worksheets("Configuration")
'Remplacement du tag [year] par la date
...
End Function
Essaie plus simplement un With et cela devrait aller
Function ConversionTags(Cellule As Range, ChaIne As String) As String
With Worksheets("Configuration")
'Remplacement du tag [year] par la date
'....
End With
End Function
Ensuite évidemment modifier ainsi ce qui y fait appel>>>> ChaIne = Replace(ChaIne, "[assoc]", CONF.Cells(26, 5).Value, 1,
ChaIne = Replace(ChaIne, "[assoc]", .Cells(26, 5).Value, 1,
'....
Sinon il y avait aussi cette instruction
With ObjMail
mais effectivement elle sest en dehors de la fonction
d'ailleurs je ne saisis pas bien ce qu'elle fait là toute seule ..
Mais, d'après l'aide, j'ai cru comprendre..
Une procédure (sub) permet d'effecuer des actions, (autrement dit)
un traitement.
Une fonction (Function) sert précisément à renvoyer des données
dans une cellule.
... Comment puis-je faire alors ?
Une fois ta fonction écrite, tu dois la placer dans une cellule
elle y renverra le résultat.
Cordialement.
lSteph
Bonjour,
Je n'ai pas compris ta réponse. Je ne modifie aucunement les données
dans les cellules. Plutôt je récupère des données pour faire un
traitement.
Mais, d'après l'aide, j'ai cru comprendre qu'une fonction sub ne peut
pas renvoyer de données. Comment puis-je faire alors ?
On 31 mar, 23:24, LSteph <lecocost...@frite.fr> wrote:
Bonsoir,
Normal.
Une fonction, function, renvoie un résultat, et ne peut effectuer
d'actions. Il faut une procédure, sub, pour effectuer une action.
Dans ta fonction tu peux faire des substitutions de texte dans des
variables mais pas modifier des cellules ou des plages de feuille de c alcul.
Cordialement.
lSteph
Bonjour,
J'ai une fonction qui permet de changer des mots clés dans un texte et
le renvoit. Le problème est que je n'arrive pas à faire fonctionn er la
fonction.
Quand je mets les appels en direct, tout fonctionne. Mais, dès que je
les mets dans une fonction, ca ne vient plus. d'ou vient le problème
selon vous ?
Voici mon code :
Function ConversionTags(Cellule As Range, ChaIne As String) As String
Dim CONF As Worksheet
Set CONF = Worksheets("Configuration")
'Remplacement du tag [year] par la date
ChaIne = Replace(ChaIne, "[year]", Year(Now()), 1, -1,
vbTextCompare)
'Remplacement du tag [assoc] par le nom de l'association
ChaIne = Replace(ChaIne, "[assoc]", CONF.Cells(26, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ChaIne = Replace(ChaIne, "[RespAdh]", CONF.Cells(27, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [PreAdh] par le prénom de l'adhérent
ChaIne = Replace(ChaIne, "[PreAdh]", Cellule.Offset(0, -9).Valu e,
1, -1, vbTextCompare)
'Remplacement du tag [NomAdh] par le nom de l'adhérent
ChaIne = Replace(ChaIne, "[NomAdh]", Cellule.Offset(0, -8).Valu e,
1, -1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ConversionTags = Replace(ChaIne, "[RespNom]", CONF.Cells(28,
5).Value, 1, -1, vbTextCompare)
End Function
With ObjMail
....
.Subject = ConversionTags(cell.Address, CONF.Cells(4, 12).Value)
....
End With- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,Je n'ai pas compris ta réponse. Je ne modifie aucunement les données
J'avais lu un peu vite mais qd même,suggestion:
Au lieu d'assigner ta feuille à une variable objet
Set CONFFunction ConversionTags(Cellule As Range, ChaIne As String) As String
Dim CONF As Worksheet
Set CONF = Worksheets("Configuration")
'Remplacement du tag [year] par la date
...End Function
Essaie plus simplement un With et cela devrait aller
Function ConversionTags(Cellule As Range, ChaIne As String) As String
With Worksheets("Configuration")
'Remplacement du tag [year] par la date
'....
End With
End Function
Ensuite évidemment modifier ainsi ce qui y fait appel>>>> ChaIne = Replace(ChaIne, "[assoc]", CONF.Cells(26, 5).Value, 1,
ChaIne = Replace(ChaIne, "[assoc]", .Cells(26, 5).Value, 1,
'....
Sinon il y avait aussi cette instruction
With ObjMail
mais effectivement elle sest en dehors de la fonction
d'ailleurs je ne saisis pas bien ce qu'elle fait là toute seule ..Mais, d'après l'aide, j'ai cru comprendre..
Une procédure (sub) permet d'effecuer des actions, (autrement dit)
un traitement.
Une fonction (Function) sert précisément à renvoyer des données
dans une cellule.... Comment puis-je faire alors ?
Une fois ta fonction écrite, tu dois la placer dans une cellule
elle y renverra le résultat.
Cordialement.
lStephBonjour,
Je n'ai pas compris ta réponse. Je ne modifie aucunement les données
dans les cellules. Plutôt je récupère des données pour faire un
traitement.
Mais, d'après l'aide, j'ai cru comprendre qu'une fonction sub ne peut
pas renvoyer de données. Comment puis-je faire alors ?
On 31 mar, 23:24, LSteph wrote:Bonsoir,
Normal.
Une fonction, function, renvoie un résultat, et ne peut effectuer
d'actions. Il faut une procédure, sub, pour effectuer une action.
Dans ta fonction tu peux faire des substitutions de texte dans des
variables mais pas modifier des cellules ou des plages de feuille de c alcul.
Cordialement.
lStephBonjour,
J'ai une fonction qui permet de changer des mots clés dans un texte et
le renvoit. Le problème est que je n'arrive pas à faire fonctionn er la
fonction.
Quand je mets les appels en direct, tout fonctionne. Mais, dès que je
les mets dans une fonction, ca ne vient plus. d'ou vient le problème
selon vous ?
Voici mon code :
Function ConversionTags(Cellule As Range, ChaIne As String) As String
Dim CONF As Worksheet
Set CONF = Worksheets("Configuration")
'Remplacement du tag [year] par la date
ChaIne = Replace(ChaIne, "[year]", Year(Now()), 1, -1,
vbTextCompare)
'Remplacement du tag [assoc] par le nom de l'association
ChaIne = Replace(ChaIne, "[assoc]", CONF.Cells(26, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ChaIne = Replace(ChaIne, "[RespAdh]", CONF.Cells(27, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [PreAdh] par le prénom de l'adhérent
ChaIne = Replace(ChaIne, "[PreAdh]", Cellule.Offset(0, -9).Valu e,
1, -1, vbTextCompare)
'Remplacement du tag [NomAdh] par le nom de l'adhérent
ChaIne = Replace(ChaIne, "[NomAdh]", Cellule.Offset(0, -8).Valu e,
1, -1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ConversionTags = Replace(ChaIne, "[RespNom]", CONF.Cells(28,
5).Value, 1, -1, vbTextCompare)
End Function
With ObjMail
....
.Subject = ConversionTags(cell.Address, CONF.Cells(4, 12).Value)
....
End With- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Merci de ton aide apportée. Je n'ai pas encore tout compris et je vais
étudier tout cela attentivement.
Ce que je veux faire en fait est d'envoyer un mail "personnalisé" à
chaque personne d'une liste déterminée. Pour le personnaliser,
j'utilise des tags ou mots clés. Le souci est que je l'utilise en
plusieurs endroits et je me vois mal répéter mon code à chaque fois.
Pour cette raison que j'utilise function (au départ je voulais
utiliser sub mais j'ai vu qu'il ne renvoit aucune donnée).Une sorte
d'alias ou de DLL. Mais d'après ce que tu viens de me dire, j'ai
l'impression que je fais fausse route avec function. Il faut passer
par un sub semble t il.
Pour le set CONF, je n'étais pas sûr qu'il renvoit ces variables alors
qu'ils sont déjà déterminés dans la fonction ou function est appe lée.
Mais comme je travaille sur plusieurs feuilles....
On 1 avr, 11:56, LSteph wrote:Bonjour,Je n'ai pas compris ta réponse. Je ne modifie aucunement les donn ées
J'avais lu un peu vite mais qd même,suggestion:
Au lieu d'assigner ta feuille à une variable objet
Set CONFFunction ConversionTags(Cellule As Range, ChaIne As String) As Str ing
Dim CONF As Worksheet
Set CONF = Worksheets("Configuration")
'Remplacement du tag [year] par la date
...End Function
Essaie plus simplement un With et cela devrait aller
Function ConversionTags(Cellule As Range, ChaIne As String) As String
With Worksheets("Configuration")
'Remplacement du tag [year] par la date
'....
End With
End Function
Ensuite évidemment modifier ainsi ce qui y fait appel>>>> ChaIne = Replace(ChaIne, "[assoc]", CONF.Cells(26, 5).Value, 1,
ChaIne = Replace(ChaIne, "[assoc]", .Cells(26, 5).Value, 1,
'....
Sinon il y avait aussi cette instruction
With ObjMail
mais effectivement elle sest en dehors de la fonction
d'ailleurs je ne saisis pas bien ce qu'elle fait là toute seule ..Mais, d'après l'aide, j'ai cru comprendre..
Une procédure (sub) permet d'effecuer des actions, (autrement dit)
un traitement.
Une fonction (Function) sert précisément à renvoyer des données
dans une cellule.... Comment puis-je faire alors ?
Une fois ta fonction écrite, tu dois la placer dans une cellule
elle y renverra le résultat.
Cordialement.
lStephBonjour,
Je n'ai pas compris ta réponse. Je ne modifie aucunement les donn ées
dans les cellules. Plutôt je récupère des données pour faire un
traitement.
Mais, d'après l'aide, j'ai cru comprendre qu'une fonction sub ne pe ut
pas renvoyer de données. Comment puis-je faire alors ?
On 31 mar, 23:24, LSteph wrote:Bonsoir,
Normal.
Une fonction, function, renvoie un résultat, et ne peut effectuer
d'actions. Il faut une procédure, sub, pour effectuer une action.
Dans ta fonction tu peux faire des substitutions de texte dans des
variables mais pas modifier des cellules ou des plages de feuille de calcul.
Cordialement.
lStephBonjour,
J'ai une fonction qui permet de changer des mots clés dans un tex te et
le renvoit. Le problème est que je n'arrive pas à faire fonctio nner la
fonction.
Quand je mets les appels en direct, tout fonctionne. Mais, dès qu e je
les mets dans une fonction, ca ne vient plus. d'ou vient le probl ème
selon vous ?
Voici mon code :
Function ConversionTags(Cellule As Range, ChaIne As String) As Stri ng
Dim CONF As Worksheet
Set CONF = Worksheets("Configuration")
'Remplacement du tag [year] par la date
ChaIne = Replace(ChaIne, "[year]", Year(Now()), 1, -1,
vbTextCompare)
'Remplacement du tag [assoc] par le nom de l'association
ChaIne = Replace(ChaIne, "[assoc]", CONF.Cells(26, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ChaIne = Replace(ChaIne, "[RespAdh]", CONF.Cells(27, 5).Value , 1,
-1, vbTextCompare)
'Remplacement du tag [PreAdh] par le prénom de l'adhérent
ChaIne = Replace(ChaIne, "[PreAdh]", Cellule.Offset(0, -9).Va lue,
1, -1, vbTextCompare)
'Remplacement du tag [NomAdh] par le nom de l'adhérent
ChaIne = Replace(ChaIne, "[NomAdh]", Cellule.Offset(0, -8).Va lue,
1, -1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ConversionTags = Replace(ChaIne, "[RespNom]", CONF.Cells(28,
5).Value, 1, -1, vbTextCompare)
End Function
With ObjMail
....
.Subject = ConversionTags(cell.Address, CONF.Cells(4, 12).Value)
....
End With- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Merci de ton aide apportée. Je n'ai pas encore tout compris et je vais
étudier tout cela attentivement.
Ce que je veux faire en fait est d'envoyer un mail "personnalisé" à
chaque personne d'une liste déterminée. Pour le personnaliser,
j'utilise des tags ou mots clés. Le souci est que je l'utilise en
plusieurs endroits et je me vois mal répéter mon code à chaque fois.
Pour cette raison que j'utilise function (au départ je voulais
utiliser sub mais j'ai vu qu'il ne renvoit aucune donnée).Une sorte
d'alias ou de DLL. Mais d'après ce que tu viens de me dire, j'ai
l'impression que je fais fausse route avec function. Il faut passer
par un sub semble t il.
Pour le set CONF, je n'étais pas sûr qu'il renvoit ces variables alors
qu'ils sont déjà déterminés dans la fonction ou function est appe lée.
Mais comme je travaille sur plusieurs feuilles....
On 1 avr, 11:56, LSteph <lecocost...@frite.fr> wrote:
Bonjour,
Je n'ai pas compris ta réponse. Je ne modifie aucunement les donn ées
J'avais lu un peu vite mais qd même,suggestion:
Au lieu d'assigner ta feuille à une variable objet
Set CONF
Function ConversionTags(Cellule As Range, ChaIne As String) As Str ing
Dim CONF As Worksheet
Set CONF = Worksheets("Configuration")
'Remplacement du tag [year] par la date
...
End Function
Essaie plus simplement un With et cela devrait aller
Function ConversionTags(Cellule As Range, ChaIne As String) As String
With Worksheets("Configuration")
'Remplacement du tag [year] par la date
'....
End With
End Function
Ensuite évidemment modifier ainsi ce qui y fait appel>>>> ChaIne = Replace(ChaIne, "[assoc]", CONF.Cells(26, 5).Value, 1,
ChaIne = Replace(ChaIne, "[assoc]", .Cells(26, 5).Value, 1,
'....
Sinon il y avait aussi cette instruction
With ObjMail
mais effectivement elle sest en dehors de la fonction
d'ailleurs je ne saisis pas bien ce qu'elle fait là toute seule ..
Mais, d'après l'aide, j'ai cru comprendre..
Une procédure (sub) permet d'effecuer des actions, (autrement dit)
un traitement.
Une fonction (Function) sert précisément à renvoyer des données
dans une cellule.
... Comment puis-je faire alors ?
Une fois ta fonction écrite, tu dois la placer dans une cellule
elle y renverra le résultat.
Cordialement.
lSteph
Bonjour,
Je n'ai pas compris ta réponse. Je ne modifie aucunement les donn ées
dans les cellules. Plutôt je récupère des données pour faire un
traitement.
Mais, d'après l'aide, j'ai cru comprendre qu'une fonction sub ne pe ut
pas renvoyer de données. Comment puis-je faire alors ?
On 31 mar, 23:24, LSteph <lecocost...@frite.fr> wrote:
Bonsoir,
Normal.
Une fonction, function, renvoie un résultat, et ne peut effectuer
d'actions. Il faut une procédure, sub, pour effectuer une action.
Dans ta fonction tu peux faire des substitutions de texte dans des
variables mais pas modifier des cellules ou des plages de feuille de calcul.
Cordialement.
lSteph
Bonjour,
J'ai une fonction qui permet de changer des mots clés dans un tex te et
le renvoit. Le problème est que je n'arrive pas à faire fonctio nner la
fonction.
Quand je mets les appels en direct, tout fonctionne. Mais, dès qu e je
les mets dans une fonction, ca ne vient plus. d'ou vient le probl ème
selon vous ?
Voici mon code :
Function ConversionTags(Cellule As Range, ChaIne As String) As Stri ng
Dim CONF As Worksheet
Set CONF = Worksheets("Configuration")
'Remplacement du tag [year] par la date
ChaIne = Replace(ChaIne, "[year]", Year(Now()), 1, -1,
vbTextCompare)
'Remplacement du tag [assoc] par le nom de l'association
ChaIne = Replace(ChaIne, "[assoc]", CONF.Cells(26, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ChaIne = Replace(ChaIne, "[RespAdh]", CONF.Cells(27, 5).Value , 1,
-1, vbTextCompare)
'Remplacement du tag [PreAdh] par le prénom de l'adhérent
ChaIne = Replace(ChaIne, "[PreAdh]", Cellule.Offset(0, -9).Va lue,
1, -1, vbTextCompare)
'Remplacement du tag [NomAdh] par le nom de l'adhérent
ChaIne = Replace(ChaIne, "[NomAdh]", Cellule.Offset(0, -8).Va lue,
1, -1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ConversionTags = Replace(ChaIne, "[RespNom]", CONF.Cells(28,
5).Value, 1, -1, vbTextCompare)
End Function
With ObjMail
....
.Subject = ConversionTags(cell.Address, CONF.Cells(4, 12).Value)
....
End With- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Merci de ton aide apportée. Je n'ai pas encore tout compris et je vais
étudier tout cela attentivement.
Ce que je veux faire en fait est d'envoyer un mail "personnalisé" à
chaque personne d'une liste déterminée. Pour le personnaliser,
j'utilise des tags ou mots clés. Le souci est que je l'utilise en
plusieurs endroits et je me vois mal répéter mon code à chaque fois.
Pour cette raison que j'utilise function (au départ je voulais
utiliser sub mais j'ai vu qu'il ne renvoit aucune donnée).Une sorte
d'alias ou de DLL. Mais d'après ce que tu viens de me dire, j'ai
l'impression que je fais fausse route avec function. Il faut passer
par un sub semble t il.
Pour le set CONF, je n'étais pas sûr qu'il renvoit ces variables alors
qu'ils sont déjà déterminés dans la fonction ou function est appe lée.
Mais comme je travaille sur plusieurs feuilles....
On 1 avr, 11:56, LSteph wrote:Bonjour,Je n'ai pas compris ta réponse. Je ne modifie aucunement les donn ées
J'avais lu un peu vite mais qd même,suggestion:
Au lieu d'assigner ta feuille à une variable objet
Set CONFFunction ConversionTags(Cellule As Range, ChaIne As String) As Str ing
Dim CONF As Worksheet
Set CONF = Worksheets("Configuration")
'Remplacement du tag [year] par la date
...End Function
Essaie plus simplement un With et cela devrait aller
Function ConversionTags(Cellule As Range, ChaIne As String) As String
With Worksheets("Configuration")
'Remplacement du tag [year] par la date
'....
End With
End Function
Ensuite évidemment modifier ainsi ce qui y fait appel>>>> ChaIne = Replace(ChaIne, "[assoc]", CONF.Cells(26, 5).Value, 1,
ChaIne = Replace(ChaIne, "[assoc]", .Cells(26, 5).Value, 1,
'....
Sinon il y avait aussi cette instruction
With ObjMail
mais effectivement elle sest en dehors de la fonction
d'ailleurs je ne saisis pas bien ce qu'elle fait là toute seule ..Mais, d'après l'aide, j'ai cru comprendre..
Une procédure (sub) permet d'effecuer des actions, (autrement dit)
un traitement.
Une fonction (Function) sert précisément à renvoyer des données
dans une cellule.... Comment puis-je faire alors ?
Une fois ta fonction écrite, tu dois la placer dans une cellule
elle y renverra le résultat.
Cordialement.
lStephBonjour,
Je n'ai pas compris ta réponse. Je ne modifie aucunement les donn ées
dans les cellules. Plutôt je récupère des données pour faire un
traitement.
Mais, d'après l'aide, j'ai cru comprendre qu'une fonction sub ne pe ut
pas renvoyer de données. Comment puis-je faire alors ?
On 31 mar, 23:24, LSteph wrote:Bonsoir,
Normal.
Une fonction, function, renvoie un résultat, et ne peut effectuer
d'actions. Il faut une procédure, sub, pour effectuer une action.
Dans ta fonction tu peux faire des substitutions de texte dans des
variables mais pas modifier des cellules ou des plages de feuille de calcul.
Cordialement.
lStephBonjour,
J'ai une fonction qui permet de changer des mots clés dans un tex te et
le renvoit. Le problème est que je n'arrive pas à faire fonctio nner la
fonction.
Quand je mets les appels en direct, tout fonctionne. Mais, dès qu e je
les mets dans une fonction, ca ne vient plus. d'ou vient le probl ème
selon vous ?
Voici mon code :
Function ConversionTags(Cellule As Range, ChaIne As String) As Stri ng
Dim CONF As Worksheet
Set CONF = Worksheets("Configuration")
'Remplacement du tag [year] par la date
ChaIne = Replace(ChaIne, "[year]", Year(Now()), 1, -1,
vbTextCompare)
'Remplacement du tag [assoc] par le nom de l'association
ChaIne = Replace(ChaIne, "[assoc]", CONF.Cells(26, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ChaIne = Replace(ChaIne, "[RespAdh]", CONF.Cells(27, 5).Value , 1,
-1, vbTextCompare)
'Remplacement du tag [PreAdh] par le prénom de l'adhérent
ChaIne = Replace(ChaIne, "[PreAdh]", Cellule.Offset(0, -9).Va lue,
1, -1, vbTextCompare)
'Remplacement du tag [NomAdh] par le nom de l'adhérent
ChaIne = Replace(ChaIne, "[NomAdh]", Cellule.Offset(0, -8).Va lue,
1, -1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ConversionTags = Replace(ChaIne, "[RespNom]", CONF.Cells(28,
5).Value, 1, -1, vbTextCompare)
End Function
With ObjMail
....
.Subject = ConversionTags(cell.Address, CONF.Cells(4, 12).Value)
....
End With- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bon, j'ai trouvé la source du problème. Ca venait d'un on "error goto
next" qui supprimait l'erreur que j'avais. J'avais mal renvoyé les
données qu'il fallait dans la def de function.
Merci encore.
On 2 avr, 16:56, "dunkelzahn" wrote:Bonjour,
Merci de ton aide apportée. Je n'ai pas encore tout compris et je vais
étudier tout cela attentivement.
Ce que je veux faire en fait est d'envoyer un mail "personnalisé" à
chaque personne d'une liste déterminée. Pour le personnaliser,
j'utilise des tags ou mots clés. Le souci est que je l'utilise en
plusieurs endroits et je me vois mal répéter mon code à chaque fois.
Pour cette raison que j'utilise function (au départ je voulais
utiliser sub mais j'ai vu qu'il ne renvoit aucune donnée).Une sorte
d'alias ou de DLL. Mais d'après ce que tu viens de me dire, j'ai
l'impression que je fais fausse route avec function. Il faut passer
par un sub semble t il.
Pour le set CONF, je n'étais pas sûr qu'il renvoit ces variables alors
qu'ils sont déjà déterminés dans la fonction ou function est appelée.
Mais comme je travaille sur plusieurs feuilles....
On 1 avr, 11:56, LSteph wrote:Bonjour,Je n'ai pas compris ta réponse. Je ne modifie aucunement les données
J'avais lu un peu vite mais qd même,suggestion:
Au lieu d'assigner ta feuille à une variable objet
Set CONFFunction ConversionTags(Cellule As Range, ChaIne As String) As String
Dim CONF As Worksheet
Set CONF = Worksheets("Configuration")
'Remplacement du tag [year] par la date
...End Function
Essaie plus simplement un With et cela devrait aller
Function ConversionTags(Cellule As Range, ChaIne As String) As String
With Worksheets("Configuration")
'Remplacement du tag [year] par la date
'....
End With
End Function
Ensuite évidemment modifier ainsi ce qui y fait appel>>>> ChaIne = Replace(ChaIne, "[assoc]", CONF.Cells(26, 5).Value, 1,
ChaIne = Replace(ChaIne, "[assoc]", .Cells(26, 5).Value, 1,
'....
Sinon il y avait aussi cette instruction
With ObjMail
mais effectivement elle sest en dehors de la fonction
d'ailleurs je ne saisis pas bien ce qu'elle fait là toute seule ..Mais, d'après l'aide, j'ai cru comprendre..
Une procédure (sub) permet d'effecuer des actions, (autrement dit)
un traitement.
Une fonction (Function) sert précisément à renvoyer des données
dans une cellule.... Comment puis-je faire alors ?
Une fois ta fonction écrite, tu dois la placer dans une cellule
elle y renverra le résultat.
Cordialement.
lStephBonjour,
Je n'ai pas compris ta réponse. Je ne modifie aucunement les données
dans les cellules. Plutôt je récupère des données pour faire un
traitement.
Mais, d'après l'aide, j'ai cru comprendre qu'une fonction sub ne peut
pas renvoyer de données. Comment puis-je faire alors ?
On 31 mar, 23:24, LSteph wrote:Bonsoir,
Normal.
Une fonction, function, renvoie un résultat, et ne peut effectuer
d'actions. Il faut une procédure, sub, pour effectuer une action.
Dans ta fonction tu peux faire des substitutions de texte dans des
variables mais pas modifier des cellules ou des plages de feuille de calcul.
Cordialement.
lStephBonjour,
J'ai une fonction qui permet de changer des mots clés dans un texte et
le renvoit. Le problème est que je n'arrive pas à faire fonctionner la
fonction.
Quand je mets les appels en direct, tout fonctionne. Mais, dès que je
les mets dans une fonction, ca ne vient plus. d'ou vient le problème
selon vous ?
Voici mon code :
Function ConversionTags(Cellule As Range, ChaIne As String) As String
Dim CONF As Worksheet
Set CONF = Worksheets("Configuration")
'Remplacement du tag [year] par la date
ChaIne = Replace(ChaIne, "[year]", Year(Now()), 1, -1,
vbTextCompare)
'Remplacement du tag [assoc] par le nom de l'association
ChaIne = Replace(ChaIne, "[assoc]", CONF.Cells(26, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ChaIne = Replace(ChaIne, "[RespAdh]", CONF.Cells(27, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [PreAdh] par le prénom de l'adhérent
ChaIne = Replace(ChaIne, "[PreAdh]", Cellule.Offset(0, -9).Value,
1, -1, vbTextCompare)
'Remplacement du tag [NomAdh] par le nom de l'adhérent
ChaIne = Replace(ChaIne, "[NomAdh]", Cellule.Offset(0, -8).Value,
1, -1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ConversionTags = Replace(ChaIne, "[RespNom]", CONF.Cells(28,
5).Value, 1, -1, vbTextCompare)
End Function
With ObjMail
....
.Subject = ConversionTags(cell.Address, CONF.Cells(4, 12).Value)
....
End With- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bon, j'ai trouvé la source du problème. Ca venait d'un on "error goto
next" qui supprimait l'erreur que j'avais. J'avais mal renvoyé les
données qu'il fallait dans la def de function.
Merci encore.
On 2 avr, 16:56, "dunkelzahn" <dunkelzahn.dunkelz...@gmail.com> wrote:
Bonjour,
Merci de ton aide apportée. Je n'ai pas encore tout compris et je vais
étudier tout cela attentivement.
Ce que je veux faire en fait est d'envoyer un mail "personnalisé" à
chaque personne d'une liste déterminée. Pour le personnaliser,
j'utilise des tags ou mots clés. Le souci est que je l'utilise en
plusieurs endroits et je me vois mal répéter mon code à chaque fois.
Pour cette raison que j'utilise function (au départ je voulais
utiliser sub mais j'ai vu qu'il ne renvoit aucune donnée).Une sorte
d'alias ou de DLL. Mais d'après ce que tu viens de me dire, j'ai
l'impression que je fais fausse route avec function. Il faut passer
par un sub semble t il.
Pour le set CONF, je n'étais pas sûr qu'il renvoit ces variables alors
qu'ils sont déjà déterminés dans la fonction ou function est appelée.
Mais comme je travaille sur plusieurs feuilles....
On 1 avr, 11:56, LSteph <lecocost...@frite.fr> wrote:
Bonjour,
Je n'ai pas compris ta réponse. Je ne modifie aucunement les données
J'avais lu un peu vite mais qd même,suggestion:
Au lieu d'assigner ta feuille à une variable objet
Set CONF
Function ConversionTags(Cellule As Range, ChaIne As String) As String
Dim CONF As Worksheet
Set CONF = Worksheets("Configuration")
'Remplacement du tag [year] par la date
...
End Function
Essaie plus simplement un With et cela devrait aller
Function ConversionTags(Cellule As Range, ChaIne As String) As String
With Worksheets("Configuration")
'Remplacement du tag [year] par la date
'....
End With
End Function
Ensuite évidemment modifier ainsi ce qui y fait appel>>>> ChaIne = Replace(ChaIne, "[assoc]", CONF.Cells(26, 5).Value, 1,
ChaIne = Replace(ChaIne, "[assoc]", .Cells(26, 5).Value, 1,
'....
Sinon il y avait aussi cette instruction
With ObjMail
mais effectivement elle sest en dehors de la fonction
d'ailleurs je ne saisis pas bien ce qu'elle fait là toute seule ..
Mais, d'après l'aide, j'ai cru comprendre..
Une procédure (sub) permet d'effecuer des actions, (autrement dit)
un traitement.
Une fonction (Function) sert précisément à renvoyer des données
dans une cellule.
... Comment puis-je faire alors ?
Une fois ta fonction écrite, tu dois la placer dans une cellule
elle y renverra le résultat.
Cordialement.
lSteph
Bonjour,
Je n'ai pas compris ta réponse. Je ne modifie aucunement les données
dans les cellules. Plutôt je récupère des données pour faire un
traitement.
Mais, d'après l'aide, j'ai cru comprendre qu'une fonction sub ne peut
pas renvoyer de données. Comment puis-je faire alors ?
On 31 mar, 23:24, LSteph <lecocost...@frite.fr> wrote:
Bonsoir,
Normal.
Une fonction, function, renvoie un résultat, et ne peut effectuer
d'actions. Il faut une procédure, sub, pour effectuer une action.
Dans ta fonction tu peux faire des substitutions de texte dans des
variables mais pas modifier des cellules ou des plages de feuille de calcul.
Cordialement.
lSteph
Bonjour,
J'ai une fonction qui permet de changer des mots clés dans un texte et
le renvoit. Le problème est que je n'arrive pas à faire fonctionner la
fonction.
Quand je mets les appels en direct, tout fonctionne. Mais, dès que je
les mets dans une fonction, ca ne vient plus. d'ou vient le problème
selon vous ?
Voici mon code :
Function ConversionTags(Cellule As Range, ChaIne As String) As String
Dim CONF As Worksheet
Set CONF = Worksheets("Configuration")
'Remplacement du tag [year] par la date
ChaIne = Replace(ChaIne, "[year]", Year(Now()), 1, -1,
vbTextCompare)
'Remplacement du tag [assoc] par le nom de l'association
ChaIne = Replace(ChaIne, "[assoc]", CONF.Cells(26, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ChaIne = Replace(ChaIne, "[RespAdh]", CONF.Cells(27, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [PreAdh] par le prénom de l'adhérent
ChaIne = Replace(ChaIne, "[PreAdh]", Cellule.Offset(0, -9).Value,
1, -1, vbTextCompare)
'Remplacement du tag [NomAdh] par le nom de l'adhérent
ChaIne = Replace(ChaIne, "[NomAdh]", Cellule.Offset(0, -8).Value,
1, -1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ConversionTags = Replace(ChaIne, "[RespNom]", CONF.Cells(28,
5).Value, 1, -1, vbTextCompare)
End Function
With ObjMail
....
.Subject = ConversionTags(cell.Address, CONF.Cells(4, 12).Value)
....
End With- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bon, j'ai trouvé la source du problème. Ca venait d'un on "error goto
next" qui supprimait l'erreur que j'avais. J'avais mal renvoyé les
données qu'il fallait dans la def de function.
Merci encore.
On 2 avr, 16:56, "dunkelzahn" wrote:Bonjour,
Merci de ton aide apportée. Je n'ai pas encore tout compris et je vais
étudier tout cela attentivement.
Ce que je veux faire en fait est d'envoyer un mail "personnalisé" à
chaque personne d'une liste déterminée. Pour le personnaliser,
j'utilise des tags ou mots clés. Le souci est que je l'utilise en
plusieurs endroits et je me vois mal répéter mon code à chaque fois.
Pour cette raison que j'utilise function (au départ je voulais
utiliser sub mais j'ai vu qu'il ne renvoit aucune donnée).Une sorte
d'alias ou de DLL. Mais d'après ce que tu viens de me dire, j'ai
l'impression que je fais fausse route avec function. Il faut passer
par un sub semble t il.
Pour le set CONF, je n'étais pas sûr qu'il renvoit ces variables alors
qu'ils sont déjà déterminés dans la fonction ou function est appelée.
Mais comme je travaille sur plusieurs feuilles....
On 1 avr, 11:56, LSteph wrote:Bonjour,Je n'ai pas compris ta réponse. Je ne modifie aucunement les données
J'avais lu un peu vite mais qd même,suggestion:
Au lieu d'assigner ta feuille à une variable objet
Set CONFFunction ConversionTags(Cellule As Range, ChaIne As String) As String
Dim CONF As Worksheet
Set CONF = Worksheets("Configuration")
'Remplacement du tag [year] par la date
...End Function
Essaie plus simplement un With et cela devrait aller
Function ConversionTags(Cellule As Range, ChaIne As String) As String
With Worksheets("Configuration")
'Remplacement du tag [year] par la date
'....
End With
End Function
Ensuite évidemment modifier ainsi ce qui y fait appel>>>> ChaIne = Replace(ChaIne, "[assoc]", CONF.Cells(26, 5).Value, 1,
ChaIne = Replace(ChaIne, "[assoc]", .Cells(26, 5).Value, 1,
'....
Sinon il y avait aussi cette instruction
With ObjMail
mais effectivement elle sest en dehors de la fonction
d'ailleurs je ne saisis pas bien ce qu'elle fait là toute seule ..Mais, d'après l'aide, j'ai cru comprendre..
Une procédure (sub) permet d'effecuer des actions, (autrement dit)
un traitement.
Une fonction (Function) sert précisément à renvoyer des données
dans une cellule.... Comment puis-je faire alors ?
Une fois ta fonction écrite, tu dois la placer dans une cellule
elle y renverra le résultat.
Cordialement.
lStephBonjour,
Je n'ai pas compris ta réponse. Je ne modifie aucunement les données
dans les cellules. Plutôt je récupère des données pour faire un
traitement.
Mais, d'après l'aide, j'ai cru comprendre qu'une fonction sub ne peut
pas renvoyer de données. Comment puis-je faire alors ?
On 31 mar, 23:24, LSteph wrote:Bonsoir,
Normal.
Une fonction, function, renvoie un résultat, et ne peut effectuer
d'actions. Il faut une procédure, sub, pour effectuer une action.
Dans ta fonction tu peux faire des substitutions de texte dans des
variables mais pas modifier des cellules ou des plages de feuille de calcul.
Cordialement.
lStephBonjour,
J'ai une fonction qui permet de changer des mots clés dans un texte et
le renvoit. Le problème est que je n'arrive pas à faire fonctionner la
fonction.
Quand je mets les appels en direct, tout fonctionne. Mais, dès que je
les mets dans une fonction, ca ne vient plus. d'ou vient le problème
selon vous ?
Voici mon code :
Function ConversionTags(Cellule As Range, ChaIne As String) As String
Dim CONF As Worksheet
Set CONF = Worksheets("Configuration")
'Remplacement du tag [year] par la date
ChaIne = Replace(ChaIne, "[year]", Year(Now()), 1, -1,
vbTextCompare)
'Remplacement du tag [assoc] par le nom de l'association
ChaIne = Replace(ChaIne, "[assoc]", CONF.Cells(26, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ChaIne = Replace(ChaIne, "[RespAdh]", CONF.Cells(27, 5).Value, 1,
-1, vbTextCompare)
'Remplacement du tag [PreAdh] par le prénom de l'adhérent
ChaIne = Replace(ChaIne, "[PreAdh]", Cellule.Offset(0, -9).Value,
1, -1, vbTextCompare)
'Remplacement du tag [NomAdh] par le nom de l'adhérent
ChaIne = Replace(ChaIne, "[NomAdh]", Cellule.Offset(0, -8).Value,
1, -1, vbTextCompare)
'Remplacement du tag [RespAdh] par l'adresse de la personne
ConversionTags = Replace(ChaIne, "[RespNom]", CONF.Cells(28,
5).Value, 1, -1, vbTextCompare)
End Function
With ObjMail
....
.Subject = ConversionTags(cell.Address, CONF.Cells(4, 12).Value)
....
End With- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -