Formulaire outlook

Bonjour à tous,

Voilà vu que mon patron aime se compliquer la vie, il m'a demandé de lui pondre un formulaire Outlook sous Excel ( oui oui parfaitement TEXTO ! ).

Bon alors j'ai fait tout la mise en forme, seulement je suis une quiche en VBA alors je n'ai absolument aucune idée de comment dire a quel bouton qui fait quoi.

Ci joint une capture d'écran qui décris le comportement que devrais adopter le formulaire

formulaireoutlook

En soit c'est très simple, le but c'est de renvoyer le formulaire dans une pièce jointe au format .txt de manière la plus moche et illisible possible

Sous la forme :

Intitulé1 : renseignement1

Intitulé2 : renseignement2 etc.

J'ai déjà une base d'un autre formulaire existant que j'ai un peu purgé histoire de ne garder que ce qui nous concernait ( et anonymisé aussi)

Public piecesjointes(5) As String
Public NbPiecesjointes As Integer
Public Sub GetFilePath()

Set myFile = Application.FileDialog(msoFileDialogOpen)
With myFile
    .Title = "Choose File"
    .AllowMultiSelect = False
    If .Show <> -1 Then
        Exit Sub
    End If
    Fileselected = .SelectedItems(1)

    piecesjointes(NbPiecesjointes) = Fileselected
    NbPiecesjointes = NbPiecesjointes + 1

End With

'MsgBox = FileSelected
End Sub

Public Function creation_ficher(ByRef TableaudeDonnees As Variant, TypeDeFichier As String, TableaudePiecesJointes As Variant) As Boolean

Dim aOutlook As Object
Dim aEmail As Object
Dim aCurrentUser As Object

Dim rngeAddresses As Range, rngeCell As Range, strRecipients As String
On Error GoTo err

creation_ficher = True

Dim intFic As Integer
Dim NomFichier As String

creation_dossier
intFic = FreeFile
NomFichier = "D:\EnvoiDFC\" & TypeDeFichier & Format(Now, "YYYYMMDDHHMSS") & ".txt"

Set aOutlook = CreateObject("Outlook.Application")
Set aEmail = aOutlook.CreateItem(0)

Open NomFichier For Output As intFic
'
Print #intFic, "Envoyé par : " & aOutlook.Session.CurrentUser.AddressEntry.GetExchangeUser.PrimarySmtpAddress
Print #intFic, "Type de demande : " & TypeDeFichier
For i = 0 To UBound(TableaudeDonnees, 1)
        Print #intFic, TableaudeDonnees(i, 0) & ":" & TableaudeDonnees(i, 1)
Next i
'
Close intFic

aEmail.Importance = 2
'Set Subject
aEmail.Subject = "Ceci est un test, vous ne devriez pas le recevoir, si tel était le cas, ignorez."
'Set Body for mail
aEmail.Body = "Toute mes excuses ."
'Set attachment
aEmail.attachments.Add NomFichier
' si piece jointes supplementaires
For i = 0 To NbPiecesjointes
    If TableaudePiecesJointes(i) <> "" Then
        lcnompiece = TableaudePiecesJointes(i)
        aEmail.attachments.Add lcnompiece
    End If
Next i

'Set Recipient
aEmail.To = "watewmark.scarlett@live.fr" '<==ça c'est mon adresse "anonyme" ..'
'or send one off to 1 person use this static code
'aEmail.Recipients.Add "E-mail.address-here@ntlworld.com"
'Send Mail
'Debug.Print aOutlook.Session.CurrentUser.AddressEntry.GetExchangeUser.PrimarySmtpAddress
'Debug.Print aOutlook.Session.GetExchangeUser.PrimarySmtpAddress

aEmail.Send

MsgBox "Formulaire envoyé"
NbPiecesjointes = 0
Exit Function

err:
MsgBox "probleme envoi formulaire"
creation_ficher = False
End Function
Public Sub creation_dossier()

On Error GoTo err

 Dim FSO As Object, FileObject As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")

'Accède au dossier
If FSO.FolderExists("D:\EnvoiDFC") Then
'    Set oFld = oFSO.GetFolder("D:\EnvoiDFC")
Else
    Set oFld = FSO.CreateFolder("D:\EnvoiDFC")
End If
fin:
    Exit Sub

err:
        Select Case err.Number
            Case 58: MsgBox "Le dossier existe déjà"
            Case 76: MsgBox "Chemin incorrect"
            Case Else: MsgBox "Erreur inconnue"
        End Select

    Resume fin

End Sub

Mais ce sera plus clair avec le fichier d'ouvert je suppose

Enfin voilà, si vous sauriez m'aider ça serais super méga trop génial, et puis on va dire que c'est un entrainement de manière a ce que je meurt pas sans connaitre VBA

Je vous remercie d'avance !

Re,

Peut-être trop de demande a la fois ? on va faire par étape,

Déjà ce serais bien que quand je clique sur mon bouton il m'affiche mon UserForm (histoire que je puisse tester mon formulaire )

J'ai mis ça dans la feuille qui contient le bouton mais pour le moment il m'ouvre VBA et me renvoie a ce code et ne m'afiche pas l'objet

Private Sub CommandButton1_Click()
FormulaireOutlook.Show
End Sub
 

j'ai vérifié les noms du bouton et de l'UserForm donc je vois pas trop ce qui coince

(oui oui on part de loin )

Bonjour,

chez moi le bouton fonctionne très bien.

Le formulaire apparaît.


il sera nécessaire de redimensionner les champs, car le texte n'apparaît pas en entier.

Bonjour,

Merci pour cette réponse, le bouton ne fonctionnait définitivement pas sur la version que j'avais, et en re-téléchargeant le fichier que j'ai uploadé, là ça fonctionne .. j'ai pas du comprendre un truc mais bon déjà je peux travailler.

L'étape suivante ça va être de dire aux champs quel format ils doivent contenir, le nombre de caractère max, qui est dépendant de qui, etc.

Je devrais pouvoir me débrouiller avec les tutos mais je ne suis pas contre un peu d'aide, ne serais-ce qu'une mise en forme générale que je puisse modifier a ma sauce par la suite, ça m'aiderait pas mal

Bonjour,

j'ai redimensionné tous les champs pour une meilleure lisibilité.

Mais que voulez-vous faire exactement avec ce formulaire?


Avec le fichier, c'est mieux

Re,

Merci c'est déjà ça de fait,

Dans mon premier message j'ai décris les comportement que je souhaites pour chaque champs dans une image avec des légende ( c'est plus clair je trouve)

Le but final c'est de renvoyer le résultat de ce formulaire dans un mail dans un .txt en pièce jointe de ce mail de la forme (voir pj)

avec " Qui " en objet et "Pour qui" le destinataire.

59formulaire.txt (445.00 Octets)
Rechercher des sujets similaires à "formulaire outlook"