Copie de certaines cellules

DANS FEUILLE BASE : Nouvelle COLONNE IDENTIFIANTS CLIENTS ==> Génération d'un chiffre sous la forme 00001 00002 a chaque nouvelle saisie. donc il faut supprimer les lignes existantes je pense.

Ok. La génération du chiffre se fera sur base de la création de chaque nouvelle ligne. Sauf avis contraire, je mettrai l'ID en colonne A.

Par contre si vous supprimez une entreprise, on fait quoi ? L'ID doit disparaitre ? et si oui, la ligne aussi ?

Autre point, pourquoi avez-vous deux fois la même macro mail dans le fichier ? (une fois dans BASE et une fois dans SYNTHESE)

RE,

Bonne question, non l'ID Ne doit pas disparaître enfait l'idéal serait d'avoir une feuille BASE 2 Avec toutes les suppressions. Sinon, on le supprime mais la prochaine entreprise n'aura pas le même ID que celui supprimé. Car ça enlève le principe de l'identifiant UNIQUE sinon. Donc oui la ligne se supprime mais l'ID reste pour l'entreprise supprimée.

Je vous envoie le fichier sans macro mail (le votre je crois) ce sera plus simple et vous vous y repèrerez mieux (j'ai fais des tests sur un autre pour les macros mails)

16outilcrm2805-3.xlsm (73.89 Ko)

Bonjour

j'ai adapté le fichier pour l'ID
Pour ce qui concerne les mails, avez-vous testé votre macro car cela semble être bon

Crdlt

Bonjour !

Super merci beaucoup! Oui la macro est bonne mais le problème est que les messages ne sont pas personnalisés car ils sont prédéfénis. Je me demandais si on pouvait personnaliser le message.

Je me disais donc que l'idéal serait que la macro ouvre l'appli Outlook avec directement tous les mails dans destinataire.

image

toutes les adresses se mettent automatiquement dans la bonne case.

J'ai trouvé aucune fonction pour le faire d'où ma question :)

Essayez plutôt votre code mail comme ceci :

Sub EnvoiMail()
Dim listedest()
Dim i As Long
Dim dest
Dim oMsgApp As Outlook.Application
Dim oMsg As Outlook.MailItem
Dim slistedest As String, sFichier As String

sFichier = Application.GetOpenFilename(, , "Sélectionner le fichier à envoyer")
If sFichier = "" Then
  MsgBox "Aucun fichier sélectionné, Opération annulée"
  Exit Sub
End If

Set oMsgApp = New Outlook.Application

listedest() = Range("TBase[Contact Mail]")
slistedest = ""

For i = LBound(listedest(), 1) To UBound(listedest(), 1)
    dest = Range("TBase[Contact Mail]").Item(i)
    If dest <> "" Then slistedest = dest & ";" & slistedest
Next i

Set oMsg = oMsgApp.CreateItem(olMailItem)

With oMsg
  '.To = votre adresse mail
  .CCi = slistedest
  .Attachments.Add sFichier
  .Subject = "Fichier de la semaine"
  .Body = "Veuillez trouver ci-joint le fichier de la semaine." & Chr(10) & Chr(13) & "Bonne journée"
  .Send
End With

oMsgApp.Quit
Set oMsgApp = Nothing
Set oMsg = Nothing
MsgBox "Mail envoyé"

End Sub

A noter que :

- je vous conseille de placer votre adresse perso dans TO et de mettre tous les destinataires en CCi. J'imagine que vous n'avez pas envie que toutes les entreprises puissent voir vos client et prospets.... en tant que Commercial, ce serait se tirer une balle dans le pied, je pense
- il serait peut être plus judicieux de remplacer SEND par DISPLAY. Cela permet de vérifier que tout est ok dans votre mailing

Si ok, je vous placerai le fichier avec les modifications et cette macro mail

image

re, Voici le message d'erreur.

Le problème dans ce VBA c'est le .Body j'aimerais personnaliser le message qui n'est jamais le même. Ou sinon il faut toujours modifier via le VBA?

Oui ahah bien vu il faut tout mettre en CCi

Et la j'imagine qu'il faut obligatoirement envoyer une Pièce Jointe si jamais ont veut pas il faudrait un autre bouton sans le code pour sélectionner un fichier ?

Le problème dans ce VBA c'est le .Body j'aimerais personnaliser le message qui n'est jamais le même. Ou sinon il faut toujours modifier via le VBA?

On pourrait utiliser une INPUTBOX dans lequel il faudrait mettre le message.

Voici le message d'erreur.

Le code s'arrête sur quelle ligne ?

Et la j'imagine qu'il faut obligatoirement envoyer une Pièce Jointe si jamais ont veut pas il faudrait un autre bouton sans le code pour sélectionner un fichier ?

Non pour le bouton. Oui pour la pièce jointe sinon le code s'arrête. Si vous voulez avoir le choix, on peut aussi peut ajouter une boite à message qui demande si vous voulez joindre un fichier ou non

image

Bonjour !

Voila la ligne, et ok pour le INTPUTBOX bonne idée après donc mon idée d'ouverture de l'application genre un ".OpenOutlook" (lol) ça existe pas?

et pour la boite de message OUI/NON pour fichier c'est parfait comme ça il y a toujours qu'un bouton ! :)

Pour votre ligne surlignée en jaune, si vous mettez ceci juste avant cette ligne --> "Msgbox slistedest"

cela vous renvoie quoi ?

Sinon, votre Cci est actif dans Outlook ?

je vous met le fichiers de la macro la je comprends plus pourquoi ça fonctionne pas -_- (j'ai essayé avec le msgbox aussi)

et j'ai mis la fonction CCi qui était pas active effectivement.

le message box vous donne quoi comme retour ?

Normalement l'objet Outllook dans l'editeur VBA - Outils - Reference est activé, mais vérifiez toujours ?

Essayez aussi en enlevant AS String dans la déclaration de variable

Dim slistedest As String

Aussi une chose, votre macro est dans la feuille Paramètres, pourquoi vous ne la mettez pas dans le module programmes

pour faire des tests je trouve ça plus rapide mais je vais la mettre en programme.

Normalement oui c'est dans l'editeur VBA je vais revérifier.

image image image

tout est activé CCi sur l'app outlook, la référence est activé outlook 1.16 .

Vous avez essayé en désactivant le as string ?

Yep ! je vous file le fichier mais j'imagine que vous n'avez pas l'app outlook ducoup :/

6outil1006.xlsm (76.74 Ko)

Il y a quoi comme différence avec le précédent fichier ??

Cela alourdit le forum inutilement et je ne m'y retrouve plus là

Je n'ai pas outlook effectivement

Puis vous ne répondez pas à la question que j'ai posée au sujet du as string

edit : autre test à faire peut être remplacer .cci par .to (Attention à désactiver votre SEND plus bas, remplacez le par DISPLAY)

LE VBA n'est pas le même et est dans programme désolé

j'ai enleve / Remis le As string et la même chose !

EDIT : ça fonctionne pour le .To super bien sauf qu'il faudrait que les mails soient masqués d'ou le fait de les mettres en copie comme vous l'avez très justement suggéré il y a quelques jours. effectivement je viens de voir la fonction .CCi elle existe? j'ai l'impression que c'est ça qui penche !

EDIT 2: Bonne nouvelle outlook s'ouvre avant d'envoyer donc on peut directement modifier le corp de mail pas besoin de Inputbox ! Ensuite ça ne s'applique pas pour les filtres et c'est ce que je craignais un peu ...

effectivement je viens de voir la fonction .CCi elle existe? j'ai l'impression que c'est ça qui penche !

Oui cela existe.

Lorsque vous ouvrez une fenêtre outlook pour écrire un nouveau message, vous devez voir le CCi juste en dessous de CC. Donc au dessous de OBJET

Bonne nouvelle outlook s'ouvre avant d'envoyer donc on peut directement modifier le corp de mail pas besoin de Inputbox

Ok c'est mieux comme cela.

Oui elle est bien là activé dans outlook et visible, c'est juste que la fonction sur le VBA la ".CCi" on dirait qu'il ne fonctionne pas! peut être qu'il faut que je remplisse le .to mon adresse mail ?

on dirait qu'il ne fonctionne pas! peut être qu'il faut que je remplisse le .to mon adresse mail ?

En principe non, mais en voyant TO plutot que .CCi mettez un peu .BCC à la place dans le code VBA

Bonjour, ouais j'ai pas répondu hier mais même problème avec BCC !

image

je ne comprends pas sur tout les sites emailing le .BCC fonctionne quelque chose de bête doit nous echapper

EDIT : Le .CC Fonctionne c'est vraiment étrange la.

EDIT 2: c'est bon j'ai réussi :) Le problème mtn c'est que ça envoie toutes les lignes de tous les mails ^^

Rechercher des sujets similaires à "copie certaines"