A voir également:
- VB et les adresses mails
- Vb - Télécharger - Langages
- Vb cable - Télécharger - Audio & Musique
- Itinéraire google map entre deux adresses - Guide
- Mes adresses mail - Forum Gmail
- Comment supprimer les adresses mails enregistrées automatiquement - Forum MacOS
21 réponses
Utilisateur anonyme
6 avril 2004 à 14:43
6 avril 2004 à 14:43
A pas tout compris ???
Tu veux quoi : un message par adresse trouvée sur chaque ligne, ou un message unique envoyé à toutes les adresses trouvées ?
Tu veux quoi : un message par adresse trouvée sur chaque ligne, ou un message unique envoyé à toutes les adresses trouvées ?
C'est un message unique envoyé à toutes les adresses trouvées
mais la solution que j'ai trouvé pour que dans chaque mail n'apparaisse que les 2 adresses de la même ligne
c'est d'envoyer un mail différent à chaque adresse
Mais j'ai ce Pb (cf ci dessus):
Pb avec les cellules vides
Pb qd il rencontre une autre adresse il l'ajoute dan le mail au lieu de creer un nouveau mail ?
Merci
mais la solution que j'ai trouvé pour que dans chaque mail n'apparaisse que les 2 adresses de la même ligne
c'est d'envoyer un mail différent à chaque adresse
Mais j'ai ce Pb (cf ci dessus):
Pb avec les cellules vides
Pb qd il rencontre une autre adresse il l'ajoute dan le mail au lieu de creer un nouveau mail ?
Merci
Utilisateur anonyme
6 avril 2004 à 15:33
6 avril 2004 à 15:33
Bon, pour qu'il te crée un nouveau mail à chaque adresse trouvée, il faut que la création de message se fasse dans ta boucle, pas en dehors.
Ce qui, concrétement, te donne ça :
@+
Ce qui, concrétement, te donne ça :
Dim obj As String Dim mes As String Dim myStr As String Dim myStr1 As String obj = InputBox("Objet du message") mes = InputBox("Entrer le message") For i = 5 To 100 If InStr(myStr, Trim(Cells(i, 13))) = 0 Then myStr = myStr & Cells(i, 13) & ";" If InStr(myStr1, Trim(Cells(i, 17))) = 0 Then myStr1 = myStr1 & Cells(i, 17) & ";" End If myStr = Left(myStr, Len(myStr)) myStr1 = Left(myStr1, Len(myStr1)) adresse = myStr copie = myStr1 URLto = "mailto:" & adresse & "?subject=" & obj & "&body=" & mes & "&Cc=" & copie ActiveWorkbook.FollowHyperlink Address:=URLto End If Next
@+
Merci ton idée est bonne
mais le Pb c'est qu'il ajoute les adresses mails
pae ex: il va envoyer à : Cell(1,13)+Cell(2,13)
ave en copie: Cell(1,17)+Cell(2,17)
Et je voudrai qu'il fasse 2 mails différents
De plus qd il tombe sur une cellule vide, il essaie d'envoyer un mail
Merci
mais le Pb c'est qu'il ajoute les adresses mails
pae ex: il va envoyer à : Cell(1,13)+Cell(2,13)
ave en copie: Cell(1,17)+Cell(2,17)
Et je voudrai qu'il fasse 2 mails différents
De plus qd il tombe sur une cellule vide, il essaie d'envoyer un mail
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
6 avril 2004 à 15:52
6 avril 2004 à 15:52
Merde, je viens d'essayer ma soluce et c une grosse connerie.
Y'a un truc que je ne comprends pas, pourkoi tu rajoutes un ";" à chaque fois si c pour envoyer autant de message que d'adresse ???
Voili, j'ai refait et là ça marche :
@+
Y'a un truc que je ne comprends pas, pourkoi tu rajoutes un ";" à chaque fois si c pour envoyer autant de message que d'adresse ???
Voili, j'ai refait et là ça marche :
Sub SendMails() Dim obj As String Dim mes As String Dim myStr As String Dim myStr1 As String obj = InputBox("Objet du message") mes = InputBox("Entrer le message") For i = 4 To 10 If InStr("@", Trim(Cells(i, 13))) = 0 Then myStr = Cells(i, 13) If InStr("@", Trim(Cells(i, 17))) = 0 Then myStr1 = Cells(i, 17) End If myStr = Left(myStr, Len(myStr)) myStr1 = Left(myStr1, Len(myStr1)) adresse = myStr copie = myStr1 URLto = "mailto:" & adresse & "?subject=" & obj & "&body=" & mes & "&Cc=" & copie ActiveWorkbook.FollowHyperlink Address:=URLto myStr = "" myStr1 = "" End If Next End Sub
@+
Merci j'ai essayé , ça marche.
Dis moi est ce que tu saurais quel code rajouter de manière à ce que qd soit la ligne 13 soit la ligne 17 est vide il n'essaie pas d'envoyer un mail ?
En fait les ";" c'est parceque je voulai automatiser cette opération mais je ne pense pas que ce soit posible en envoyant un mail à chaque adresse ?
Merci
Dis moi est ce que tu saurais quel code rajouter de manière à ce que qd soit la ligne 13 soit la ligne 17 est vide il n'essaie pas d'envoyer un mail ?
En fait les ";" c'est parceque je voulai automatiser cette opération mais je ne pense pas que ce soit posible en envoyant un mail à chaque adresse ?
Merci
Utilisateur anonyme
6 avril 2004 à 16:28
6 avril 2004 à 16:28
Simple, il te faut juste concaténer tes conditions en une seule :
@+
For i = 4 To 10 If InStr("@", Trim(Cells(i, 13))) = 0 And InStr("@", Trim(Cells(i, 17))) = 0 Then myStr = Cells(i, 13) myStr1 = Cells(i, 17) myStr = Left(myStr, Len(myStr)) myStr1 = Left(myStr1, Len(myStr1)) adresse = myStr copie = myStr1 URLto = "mailto:" & adresse & "?subject=" & obj & "&body=" & mes & "&Cc=" & copie ActiveWorkbook.FollowHyperlink Address:=URLto myStr = "" myStr1 = "" End If Next
@+
Je n'ai pas réussi avec ta méthode mais
En fait le mieux est d'enlever 2 lignes de code à la fin:
myStr=""
myStr1=""
Ce qui permet d'enlever tous les mails ou l'adresse ou la copie est vide.
Le problème c 'est qu'il prend comme copie la dernière adresse(colonne17) utlisée avec une adresse (colonne13) valide utlisée si la cellule de la colonne 17 est vide.
En fait le mieux est d'enlever 2 lignes de code à la fin:
myStr=""
myStr1=""
Ce qui permet d'enlever tous les mails ou l'adresse ou la copie est vide.
Le problème c 'est qu'il prend comme copie la dernière adresse(colonne17) utlisée avec une adresse (colonne13) valide utlisée si la cellule de la colonne 17 est vide.
Utilisateur anonyme
6 avril 2004 à 17:27
6 avril 2004 à 17:27
Bizazrre, ça marche chez moi...
Je ne pense pas qu'il faille enlever ces 2 lignes, au contraire.
La logique de ce que je t'ai mis c'est :
on regarde si les cellules (i,13) et (i,17) contiennent qqc
si oui alors on crée le message
sinon on fait rien
on remet a 0 les variables
on continue depuis le début à la ligne suivante
Ca doit marcher...
@+
Je ne pense pas qu'il faille enlever ces 2 lignes, au contraire.
La logique de ce que je t'ai mis c'est :
on regarde si les cellules (i,13) et (i,17) contiennent qqc
si oui alors on crée le message
sinon on fait rien
on remet a 0 les variables
on continue depuis le début à la ligne suivante
Ca doit marcher...
@+
Sinon je voudrai indiquer une condition: qu'il ne lance pas le mail si la couleur d'écriture des adresses dans "mystr " est noire ?
Utilisateur anonyme
7 avril 2004 à 11:32
7 avril 2004 à 11:32
Il suffit de rajouter une condition :
if Trim(Cells(i, 33).Font.ColorIndex)<>1 then
.......
@+
if Trim(Cells(i, 33).Font.ColorIndex)<>1 then
.......
@+
La couleur noire est codée par le 1 ?
Jai essayé ce code et dans ma colonne , j'ai des adresses en noir qu'il essaie de lancer qd même ?
Jai essayé ce code et dans ma colonne , j'ai des adresses en noir qu'il essaie de lancer qd même ?
Ci-dessous mon code, avec la condition de couleur mais elle n'agit pas sur le résultat ?
Sub SendMail()
Dim obj As String
Dim mes As String
Dim myStr As String
Dim myStr1 As String
obj = InputBox("Objet du message")
mes = InputBox("Entrer le message")
For i = 5 To 130
If InStr(myStr, Trim(Cells(i, 9))) = 0 Then
If Trim(Cells(i, 9).Font.ColorIndex) <> 1 Then
myStr = Cells(i, 9)
If InStr(myStr1, Trim(Cells(i, 6))) = 0 Then
myStr1 = Cells(i, 6)
End If
End If
myStr = Left(myStr, Len(myStr))
myStr1 = Left(myStr1, Len(myStr1))
adresse = myStr
copie = myStr1
URLto = "mailto:" & adresse & "?subject=" & obj & "&body=" & mes & "&Cc=" & copie
ActiveWorkbook.FollowHyperlink Address:=URLto
myStr1 = ""
End If
Next
End Sub
Sub SendMail()
Dim obj As String
Dim mes As String
Dim myStr As String
Dim myStr1 As String
obj = InputBox("Objet du message")
mes = InputBox("Entrer le message")
For i = 5 To 130
If InStr(myStr, Trim(Cells(i, 9))) = 0 Then
If Trim(Cells(i, 9).Font.ColorIndex) <> 1 Then
myStr = Cells(i, 9)
If InStr(myStr1, Trim(Cells(i, 6))) = 0 Then
myStr1 = Cells(i, 6)
End If
End If
myStr = Left(myStr, Len(myStr))
myStr1 = Left(myStr1, Len(myStr1))
adresse = myStr
copie = myStr1
URLto = "mailto:" & adresse & "?subject=" & obj & "&body=" & mes & "&Cc=" & copie
ActiveWorkbook.FollowHyperlink Address:=URLto
myStr1 = ""
End If
Next
End Sub
Utilisateur anonyme
7 avril 2004 à 13:58
7 avril 2004 à 13:58
Salut !
Le NOIR est bien codé sur 1, mais si c'est noir.
Si ça ne passe pas, il s'agit vraissemblablement de la couleur AUTOMATIQUE d'excel, définie elle sur -4105 (moins 4105).
@+
Le NOIR est bien codé sur 1, mais si c'est noir.
Si ça ne passe pas, il s'agit vraissemblablement de la couleur AUTOMATIQUE d'excel, définie elle sur -4105 (moins 4105).
@+
Il s'agit en effet du code -4105
Par contre je rencontre un Pb très bizarre:
Il envoie en mail avec uniquement l'adresse 9 (sans copie) autant de fois qu'il y a une adresse dans la couleur auto(-4105)
cad que si j'ai 4 adresses en couleur auto de suite, ensuite il va envoyer 4 mails avec juste l'adresse 9 (sans copie) avant d'envoyer le mail avec la copie ???????
(Ce n'est pas un Pb de couleur car c'est la même chose avce d'autres couleurs)
Par contre je rencontre un Pb très bizarre:
Il envoie en mail avec uniquement l'adresse 9 (sans copie) autant de fois qu'il y a une adresse dans la couleur auto(-4105)
cad que si j'ai 4 adresses en couleur auto de suite, ensuite il va envoyer 4 mails avec juste l'adresse 9 (sans copie) avant d'envoyer le mail avec la copie ???????
(Ce n'est pas un Pb de couleur car c'est la même chose avce d'autres couleurs)
Utilisateur anonyme
8 avril 2004 à 10:27
8 avril 2004 à 10:27
Tu peux remettre tout ton code, ou le mieux, c que tu me l'envoies par mail avec la feuille de calcul, voir ou ça merde...
Adresse : voir profil.
Adresse : voir profil.
Merci HDU, en fait ce sont ces lignes la qui n'allaient pas:
If InStr(myStr, Trim(Cells(i, 9))) = 0 Then
If Trim(Cells(i, 9).Font.ColorIndex) <> -4105 Then
Il fallait mettre:
If InStr(myStr, Trim(Cells(i, 9))) = 0 And Trim(Cells(i, 9).Font.ColorIndex) <> -4105 Then
Sinon il ne prenait pas en compte la première partie de la condition et il envoyait les doublons
Merci
If InStr(myStr, Trim(Cells(i, 9))) = 0 Then
If Trim(Cells(i, 9).Font.ColorIndex) <> -4105 Then
Il fallait mettre:
If InStr(myStr, Trim(Cells(i, 9))) = 0 And Trim(Cells(i, 9).Font.ColorIndex) <> -4105 Then
Sinon il ne prenait pas en compte la première partie de la condition et il envoyait les doublons
Merci
Je voudrai savoir si tu connais la syntaxe pour définir un lien hypertexte.
par ex au lieu d'avoir ça:
If InStr(myStr, Trim(Cells(i, 9))) = 0 And Trim(Cells(i, 9).Font.ColorIndex) <> -4105 Then
je voudrai avoir:
If Instr(myStr,Trim(Cells(i,9)))=0 And 'le mot est un lien hypertexte' Then
cad qu'il n'envoie le mail que si l'adresse est un lien hypertexte
Merci
par ex au lieu d'avoir ça:
If InStr(myStr, Trim(Cells(i, 9))) = 0 And Trim(Cells(i, 9).Font.ColorIndex) <> -4105 Then
je voudrai avoir:
If Instr(myStr,Trim(Cells(i,9)))=0 And 'le mot est un lien hypertexte' Then
cad qu'il n'envoie le mail que si l'adresse est un lien hypertexte
Merci
Utilisateur anonyme
13 avril 2004 à 13:58
13 avril 2004 à 13:58
Comme ça, non.
Mais par contre, tu peux vérifier s'il y a bien un '@'.
Mais par contre, tu peux vérifier s'il y a bien un '@'.