Transfert d'une ligne vers formulaire Excel + envoi mail

Bonjour à tous,

Je vais essayer d'expliquer au mieux

J'ai un fichier Excel (test transfert formulaire) ou il y a un tableau et un autre fichier Excel (Formulaire test) ou j'ai crée un formulaire avec des cases a cocher ou à remplir.

Actuellement je remplis le formulaire "à la main" en prenant les données sur le tableau

Ce que je voudrai c'est lorsque je selectionne une ligne dans le tableau (ex : ligne 18), les données sur cette ligne se mette dans le formulaire automatiquement à leur place via un bouton

Ex pour la ligne 18) A18 dans le tableau doit aller à G7 dans le formulaire

B18 doit aller à C8.....

La 2eme étape (que je pense avoir réussi) c'est d'envoyer le formulaire par mail à differentes personnes via un bouton

Voici le code merci de me dire si c'est bon (j'ai piocher un peu partout mais j'ai pas tester!!!!)

Sub EnvoiPage()

Dim Destinataires(3) As String, Sujet As String

Dim AccuseReception As Boolean

'Modifier les mails des destinataires

Destinataires(1) = "test@wanadoo.fr"

Destinataires(2) = "test1@gmail.com"

Destinataires(3) = "test2@domaine.fr"

Sujet = "Formulaire"

AccuseReception = True

ThisWorkbook.Sheets("Feuil1").Copy

ActiveWorkbook.SendMail Destinataires, Sujet, AccuseReception

ActiveWorkbook.Close False

End Sub

Merci pour votre aide

PS : Je ne peux pas mettre de données c'est pour le boulot

41formulaire-test.xls (16.00 Ko)

Bonjour juju (alias coolman...)

Il est de bonne habitude de ne pas poser les mêmes questions ailleurs ou tout au moins de prévenir le forum. Cela évite notamment de passer du temps sur une demande dont la solution est peut être déjà trouvée ailleurs.

Merci de ta compréhension

Sinon pour cette demande, pourquoi ne pas mettre le formulaire à envoyer dans le même fichier que le fichier transfert. Ce serait bien plus facile

A bientôt

Si j'ai poser ma question sur plusieurs forum c'est pour avoir une solution au plus vite car comme je l'ai marqué c'est pour le boulot!!!

Mais je comprend quand meme!!!!

Je ne peux pas mettre le formulaire dans le fichier tableau car tout le monde n'a pas le droit à l'acces au formulaire

As tu une solution quand meme stp

Re,

Ok mais ce n'est parce que tu n'as pas de réponse que l'on ne se penche pas sur le sujet. Puis je comprendrai jamais pourquoi utiliser des pseudos différents. Mais rassure toi tu n'es pas le seul.

Bon pour ton souci, j'ai besoin de quelques infos :

quel est le nom exact des fichiers ?

dans quel répertoire sont ils placés ?

A te relire

Le nom exact des fichiers est indiqué dans mon message (test transfert formulaire et Formulaire test )

Actuellement ils sont sur le bureau mais peuvent changer de place

Re,

Actuellement ils sont sur le bureau mais peuvent changer de place

Ok mais ils seront toujours bien tous les deux dans le même répertoire ?

Autre question : dans ton fichier formulaire la dernière ligne code article est la ligne 40. Est-ce le maximum ou est-ce que cela pourrait être une autre ligne supérieure à 40

Je viens de demande au chef normalement ils sont dans le meme dossier

Non le tableau est illimité

Re,

Dans le fichier formulaire test, en A42 et A43, défusionne tes deux cellules et mettre les infos de Date et visa demandeur en C42 et C43

Je reviens avec le code dès que j'ai terminé

Re

Est-ce que le remplissage du formulaire se fait après avoir compléter tout le fichier Test transfert ou est-ce que cela se fait ligne par ligne.

Là je suppose que tu choisis les lignes à transférer puis tu cliques chaque fois sur ton bouton. Juste ?

Edit : Dis moi plutôt comment tu fonctionnes avec le bouton. De manière à ce que je fasse un test

Re

Oui c'est sa en faite l'ideal serai que tu choississe la ligne que tu veux via une fenetre qui s'affiche quand tu clique sur un bouton. Puis quand tu as choisi tu valide, le formulaire s'affiche en etant rempli

Mais sinon selectionner la ligne voulu et cliquez sur un bouton me va aussi

Re,

Dans le fichier test-transfert-formulaire.xls mettre ce code dans un module :

Sub transfert()
'Dan pour Juju53 - 13/09/2012
Dim classeurSource As Workbook, classeurDestination As Workbook
Dim plg As Byte, x As Byte
Dim lig As Integer
Dim chemin As String
chemin = ThisWorkbook.Path & "\"
Set classeurSource = ThisWorkbook
lig = ActiveCell.Row
On Error Resume Next
x = Len(Workbooks("Formulaire-test.xls").Name)
If x = 0 Then
Set classeurDestination = Application.Workbooks.Open(chemin & "Formulaire-test.xls")
Else: Set classeurDestination = Workbooks("Formulaire-test.xls")
End If
On Error GoTo 0

With classeurDestination.Sheets(1)
plg = .Range("A" & Rows.Count).End(xlUp).Row + 1
MsgBox plg
    .Range("G7") = classeurSource.Sheets("Feuil1").Range("A" & lig)
    .Range("C8") = classeurSource.Sheets("Feuil1").Range("B" & lig)
    .Range("C10") = classeurSource.Sheets("Feuil1").Range("C" & lig)
    .Range("A" & plg) = classeurSource.Sheets("Feuil1").Range("E" & lig)
    .Range("B" & plg) = classeurSource.Sheets("Feuil1").Range("D" & lig)
    .Range("E" & plg) = classeurSource.Sheets("Feuil1").Range("G" & lig)
    .Range("F" & plg) = classeurSource.Sheets("Feuil1").Range("F" & lig)
End With
End Sub

Code à associer à un bouton à placer sur la feuille du fichier test-transfert-formulaire.xls

A noter que le fichier formulaire doit être nommé comme suit --> Formulaire-test.xls

Sélectionne la ligne à transférer puis clique sur le bouton.

Amicalement

Apparement sa marche merci bcp

Par contre les colonnes A / B / E / F / G ne sont pas rempli dans le formulaire

Pourquoi j'ai une fenetre qui s'affiche avec un nombre quand j'active la macro??

Pour les colonnes c'est bon j'ai reussi!!!

Par contre j'ai encore quelques questions :

Pourquoi j'ai une fenetre qui s'affiche avec un nombre quand j'active la macro et comment l'enlevé si possible?

Comment faire pour cocher la case voulu dans le formulaire au lieu de mettre la donnée?

Peux tu me dire si mon code pour l'envoi par mail (1er message)est bon pour toi??

En tout cas merci pour ton aide meme si cela à mal commence entre nous ( pour info j'ai pas eu de reponse sur les autres donc j'ai quand meme bien fais de demande plusieurs fois sinon j'aurai attendu longtemps!!!! )

re,

Pourquoi j'ai une fenetre qui s'affiche avec un nombre quand j'active la macro et comment l'enlevé si possible?

Oups, désolé. supprime cette instruction du code --> MsgBox plg

Comment faire pour cocher la case voulu dans le formulaire au lieu de mettre la donnée

Pas compris là ... cocher quoi ? quelle case ?

Peux tu me dire si mon code pour l'envoi par mail (1er message)est bon pour toi??

Cela m'a l'air bon il faudrait surtout savoir le type de messagerie utilisée

...pour info j'ai pas eu de reponse sur les autres donc j'ai quand meme bien fais de demande plusieurs fois

C'est un problème. Le seul souci est de ne pas le mentionner dans ta demande. Auquel cas on travaille pour rien en quelque sorte.

Sinon dans ce forum, lorsque tu n'as pas de réponse, il te suffit de poster une nouvelle fois dans ton fil pour le faire remonter. Si ta demande est claire ( ce qui est le cas ici) il ya toujours quelqu'un qui te répondras.

A te relire

dans le formulaire tu as 5 cases

ce que je voudrai c'est que si dans la colonne C du tableau à la ligne selectionner il y a par ex LCQ, la case labo de controle est validé sur le formulaire

AQ pour assurance qualité / LRD pour labo R/D / AR pour affaire regl / BE pour Bureau d'etude

Pour la messagerie c'est le logiciel LOTUS

Re,

ce que je voudrai c'est que si dans la colonne C du tableau à la ligne selectionner il y a par ex LCQ, la case labo de controle est validé sur le formulaire

AQ pour assurance qualité / LRD pour labo R/D / AR pour affaire regl / BE pour Bureau d'etude

Ok mais la validation consiste en quoi. Mettre un "X" dans la case appropriée ??

Oui c'est sa

re,

essaie comme ceci :

Sub transfert()
'Dan pour Juju53 - 13/09/2012
Dim classeurSource As Workbook, classeurDestination As Workbook
Dim plg As Byte, x As Byte
Dim lig As Integer
Dim chemin As String
chemin = ThisWorkbook.Path & "\"
Set classeurSource = ThisWorkbook
lig = ActiveCell.Row
On Error Resume Next
x = Len(Workbooks("Formulaire-test.xls").Name)
If x = 0 Then
Set classeurDestination = Application.Workbooks.Open(chemin & "Formulaire-test.xls")
Else: Set classeurDestination = Workbooks("Formulaire-test.xls")
End If
On Error GoTo 0

With classeurDestination.Sheets(1)
plg = .Range("A" & Rows.Count).End(xlUp).Row + 1
    .Range("G7") = classeurSource.Sheets("Feuil1").Range("A" & lig)
    .Range("C8") = classeurSource.Sheets("Feuil1").Range("B" & lig)
    Select Case UCase(classeurSource.Sheets("Feuil1").Range("C" & lig))
        Case Is = "LRC": .Range("C10") = "X"
        Case Is = "AQ": .Range("C12") = "X"
        Case Is = "LRD": .Range("C14") = "X"
        Case Is = "AR": .Range("C16") = "X"
        Case Is = "BE": .Range("C18") = "X"
    End Select
    .Range("A" & plg) = classeurSource.Sheets("Feuil1").Range("E" & lig)
    .Range("B" & plg) = classeurSource.Sheets("Feuil1").Range("D" & lig)
    .Range("E" & plg) = classeurSource.Sheets("Feuil1").Range("G" & lig)
    .Range("F" & plg) = classeurSource.Sheets("Feuil1").Range("F" & lig)
End With
End Sub

Pour le mail, essaie ceci :

Sub EnvoiPage()
Dim Destinataires(3) As String, Sujet As String
Dim AccuseReception As Boolean
'Modifier les mails des destinataires
Destinataires(1) = "test@wanadoo.fr"
Destinataires(2) = "test1@gmail.com"
Destinataires(3) = "test2@domaine.fr"
Sujet = "Formulaire"
AccuseReception = True
Workbooks("Formulaire-test.xls").Sheets("Feuil1").Copy
ActiveWorkbook.SendMail Destinataires, Sujet, AccuseReception
ActiveWorkbook.Close False
End Sub

J'ai supposé que le code du mail se trouve aussi dans le même fichier que l'autre code

Amicalement

Je testerai sa lundi je te tiens au courant

Merci encore

Bonjour Dan et le forum

Je viens de tester le code pour les cases a cocher sa marche nikel

par contre le code mail j'ai pas pu encore tester mais il se trouve dans le fichier Formulaire pour moi

Sa change beaucoup dans ton code le faite que je l'utilise dans ce fichier???

Rechercher des sujets similaires à "transfert ligne formulaire envoi mail"