Incorporer date dans mail via userform calendrier

Bonjour à tous,

J'ai utilisé dans mon code un userform( enregistré dans le code comme "DATECLICKED" afin de faire apparaitre un calendrier.

Le but étant, que l'utilisateur sélectionne la date souhaitée et que cette date s'enregistre dans le mail qui sera envoyé par la suite.

Ci joint mon code : le problème est que je n'arrive pas à faire enregistrer "dateclicked" dans le code qui exécutera la macro pour envoyer le mail.

Merci d'avance

Cdt

Sub EnvoiParMailRELANCE1()

    Dim ObjOutlook As New Outlook.Application
    Dim oBjMail
    Dim Nom(1 To 2000) As String
    Dim Mail(1 To 2000) As String
    Dim i As Integer
    Dim FL As Range

    Windows("Fichier executeur").Activate
    Dim OutApp As Object
    Dim OutMail As Object
    Dim cell As Range
    Dim xRg As Object
    Dim MyDate as date

    Application.ScreenUpdating = False

Set FL = Worksheets("Destinataires").[a1]

For i = 2 To 2000
    Nom(i - 1) = FL.Cells(i, 1)
    Mail(i - 1) = FL.Cells(i, 2)
    If FL.Cells(i, 1) = "" Then
    Exit For
    End If
Next i

UserForm3.Show

Windows("Heures non imputées sans macros.xlsx").Activate
Set FL = Worksheets("CMS").[a1]

    For i = 1 To 2000
    If FL.Cells(i, 1) = "" Then
    Exit For
    End If
    For j = 1 To 2000
    If FL.Cells(i, 1) = Nom(j) Then
    FL.Cells(i, 3).Value = "Mail envoyé"

        Set OutApp = CreateObject("Outlook.Application")

        Set OutMail = OutApp.CreateItem(0)

        With OutMail
            .To = Mail(j)
            .Subject = "Rappel heures non imputées"
            .CC = "*****"
            .Body = "Bonjour " & Nom(j) & vbNewLine & vbNewLine & _
                    "Selon le fichier extraction, vous avez au " & DateClicked & FL.Cells(i, 2).Value & " heures non imputées" & vbNewLine & vbNewLine & _
                    "En vous souhaitant bonne réception." & vbNewLine & vbNewLine & _
                    "Nouun"
            .Importance = olImportanceHigh 'importance haute

        .display
     End With
     Set OutMail = Nothing
     Exit For
     End If
      If Nom(j) = "" Then
      FL.Cells(i, 3).Value = "Pas de correspondance"
    Exit For
    End If
    Next j
    Next i

End Sub

NB: en effet voici le code de la macro DateClicked :

Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
   On Error Resume Next
   Dim xRg As Object
   xRg.Value = DateClicked

   Unload Me
End Sub

Bonjour,

Il est de bonne habitude de tout de même informer que l'on a fait la même demande sur un autre forum, ne fusse que par correction vis à vis de celui qui passe du temps à chercher une solution.

Donc pour celui qui veut suivre c'est par ici -->https://www.excel-downloads.com/threads/incorporer-date-dans-mail-via-userform-calendrier.20055810/

Cordialement

Bonjour,

Dans cette macro on ne voit nulle part ou cette dateclicked a été mémorisée.

EDIT : Hi ! On a frisé la collision !

A+

Bonjour Dan,

Etant novice je ne savais pas qu'il fallait joindre le lien. Mais cela sera fait pour la prochaine fois merci du conseil!

NB: j'ai édité mon message en ajoutant le code de la macro DateClicked, comme demandé par Galopin01. En espérant que cela soit plus clair.

Cdt

Re

Etant novice je ne savais pas qu'il fallait joindre le lien.

Le lien n'est pas vraiment nécessaire quoique c'est une bonne idée de le mettre pour celui qui voudrait voir si une réponse a été donnée

@Galopin .... lol! ce n'est pas la première fois ...

Très bien c'est noté.

Et sinon est ce que vous avez une idée de solution pour mon souci s'il vous plait?

Cdt

Nouun

Bonjour,

Une fois le Monthview fermé en principe ton Dateclicked n'existe plus. Donc tu te réfères à quelque chose qui n'existe plus...

On ne sait pas d’où tu sors le xRg.Value mais s'il existe encore tu pourrais peut-être te référer à lui.

En l'absence de fichier joint difficile d'être plus précis.

A+

Re bonjour Galopin01,

xRg.Value = DateClicked

Je l'ai écris dans le code du userform.

Du coup, le MONTHVIEW se ferme, mais la date que l'utilisateur aura choisi, je souhaiterais qu'elle apparaisse dans le mail envoyé par la suite.

Je ne sais pas si c'est clair ce que je raconte ^^^

Cdt

Non pourtant je sais lire ! Mais ton xRg je le sors d'ou d'une boule de cristal ?

Tu peux toujours essayer de remplacer ton date clicked par xRg puisqu'ils sont égaux, mais s'il n'existe pas non plus tu ne seras pas plus avancé...

Joindre le fichier !

A+

A défaut d'avoir eu ma réponse j'ai eu un fou rire!

Comme le xRg posait problème, je l'ai tout simplement supprimé et cela fonctionne. Cependant, au lieu d'avoir la date sélectionné dans le calendrier, j'ai l'heure noté "00:00:00".

Je n'ai pas joins les fichiers nommés "fichier executeur" et "Heures non imputées sans macros" car il y a juste dans le premier, une colonne avec le nom des salariés et leurs adresses email . Et dans le second fichier il y a le nom des salariés et le nombre d'heures qu'ils n'ont pas imputés.

Cdt

Je ne sais plus quoi te dire ! Car je ne sais pas lire dans la boule de cristal.

Comme ton DateClicked n'est pas défini dans la Sub d'envoi du mail on peut aussi supposer que ce 00:00:00 est un zéro dans un format ésotérique... A moins que cela ne corresponde tout simplement au :

FL.Cells(i, 2).Value

...dans la suite du code ?

Le nom et l'adresse e-mail des salariés on s'en fout : Un seule ligne d'adresse même bidon me suffit : Sur ce plan j'ai beaucoup d'imagination. Mais la totalité du code est indispensable pour apprécier le contexte, la portée des déclarations de variables, etc...

A+

Bonjour,

FL.Cells(i, 2).Value ce code correspond aux heures non imputées. En effet dans le body, la phrase donne "vous avez au" (normalement ici on a la date sélectionné par l'utilisateur au début) "40000 HEURES non imputées"

La totalité du code je vous l'ai déjà donné. Et du coup faut imaginer : une colonne avec le nom des salariés et leurs adresses email . Et dans le second fichier il y a le nom des salariés et le nombre d'heures qu'ils n'ont pas imputés.

Cdt

Bonjour à tous,

Bon, Galopin01, c'est vrai que tu pourrais faire des efforts un peu quand même, non mais Oh !

En tout cas, le sujet est passionnant. J'ai hâte de voir qui va craquer en 1er.

T'as de la chance que j't'aime toi !

bises

Moi non?

Plus sérieusement, je suis toujours en détresse. Si une âme charitable pouvait m'aider .

Je suis joignable par mail : leboncoin4@hotmail.fr

C'est vraiment important...

Merci d'avance

Si tu étais en détresse pour de vrai, tu aurais posté ton fichier, comme te l'a demandé plusieurs fois galopin, non ?

Et tu aurais déjà eu ta réponse.

A quoi il sert l'UserForm1 ?

"que l'utilisateur sélectionne la date souhaitée et que cette date s'enregistre dans le mail qui sera envoyé par la suite."

Cdt

C'est la même date pour les 2000 ?

Pour moi cette macro et ce classeur sont incompréhensibles : C'est du mandarin chinois traduit en caractères cyrilliques par un sourd muet !

Ce serait mieux que tu m'expliques en (bon) français ce que la macro est censé faire ?

Envoyer un mail à tous les mecs qui figurent dans la feuille destinataire ?

... En leur indiquant au passage le solde figurant dans la colonne B de l'autre fichier ?

Si c'est ça, avant de penser à envoyer le mail tu pourrais déjà commencer par mettre toutes les données dans la même feuille !

A+

J'ai mis 2000 juste comme ça car la liste de noms peut être plus longue.

Alors, je vais essayer de reformuler et si ce n'est toujours pas clair n'hésite pas à me le dire :)

NB: je ne peux pas mettre toutes les données dans la même feuille (c'est le but de la demande : avoir 2 fichiers d'ouvert)

Etape 1 : L'utilisateur doit ouvrir les deux fichiers

Etape 2 : il doit cliquer sur le bouton "envoyer par mail"

Etape 3 : la macro du userform doit s'exécuter et doit afficher un calendrier

Etape 4 : l'utilisateur doit choisir une date

Etape 5 : après le clic normalement Outlook doit s'ouvrir, et afficher le message que j'ai noté dans le body

Etape 6 (LA PLUS IMPORTANTE CAR C'EST LA SEULE QUI NE FONCTIONNE PAS ) : avoir la date , qu'on a sélectionné dans le calendrier, visible dans le corps du mail.

Si, avec toutes ces explications c'est pas assez clair je mettrais en vert dans mon code toutes les étapes en commentaires mais ce sera dans quelques heures.

Merci encore pour ta réponse ultra rapide!

Rechercher des sujets similaires à "incorporer date mail via userform calendrier"