Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

mise en page mail

23 réponses
Avatar
Excell
Bonjour tout le monde,


Apres les aides recues et trouvée sur d'autres sites, en anglais,
voici le code que j'utilise pour envoyer un mail avec une plage
selectionnée en cliquant sur un bouton de commande.

Sub Button16_Click()
'Working in 2000-2007
Dim Source As Range
Dim Dest As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim OutApp As Object
Dim OutMail As Object
Set Source = Nothing
On Error Resume Next
Set Source = Range("b2:u43").SpecialCells(xlCellTypeVisible)
On Error GoTo 0
If Source Is Nothing Then
MsgBox "La source n'est pas selectionnée ou la feuille est
protégée, corrigé svp et réessayé.", vbOKOnly
Exit Sub
End If
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
'Set
wb = Sheets("Rapports").Range("c3") 'ActiveWorkbook
Set Dest = Workbooks.Add(xlWBATWorksheet)
Source.Copy
With Dest.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial Paste:=xlPasteValues
.Cells(1).PasteSpecial Paste:=xlPasteFormats
.Cells(1).Select
Application.CutCopyMode = False
End With
TempFilePath = Environ$("temp") & "\"
TempFileName = "Rapport hebdomadaire de " & wb '.Name & " " &
Format(Now, "dd-mmm-yy h-mm-ss")
If Val(Application.Version) < 12 Then
'You use Excel 2000-2003
FileExtStr = ".xls": FileFormatNum = -4143
End If
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
With Dest
.SaveAs TempFilePath & TempFileName & FileExtStr,
FileFormat:=FileFormatNum
On Error Resume Next
With OutMail
.To = ""
.cc = ""
.BCC = ""
.Subject = "Rapport hebdomadaire"
.Body = "Bonjour, voici mon rapport hebdomadaire. " & wb
.Attachments.Add Dest.FullName
.Display 'or use .Display
End With
On Error GoTo 0
.Close SaveChanges:=False
End With
Kill TempFilePath & TempFileName & FileExtStr
Set OutMail = Nothing
Set OutApp = Nothing
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub


Le seul probleme que j'ai avec ce code est que dans la piece jointe, je
n'ai plus aucun respect de ma mise en page, qui sera necessaire aux
administratif lors de l'impression ???

Comment puis je resoudre ce probleme (si cela est necessaire, peut etre
convertir ma plage de selection en pdf dans un ficvhier temporaire, mais
j'ai vu qu'il fallait 4 applications ???)

D'autres methodes peuvent etres proposée si necessaire

La question que je me pose est que veut dire "FileExtStr = ".xls":
FileFormatNum = -4143" je ne comprends pas trop bien cette ligne de code

Merci pour votre aide
Bonne journée

RP


--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/

10 réponses

1 2 3
Avatar
Excell
merci daniel C

je venais de la trouver aussi

j'ai egalement reussi ma mise en page par rapport aux marges, mais l'image
n'apparait toujours pas ???
RP

Le Wed, 19 Dec 2007 13:28:32 +0100, Excell a écrit:



en fait, par defaut l'impression se fait en mode "portrait"
et si on veux que la page soit horizontal on choisi le mode "paysage"Le
Wed, 19 Dec 2007 12:03:20 +0100, Excell a écrit:

Re bonjour, merci beaucoup pour ce probleme résolu
mais j'ai encore un souci car je souhaite encore 2 choses pour que tout
soit parfait
c'est que la selection soit en mode paysage et non en mode portrait et
l'image inserée n'est pas dans le mail
Je continue mes recherches de mon coté aussi

Grand merci pour ta patience daniel c
J'arrive au but
RP

Le Wed, 19 Dec 2007 10:27:39 +0100, Daniel.C a
écrit:

Bonjour.
Il faut mettre en forme le classeur en copiant les informations une
par une
au lieu de les copier en bloc.
Au lieu de :
Source.Copy
With Dest.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial Paste:=xlPasteValues
.Cells(1).PasteSpecial Paste:=xlPasteFormats
.Cells(1).Select
Application.CutCopyMode = False
End With

mets :

With Dest.Sheets(1)
For Each c In Source
c.Copy
.Range(c.Address).PasteSpecial xlPasteColumnWidths
.Range(c.Address).PasteSpecial xlPasteValues
.Range(c.Address).PasteSpecial xlPasteFormats
Application.CutCopyMode = False
Next c
End With

Daniel
"Excell" a écrit dans le message de news:

Bonjour

Merci pour les renseignements et pour l'aide, mais si il y a des
colonnes
masquées(necessaire pour utilisation)
existe t 'il un moyen pour que je puisse effectué une mise en page par
code vba pour resoudre mon probleme

D'avance merci et bonne journée
RP

Le Tue, 18 Dec 2007 11:41:39 +0100, Daniel.C
a
écrit:

Je viens d'exécuter ton code. Tu envoies une feuille en tant que
classeur en
pièce jointe. Le fait que ta mise en page diffère de celle du
classeur
original provient du fait que tu ne sélectionnes que les celllules
visibles.
Si tu as des lignes ou des colonnes masquées, il se produit un
décalage
au
collage.
Daniel
"Excell" a écrit dans le message de news:

bonjour,
merci pour l'explication,
petite precision, je n'envoie pas un classeur par mail mais un plage
selectionnée sur une feuille et la mise en page n'est pas tenue en
compte
lors de l'envoi de cette selection

Bonne journée
RP

Le Mon, 17 Dec 2007 20:32:37 +0100, Daniel.C
a
écrit:

Bonsoir.
Je n'ai ps épluché tout ton code; apparemment tu l'as pioché chez
Ron
De
Bruin. Les questions que tu te poses à propos du "FileFormatNum"
viennent du
fait que la macro différencie les fichiers aux format s2003 et
2007.
Sinon,
je ne vois pas pourquoi le classeur attaché n'aurait pas le format
que
tu
lui assignes ?
Cordialement.
Daniel
"Excell" a écrit dans le message de news:

Bonjour tout le monde,


Apres les aides recues et trouvée sur d'autres sites, en anglais,
voici le code que j'utilise pour envoyer un mail avec une plage
selectionnée en cliquant sur un bouton de commande.

Sub Button16_Click()
'Working in 2000-2007
Dim Source As Range
Dim Dest As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim OutApp As Object
Dim OutMail As Object
Set Source = Nothing
On Error Resume Next
Set Source = Range("b2:u43").SpecialCells(xlCellTypeVisible)
On Error GoTo 0
If Source Is Nothing Then
MsgBox "La source n'est pas selectionnée ou la feuille est
protégée, corrigé svp et réessayé.", vbOKOnly
Exit Sub
End If
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
'Set
wb = Sheets("Rapports").Range("c3") 'ActiveWorkbook
Set Dest = Workbooks.Add(xlWBATWorksheet)
Source.Copy
With Dest.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial Paste:=xlPasteValues
.Cells(1).PasteSpecial Paste:=xlPasteFormats
.Cells(1).Select
Application.CutCopyMode = False
End With
TempFilePath = Environ$("temp") & ""
TempFileName = "Rapport hebdomadaire de " & wb '.Name & " " &
Format(Now, "dd-mmm-yy h-mm-ss")
If Val(Application.Version) < 12 Then
'You use Excel 2000-2003
FileExtStr = ".xls": FileFormatNum = -4143
End If
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
With Dest
.SaveAs TempFilePath & TempFileName & FileExtStr,
FileFormat:=FileFormatNum
On Error Resume Next
With OutMail
.To = ""
.cc = ""
.BCC = ""
.Subject = "Rapport hebdomadaire"
.Body = "Bonjour, voici mon rapport hebdomadaire. " &
wb
.Attachments.Add Dest.FullName
.Display 'or use .Display
End With
On Error GoTo 0
.Close SaveChanges:úlse
End With
Kill TempFilePath & TempFileName & FileExtStr
Set OutMail = Nothing
Set OutApp = Nothing
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub


Le seul probleme que j'ai avec ce code est que dans la piece
jointe,
je
n'ai plus aucun respect de ma mise en page, qui sera necessaire
aux
administratif lors de l'impression ???

Comment puis je resoudre ce probleme (si cela est necessaire, peut
etre
convertir ma plage de selection en pdf dans un ficvhier
temporaire,
mais
j'ai vu qu'il fallait 4 applications ???)

D'autres methodes peuvent etres proposée si necessaire

La question que je me pose est que veut dire "FileExtStr =
".xls":
FileFormatNum = -4143" je ne comprends pas trop bien cette ligne
de
code

Merci pour votre aide
Bonne journée

RP


--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/







--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/







--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/















--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/








Avatar
Daniel.C
Quelle image ?
Daniel
"Excell" a écrit dans le message de news:



merci daniel C

je venais de la trouver aussi

j'ai egalement reussi ma mise en page par rapport aux marges, mais l'image
n'apparait toujours pas ???
RP

Le Wed, 19 Dec 2007 13:28:32 +0100, Excell a écrit:



en fait, par defaut l'impression se fait en mode "portrait"
et si on veux que la page soit horizontal on choisi le mode "paysage"Le
Wed, 19 Dec 2007 12:03:20 +0100, Excell a écrit:

Re bonjour, merci beaucoup pour ce probleme résolu
mais j'ai encore un souci car je souhaite encore 2 choses pour que tout
soit parfait
c'est que la selection soit en mode paysage et non en mode portrait et
l'image inserée n'est pas dans le mail
Je continue mes recherches de mon coté aussi

Grand merci pour ta patience daniel c
J'arrive au but
RP

Le Wed, 19 Dec 2007 10:27:39 +0100, Daniel.C a
écrit:

Bonjour.
Il faut mettre en forme le classeur en copiant les informations une
par une
au lieu de les copier en bloc.
Au lieu de :
Source.Copy
With Dest.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial Paste:=xlPasteValues
.Cells(1).PasteSpecial Paste:=xlPasteFormats
.Cells(1).Select
Application.CutCopyMode = False
End With

mets :

With Dest.Sheets(1)
For Each c In Source
c.Copy
.Range(c.Address).PasteSpecial xlPasteColumnWidths
.Range(c.Address).PasteSpecial xlPasteValues
.Range(c.Address).PasteSpecial xlPasteFormats
Application.CutCopyMode = False
Next c
End With

Daniel
"Excell" a écrit dans le message de news:

Bonjour

Merci pour les renseignements et pour l'aide, mais si il y a des
colonnes
masquées(necessaire pour utilisation)
existe t 'il un moyen pour que je puisse effectué une mise en page par
code vba pour resoudre mon probleme

D'avance merci et bonne journée
RP

Le Tue, 18 Dec 2007 11:41:39 +0100, Daniel.C
a
écrit:

Je viens d'exécuter ton code. Tu envoies une feuille en tant que
classeur en
pièce jointe. Le fait que ta mise en page diffère de celle du
classeur
original provient du fait que tu ne sélectionnes que les celllules
visibles.
Si tu as des lignes ou des colonnes masquées, il se produit un
décalage
au
collage.
Daniel
"Excell" a écrit dans le message de news:

bonjour,
merci pour l'explication,
petite precision, je n'envoie pas un classeur par mail mais un plage
selectionnée sur une feuille et la mise en page n'est pas tenue en
compte
lors de l'envoi de cette selection

Bonne journée
RP

Le Mon, 17 Dec 2007 20:32:37 +0100, Daniel.C
a
écrit:

Bonsoir.
Je n'ai ps épluché tout ton code; apparemment tu l'as pioché chez
Ron
De
Bruin. Les questions que tu te poses à propos du "FileFormatNum"
viennent du
fait que la macro différencie les fichiers aux format s2003 et
2007.
Sinon,
je ne vois pas pourquoi le classeur attaché n'aurait pas le format
que
tu
lui assignes ?
Cordialement.
Daniel
"Excell" a écrit dans le message de news:

Bonjour tout le monde,


Apres les aides recues et trouvée sur d'autres sites, en anglais,
voici le code que j'utilise pour envoyer un mail avec une plage
selectionnée en cliquant sur un bouton de commande.

Sub Button16_Click()
'Working in 2000-2007
Dim Source As Range
Dim Dest As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim OutApp As Object
Dim OutMail As Object
Set Source = Nothing
On Error Resume Next
Set Source = Range("b2:u43").SpecialCells(xlCellTypeVisible)
On Error GoTo 0
If Source Is Nothing Then
MsgBox "La source n'est pas selectionnée ou la feuille est
protégée, corrigé svp et réessayé.", vbOKOnly
Exit Sub
End If
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
'Set
wb = Sheets("Rapports").Range("c3") 'ActiveWorkbook
Set Dest = Workbooks.Add(xlWBATWorksheet)
Source.Copy
With Dest.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial Paste:=xlPasteValues
.Cells(1).PasteSpecial Paste:=xlPasteFormats
.Cells(1).Select
Application.CutCopyMode = False
End With
TempFilePath = Environ$("temp") & ""
TempFileName = "Rapport hebdomadaire de " & wb '.Name & " " &
Format(Now, "dd-mmm-yy h-mm-ss")
If Val(Application.Version) < 12 Then
'You use Excel 2000-2003
FileExtStr = ".xls": FileFormatNum = -4143
End If
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
With Dest
.SaveAs TempFilePath & TempFileName & FileExtStr,
FileFormat:=FileFormatNum
On Error Resume Next
With OutMail
.To = ""
.cc = ""
.BCC = ""
.Subject = "Rapport hebdomadaire"
.Body = "Bonjour, voici mon rapport hebdomadaire. " &
wb
.Attachments.Add Dest.FullName
.Display 'or use .Display
End With
On Error GoTo 0
.Close SaveChanges:úlse
End With
Kill TempFilePath & TempFileName & FileExtStr
Set OutMail = Nothing
Set OutApp = Nothing
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub


Le seul probleme que j'ai avec ce code est que dans la piece
jointe,
je
n'ai plus aucun respect de ma mise en page, qui sera necessaire
aux
administratif lors de l'impression ???

Comment puis je resoudre ce probleme (si cela est necessaire, peut
etre
convertir ma plage de selection en pdf dans un ficvhier
temporaire,
mais
j'ai vu qu'il fallait 4 applications ???)

D'autres methodes peuvent etres proposée si necessaire

La question que je me pose est que veut dire "FileExtStr =
".xls":
FileFormatNum = -4143" je ne comprends pas trop bien cette ligne
de
code

Merci pour votre aide
Bonne journée

RP


--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/







--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/







--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/















--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/










Avatar
Excell
dans une cellule,
j'ai insere une image qui represente ma signature
(signature faite sur papier puis scannée, cree un fichier et insere
(inserer un image depuis le fichier ... dans excell)
je n'ai pas trouve d'autres solutions pour que ma signature apparaise sur
la feuille(cette signature est absolument necessaire sur le document -
rapport de prestation hebdomadaire)

RP




Le Wed, 19 Dec 2007 16:48:43 +0100, Daniel.C a
écrit:

Quelle image ?
Daniel
"Excell" a écrit dans le message de news:



merci daniel C

je venais de la trouver aussi

j'ai egalement reussi ma mise en page par rapport aux marges, mais
l'image
n'apparait toujours pas ???
RP

Le Wed, 19 Dec 2007 13:28:32 +0100, Excell a écrit:



en fait, par defaut l'impression se fait en mode "portrait"
et si on veux que la page soit horizontal on choisi le mode "paysage"Le
Wed, 19 Dec 2007 12:03:20 +0100, Excell a écrit:

Re bonjour, merci beaucoup pour ce probleme résolu
mais j'ai encore un souci car je souhaite encore 2 choses pour que
tout
soit parfait
c'est que la selection soit en mode paysage et non en mode portrait et
l'image inserée n'est pas dans le mail
Je continue mes recherches de mon coté aussi

Grand merci pour ta patience daniel c
J'arrive au but
RP

Le Wed, 19 Dec 2007 10:27:39 +0100, Daniel.C
a
écrit:

Bonjour.
Il faut mettre en forme le classeur en copiant les informations une
par une
au lieu de les copier en bloc.
Au lieu de :
Source.Copy
With Dest.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial Paste:=xlPasteValues
.Cells(1).PasteSpecial Paste:=xlPasteFormats
.Cells(1).Select
Application.CutCopyMode = False
End With

mets :

With Dest.Sheets(1)
For Each c In Source
c.Copy
.Range(c.Address).PasteSpecial xlPasteColumnWidths
.Range(c.Address).PasteSpecial xlPasteValues
.Range(c.Address).PasteSpecial xlPasteFormats
Application.CutCopyMode = False
Next c
End With

Daniel
"Excell" a écrit dans le message de news:

Bonjour

Merci pour les renseignements et pour l'aide, mais si il y a des
colonnes
masquées(necessaire pour utilisation)
existe t 'il un moyen pour que je puisse effectué une mise en page
par
code vba pour resoudre mon probleme

D'avance merci et bonne journée
RP

Le Tue, 18 Dec 2007 11:41:39 +0100, Daniel.C

a
écrit:

Je viens d'exécuter ton code. Tu envoies une feuille en tant que
classeur en
pièce jointe. Le fait que ta mise en page diffère de celle du
classeur
original provient du fait que tu ne sélectionnes que les celllules
visibles.
Si tu as des lignes ou des colonnes masquées, il se produit un
décalage
au
collage.
Daniel
"Excell" a écrit dans le message de news:

bonjour,
merci pour l'explication,
petite precision, je n'envoie pas un classeur par mail mais un
plage
selectionnée sur une feuille et la mise en page n'est pas tenue en
compte
lors de l'envoi de cette selection

Bonne journée
RP

Le Mon, 17 Dec 2007 20:32:37 +0100, Daniel.C
a
écrit:

Bonsoir.
Je n'ai ps épluché tout ton code; apparemment tu l'as pioché chez
Ron
De
Bruin. Les questions que tu te poses à propos du "FileFormatNum"
viennent du
fait que la macro différencie les fichiers aux format s2003 et
2007.
Sinon,
je ne vois pas pourquoi le classeur attaché n'aurait pas le
format
que
tu
lui assignes ?
Cordialement.
Daniel
"Excell" a écrit dans le message de
news:

Bonjour tout le monde,


Apres les aides recues et trouvée sur d'autres sites, en
anglais,
voici le code que j'utilise pour envoyer un mail avec une plage
selectionnée en cliquant sur un bouton de commande.

Sub Button16_Click()
'Working in 2000-2007
Dim Source As Range
Dim Dest As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim OutApp As Object
Dim OutMail As Object
Set Source = Nothing
On Error Resume Next
Set Source = Range("b2:u43").SpecialCells(xlCellTypeVisible)
On Error GoTo 0
If Source Is Nothing Then
MsgBox "La source n'est pas selectionnée ou la feuille
est
protégée, corrigé svp et réessayé.", vbOKOnly
Exit Sub
End If
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
'Set
wb = Sheets("Rapports").Range("c3") 'ActiveWorkbook
Set Dest = Workbooks.Add(xlWBATWorksheet)
Source.Copy
With Dest.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial Paste:=xlPasteValues
.Cells(1).PasteSpecial Paste:=xlPasteFormats
.Cells(1).Select
Application.CutCopyMode = False
End With
TempFilePath = Environ$("temp") & ""
TempFileName = "Rapport hebdomadaire de " & wb '.Name & " "
&
Format(Now, "dd-mmm-yy h-mm-ss")
If Val(Application.Version) < 12 Then
'You use Excel 2000-2003
FileExtStr = ".xls": FileFormatNum = -4143
End If
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
With Dest
.SaveAs TempFilePath & TempFileName & FileExtStr,
FileFormat:=FileFormatNum
On Error Resume Next
With OutMail
.To = ""
.cc = ""
.BCC = ""
.Subject = "Rapport hebdomadaire"
.Body = "Bonjour, voici mon rapport hebdomadaire. "
&
wb
.Attachments.Add Dest.FullName
.Display 'or use .Display
End With
On Error GoTo 0
.Close SaveChanges:úlse
End With
Kill TempFilePath & TempFileName & FileExtStr
Set OutMail = Nothing
Set OutApp = Nothing
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub


Le seul probleme que j'ai avec ce code est que dans la piece
jointe,
je
n'ai plus aucun respect de ma mise en page, qui sera necessaire
aux
administratif lors de l'impression ???

Comment puis je resoudre ce probleme (si cela est necessaire,
peut
etre
convertir ma plage de selection en pdf dans un ficvhier
temporaire,
mais
j'ai vu qu'il fallait 4 applications ???)

D'autres methodes peuvent etres proposée si necessaire

La question que je me pose est que veut dire "FileExtStr >>>>>>>>>> ".xls":
FileFormatNum = -4143" je ne comprends pas trop bien cette
ligne
de
code

Merci pour votre aide
Bonne journée

RP


--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/







--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/







--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/















--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/







--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/










Avatar
Daniel.C
En l'insérant dans le classeur joint :
Genre :
Range("F9").Select
ActiveSheet.Pictures.Insert( _
"C:Documents and SettingsColardelleMes documentsMes
imagessign.jpg"). _
Select
Daniel
"Excell" a écrit dans le message de news:



dans une cellule,
j'ai insere une image qui represente ma signature
(signature faite sur papier puis scannée, cree un fichier et insere
(inserer un image depuis le fichier ... dans excell)
je n'ai pas trouve d'autres solutions pour que ma signature apparaise sur
la feuille(cette signature est absolument necessaire sur le document -
rapport de prestation hebdomadaire)

RP




Le Wed, 19 Dec 2007 16:48:43 +0100, Daniel.C a
écrit:

Quelle image ?
Daniel
"Excell" a écrit dans le message de news:



merci daniel C

je venais de la trouver aussi

j'ai egalement reussi ma mise en page par rapport aux marges, mais
l'image
n'apparait toujours pas ???
RP

Le Wed, 19 Dec 2007 13:28:32 +0100, Excell a écrit:



en fait, par defaut l'impression se fait en mode "portrait"
et si on veux que la page soit horizontal on choisi le mode "paysage"Le
Wed, 19 Dec 2007 12:03:20 +0100, Excell a écrit:

Re bonjour, merci beaucoup pour ce probleme résolu
mais j'ai encore un souci car je souhaite encore 2 choses pour que
tout
soit parfait
c'est que la selection soit en mode paysage et non en mode portrait et
l'image inserée n'est pas dans le mail
Je continue mes recherches de mon coté aussi

Grand merci pour ta patience daniel c
J'arrive au but
RP

Le Wed, 19 Dec 2007 10:27:39 +0100, Daniel.C
a
écrit:

Bonjour.
Il faut mettre en forme le classeur en copiant les informations une
par une
au lieu de les copier en bloc.
Au lieu de :
Source.Copy
With Dest.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial Paste:=xlPasteValues
.Cells(1).PasteSpecial Paste:=xlPasteFormats
.Cells(1).Select
Application.CutCopyMode = False
End With

mets :

With Dest.Sheets(1)
For Each c In Source
c.Copy
.Range(c.Address).PasteSpecial xlPasteColumnWidths
.Range(c.Address).PasteSpecial xlPasteValues
.Range(c.Address).PasteSpecial xlPasteFormats
Application.CutCopyMode = False
Next c
End With

Daniel
"Excell" a écrit dans le message de news:

Bonjour

Merci pour les renseignements et pour l'aide, mais si il y a des
colonnes
masquées(necessaire pour utilisation)
existe t 'il un moyen pour que je puisse effectué une mise en page
par
code vba pour resoudre mon probleme

D'avance merci et bonne journée
RP

Le Tue, 18 Dec 2007 11:41:39 +0100, Daniel.C

a
écrit:

Je viens d'exécuter ton code. Tu envoies une feuille en tant que
classeur en
pièce jointe. Le fait que ta mise en page diffère de celle du
classeur
original provient du fait que tu ne sélectionnes que les celllules
visibles.
Si tu as des lignes ou des colonnes masquées, il se produit un
décalage
au
collage.
Daniel
"Excell" a écrit dans le message de news:

bonjour,
merci pour l'explication,
petite precision, je n'envoie pas un classeur par mail mais un
plage
selectionnée sur une feuille et la mise en page n'est pas tenue en
compte
lors de l'envoi de cette selection

Bonne journée
RP

Le Mon, 17 Dec 2007 20:32:37 +0100, Daniel.C
a
écrit:

Bonsoir.
Je n'ai ps épluché tout ton code; apparemment tu l'as pioché chez
Ron
De
Bruin. Les questions que tu te poses à propos du "FileFormatNum"
viennent du
fait que la macro différencie les fichiers aux format s2003 et
2007.
Sinon,
je ne vois pas pourquoi le classeur attaché n'aurait pas le
format
que
tu
lui assignes ?
Cordialement.
Daniel
"Excell" a écrit dans le message de
news:

Bonjour tout le monde,


Apres les aides recues et trouvée sur d'autres sites, en
anglais,
voici le code que j'utilise pour envoyer un mail avec une plage
selectionnée en cliquant sur un bouton de commande.

Sub Button16_Click()
'Working in 2000-2007
Dim Source As Range
Dim Dest As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim OutApp As Object
Dim OutMail As Object
Set Source = Nothing
On Error Resume Next
Set Source = Range("b2:u43").SpecialCells(xlCellTypeVisible)
On Error GoTo 0
If Source Is Nothing Then
MsgBox "La source n'est pas selectionnée ou la feuille
est
protégée, corrigé svp et réessayé.", vbOKOnly
Exit Sub
End If
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
'Set
wb = Sheets("Rapports").Range("c3") 'ActiveWorkbook
Set Dest = Workbooks.Add(xlWBATWorksheet)
Source.Copy
With Dest.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial Paste:=xlPasteValues
.Cells(1).PasteSpecial Paste:=xlPasteFormats
.Cells(1).Select
Application.CutCopyMode = False
End With
TempFilePath = Environ$("temp") & ""
TempFileName = "Rapport hebdomadaire de " & wb '.Name & " "
&
Format(Now, "dd-mmm-yy h-mm-ss")
If Val(Application.Version) < 12 Then
'You use Excel 2000-2003
FileExtStr = ".xls": FileFormatNum = -4143
End If
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
With Dest
.SaveAs TempFilePath & TempFileName & FileExtStr,
FileFormat:=FileFormatNum
On Error Resume Next
With OutMail
.To = ""
.cc = ""
.BCC = ""
.Subject = "Rapport hebdomadaire"
.Body = "Bonjour, voici mon rapport hebdomadaire. "
&
wb
.Attachments.Add Dest.FullName
.Display 'or use .Display
End With
On Error GoTo 0
.Close SaveChanges:úlse
End With
Kill TempFilePath & TempFileName & FileExtStr
Set OutMail = Nothing
Set OutApp = Nothing
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub


Le seul probleme que j'ai avec ce code est que dans la piece
jointe,
je
n'ai plus aucun respect de ma mise en page, qui sera necessaire
aux
administratif lors de l'impression ???

Comment puis je resoudre ce probleme (si cela est necessaire,
peut
etre
convertir ma plage de selection en pdf dans un ficvhier
temporaire,
mais
j'ai vu qu'il fallait 4 applications ???)

D'autres methodes peuvent etres proposée si necessaire

La question que je me pose est que veut dire "FileExtStr >>>>>>>>>>> ".xls":
FileFormatNum = -4143" je ne comprends pas trop bien cette
ligne
de
code

Merci pour votre aide
Bonne journée

RP


--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/







--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/







--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/















--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/







--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/












Avatar
Excell
Bonjour,

apres beeaucoup d'essai, l'image n'apparait jamais.
La je coinces
merci pour l'aide
RP

Le Wed, 19 Dec 2007 18:39:46 +0100, Daniel.C a
écrit:

En l'insérant dans le classeur joint :
Genre :
Range("F9").Select
ActiveSheet.Pictures.Insert( _
"C:Documents and SettingsColardelleMes documentsMes
imagessign.jpg"). _
Select
Daniel
"Excell" a écrit dans le message de news:



dans une cellule,
j'ai insere une image qui represente ma signature
(signature faite sur papier puis scannée, cree un fichier et insere
(inserer un image depuis le fichier ... dans excell)
je n'ai pas trouve d'autres solutions pour que ma signature apparaise
sur
la feuille(cette signature est absolument necessaire sur le document -
rapport de prestation hebdomadaire)

RP




Le Wed, 19 Dec 2007 16:48:43 +0100, Daniel.C a
écrit:

Quelle image ?
Daniel
"Excell" a écrit dans le message de news:



merci daniel C

je venais de la trouver aussi

j'ai egalement reussi ma mise en page par rapport aux marges, mais
l'image
n'apparait toujours pas ???
RP

Le Wed, 19 Dec 2007 13:28:32 +0100, Excell a
écrit:



en fait, par defaut l'impression se fait en mode "portrait"
et si on veux que la page soit horizontal on choisi le mode
"paysage"Le
Wed, 19 Dec 2007 12:03:20 +0100, Excell a écrit:

Re bonjour, merci beaucoup pour ce probleme résolu
mais j'ai encore un souci car je souhaite encore 2 choses pour que
tout
soit parfait
c'est que la selection soit en mode paysage et non en mode portrait
et
l'image inserée n'est pas dans le mail
Je continue mes recherches de mon coté aussi

Grand merci pour ta patience daniel c
J'arrive au but
RP

Le Wed, 19 Dec 2007 10:27:39 +0100, Daniel.C

a
écrit:

Bonjour.
Il faut mettre en forme le classeur en copiant les informations une
par une
au lieu de les copier en bloc.
Au lieu de :
Source.Copy
With Dest.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial Paste:=xlPasteValues
.Cells(1).PasteSpecial Paste:=xlPasteFormats
.Cells(1).Select
Application.CutCopyMode = False
End With

mets :

With Dest.Sheets(1)
For Each c In Source
c.Copy
.Range(c.Address).PasteSpecial xlPasteColumnWidths
.Range(c.Address).PasteSpecial xlPasteValues
.Range(c.Address).PasteSpecial xlPasteFormats
Application.CutCopyMode = False
Next c
End With

Daniel
"Excell" a écrit dans le message de news:

Bonjour

Merci pour les renseignements et pour l'aide, mais si il y a des
colonnes
masquées(necessaire pour utilisation)
existe t 'il un moyen pour que je puisse effectué une mise en page
par
code vba pour resoudre mon probleme

D'avance merci et bonne journée
RP

Le Tue, 18 Dec 2007 11:41:39 +0100, Daniel.C

a
écrit:

Je viens d'exécuter ton code. Tu envoies une feuille en tant que
classeur en
pièce jointe. Le fait que ta mise en page diffère de celle du
classeur
original provient du fait que tu ne sélectionnes que les
celllules
visibles.
Si tu as des lignes ou des colonnes masquées, il se produit un
décalage
au
collage.
Daniel
"Excell" a écrit dans le message de news:

bonjour,
merci pour l'explication,
petite precision, je n'envoie pas un classeur par mail mais un
plage
selectionnée sur une feuille et la mise en page n'est pas tenue
en
compte
lors de l'envoi de cette selection

Bonne journée
RP

Le Mon, 17 Dec 2007 20:32:37 +0100, Daniel.C
a
écrit:

Bonsoir.
Je n'ai ps épluché tout ton code; apparemment tu l'as pioché
chez
Ron
De
Bruin. Les questions que tu te poses à propos du
"FileFormatNum"
viennent du
fait que la macro différencie les fichiers aux format s2003 et
2007.
Sinon,
je ne vois pas pourquoi le classeur attaché n'aurait pas le
format
que
tu
lui assignes ?
Cordialement.
Daniel
"Excell" a écrit dans le message de
news:

Bonjour tout le monde,


Apres les aides recues et trouvée sur d'autres sites, en
anglais,
voici le code que j'utilise pour envoyer un mail avec une
plage
selectionnée en cliquant sur un bouton de commande.

Sub Button16_Click()
'Working in 2000-2007
Dim Source As Range
Dim Dest As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim OutApp As Object
Dim OutMail As Object
Set Source = Nothing
On Error Resume Next
Set Source =
Range("b2:u43").SpecialCells(xlCellTypeVisible)
On Error GoTo 0
If Source Is Nothing Then
MsgBox "La source n'est pas selectionnée ou la feuille
est
protégée, corrigé svp et réessayé.", vbOKOnly
Exit Sub
End If
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
'Set
wb = Sheets("Rapports").Range("c3") 'ActiveWorkbook
Set Dest = Workbooks.Add(xlWBATWorksheet)
Source.Copy
With Dest.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial Paste:=xlPasteValues
.Cells(1).PasteSpecial Paste:=xlPasteFormats
.Cells(1).Select
Application.CutCopyMode = False
End With
TempFilePath = Environ$("temp") & ""
TempFileName = "Rapport hebdomadaire de " & wb '.Name & "
"
&
Format(Now, "dd-mmm-yy h-mm-ss")
If Val(Application.Version) < 12 Then
'You use Excel 2000-2003
FileExtStr = ".xls": FileFormatNum = -4143
End If
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
With Dest
.SaveAs TempFilePath & TempFileName & FileExtStr,
FileFormat:=FileFormatNum
On Error Resume Next
With OutMail
.To = ""
.cc = ""
.BCC = ""
.Subject = "Rapport hebdomadaire"
.Body = "Bonjour, voici mon rapport hebdomadaire.
"
&
wb
.Attachments.Add Dest.FullName
.Display 'or use .Display
End With
On Error GoTo 0
.Close SaveChanges:úlse
End With
Kill TempFilePath & TempFileName & FileExtStr
Set OutMail = Nothing
Set OutApp = Nothing
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub


Le seul probleme que j'ai avec ce code est que dans la piece
jointe,
je
n'ai plus aucun respect de ma mise en page, qui sera
necessaire
aux
administratif lors de l'impression ???

Comment puis je resoudre ce probleme (si cela est necessaire,
peut
etre
convertir ma plage de selection en pdf dans un ficvhier
temporaire,
mais
j'ai vu qu'il fallait 4 applications ???)

D'autres methodes peuvent etres proposée si necessaire

La question que je me pose est que veut dire "FileExtStr >>>>>>>>>>>> ".xls":
FileFormatNum = -4143" je ne comprends pas trop bien cette
ligne
de
code

Merci pour votre aide
Bonne journée

RP


--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/







--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/







--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/















--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/







--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/







--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/












Avatar
Daniel.C
Bonjour.
L'image doit être collée dans le classeur mis en pièce jointe.
Poste ton code modifié.
Daniel
"Excell" a écrit dans le message de news:

Bonjour,

apres beeaucoup d'essai, l'image n'apparait jamais.
La je coinces
merci pour l'aide
RP

Le Wed, 19 Dec 2007 18:39:46 +0100, Daniel.C a
écrit:

En l'insérant dans le classeur joint :
Genre :
Range("F9").Select
ActiveSheet.Pictures.Insert( _
"C:Documents and SettingsColardelleMes documentsMes
imagessign.jpg"). _
Select
Daniel
"Excell" a écrit dans le message de news:



dans une cellule,
j'ai insere une image qui represente ma signature
(signature faite sur papier puis scannée, cree un fichier et insere
(inserer un image depuis le fichier ... dans excell)
je n'ai pas trouve d'autres solutions pour que ma signature apparaise
sur
la feuille(cette signature est absolument necessaire sur le document -
rapport de prestation hebdomadaire)

RP




Le Wed, 19 Dec 2007 16:48:43 +0100, Daniel.C a
écrit:

Quelle image ?
Daniel
"Excell" a écrit dans le message de news:



merci daniel C

je venais de la trouver aussi

j'ai egalement reussi ma mise en page par rapport aux marges, mais
l'image
n'apparait toujours pas ???
RP

Le Wed, 19 Dec 2007 13:28:32 +0100, Excell a
écrit:



en fait, par defaut l'impression se fait en mode "portrait"
et si on veux que la page soit horizontal on choisi le mode
"paysage"Le
Wed, 19 Dec 2007 12:03:20 +0100, Excell a écrit:

Re bonjour, merci beaucoup pour ce probleme résolu
mais j'ai encore un souci car je souhaite encore 2 choses pour que
tout
soit parfait
c'est que la selection soit en mode paysage et non en mode portrait
et
l'image inserée n'est pas dans le mail
Je continue mes recherches de mon coté aussi

Grand merci pour ta patience daniel c
J'arrive au but
RP

Le Wed, 19 Dec 2007 10:27:39 +0100, Daniel.C

a
écrit:

Bonjour.
Il faut mettre en forme le classeur en copiant les informations une
par une
au lieu de les copier en bloc.
Au lieu de :
Source.Copy
With Dest.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial Paste:=xlPasteValues
.Cells(1).PasteSpecial Paste:=xlPasteFormats
.Cells(1).Select
Application.CutCopyMode = False
End With

mets :

With Dest.Sheets(1)
For Each c In Source
c.Copy
.Range(c.Address).PasteSpecial xlPasteColumnWidths
.Range(c.Address).PasteSpecial xlPasteValues
.Range(c.Address).PasteSpecial xlPasteFormats
Application.CutCopyMode = False
Next c
End With

Daniel
"Excell" a écrit dans le message de news:

Bonjour

Merci pour les renseignements et pour l'aide, mais si il y a des
colonnes
masquées(necessaire pour utilisation)
existe t 'il un moyen pour que je puisse effectué une mise en page
par
code vba pour resoudre mon probleme

D'avance merci et bonne journée
RP

Le Tue, 18 Dec 2007 11:41:39 +0100, Daniel.C

a
écrit:

Je viens d'exécuter ton code. Tu envoies une feuille en tant que
classeur en
pièce jointe. Le fait que ta mise en page diffère de celle du
classeur
original provient du fait que tu ne sélectionnes que les
celllules
visibles.
Si tu as des lignes ou des colonnes masquées, il se produit un
décalage
au
collage.
Daniel
"Excell" a écrit dans le message de news:

bonjour,
merci pour l'explication,
petite precision, je n'envoie pas un classeur par mail mais un
plage
selectionnée sur une feuille et la mise en page n'est pas tenue
en
compte
lors de l'envoi de cette selection

Bonne journée
RP

Le Mon, 17 Dec 2007 20:32:37 +0100, Daniel.C
a
écrit:

Bonsoir.
Je n'ai ps épluché tout ton code; apparemment tu l'as pioché
chez
Ron
De
Bruin. Les questions que tu te poses à propos du
"FileFormatNum"
viennent du
fait que la macro différencie les fichiers aux format s2003 et
2007.
Sinon,
je ne vois pas pourquoi le classeur attaché n'aurait pas le
format
que
tu
lui assignes ?
Cordialement.
Daniel
"Excell" a écrit dans le message de
news:

Bonjour tout le monde,


Apres les aides recues et trouvée sur d'autres sites, en
anglais,
voici le code que j'utilise pour envoyer un mail avec une
plage
selectionnée en cliquant sur un bouton de commande.

Sub Button16_Click()
'Working in 2000-2007
Dim Source As Range
Dim Dest As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim OutApp As Object
Dim OutMail As Object
Set Source = Nothing
On Error Resume Next
Set Source =
Range("b2:u43").SpecialCells(xlCellTypeVisible)
On Error GoTo 0
If Source Is Nothing Then
MsgBox "La source n'est pas selectionnée ou la feuille
est
protégée, corrigé svp et réessayé.", vbOKOnly
Exit Sub
End If
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
'Set
wb = Sheets("Rapports").Range("c3") 'ActiveWorkbook
Set Dest = Workbooks.Add(xlWBATWorksheet)
Source.Copy
With Dest.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial Paste:=xlPasteValues
.Cells(1).PasteSpecial Paste:=xlPasteFormats
.Cells(1).Select
Application.CutCopyMode = False
End With
TempFilePath = Environ$("temp") & ""
TempFileName = "Rapport hebdomadaire de " & wb '.Name & "
"
&
Format(Now, "dd-mmm-yy h-mm-ss")
If Val(Application.Version) < 12 Then
'You use Excel 2000-2003
FileExtStr = ".xls": FileFormatNum = -4143
End If
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
With Dest
.SaveAs TempFilePath & TempFileName & FileExtStr,
FileFormat:=FileFormatNum
On Error Resume Next
With OutMail
.To = ""
.cc = ""
.BCC = ""
.Subject = "Rapport hebdomadaire"
.Body = "Bonjour, voici mon rapport hebdomadaire.
"
&
wb
.Attachments.Add Dest.FullName
.Display 'or use .Display
End With
On Error GoTo 0
.Close SaveChanges:úlse
End With
Kill TempFilePath & TempFileName & FileExtStr
Set OutMail = Nothing
Set OutApp = Nothing
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub


Le seul probleme que j'ai avec ce code est que dans la piece
jointe,
je
n'ai plus aucun respect de ma mise en page, qui sera
necessaire
aux
administratif lors de l'impression ???

Comment puis je resoudre ce probleme (si cela est necessaire,
peut
etre
convertir ma plage de selection en pdf dans un ficvhier
temporaire,
mais
j'ai vu qu'il fallait 4 applications ???)

D'autres methodes peuvent etres proposée si necessaire

La question que je me pose est que veut dire "FileExtStr >>>>>>>>>>>>> ".xls":
FileFormatNum = -4143" je ne comprends pas trop bien cette
ligne
de
code

Merci pour votre aide
Bonne journée

RP


--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/







--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/







--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/















--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/







--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/







--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/














Avatar
Excell
voici la nouvelle version du code

Sub Button16_Click()
'Working in 2000-2007
Dim Source As Range
Dim Dest As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim OutApp As Object
Dim OutMail As Object
Set Source = Nothing
On Error Resume Next
Set Source = Range("a1:u44").SpecialCells(xlCellTypeVisible)

Range("L3").Select
ActiveSheet.Picture.Insert ("c:image.jpeg")

With ActiveSheet.PageSetup
.Orientation = xlLandscape
.Picture = picpicture
.LeftMargin = Application.CentimetersToPoints(0.1)
.RightMargin = Application.CentimetersToPoints(0.1)
.TopMargin = Application.CentimetersToPoints(0.1)
.BottomMargin = Application.CentimetersToPoints(0.1)
End With
On Error GoTo 0
If Source Is Nothing Then
MsgBox "blabala.....", vbOKOnly
Exit Sub
End If
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
'Set
wb = Sheets("Rapports").Range("c3") 'ActiveWorkbook
Set Dest = Workbooks.Add(xlWBATWorksheet)
Source.Copy

' Range("L3").Select
' ActiveSheet.Picture.Insert ("c:image.jpeg")

With Dest.Sheets(1)
With ActiveSheet.PageSetup
.Orientation = xlLandscape
.LeftMargin = Application.CentimetersToPoints(0.1)
.RightMargin = Application.CentimetersToPoints(0.1)
.TopMargin = Application.CentimetersToPoints(0.1)
.BottomMargin = Application.CentimetersToPoints(0.1)
End With
For Each c In Source
c.Copy
.Range(c.Address).PasteSpecial xlPasteColumnWidths
.Range(c.Address).PasteSpecial xlPasteValues
.Range(c.Address).PasteSpecial xlPasteFormats
Application.CutCopyMode = False
Next c
end With
TempFilePath = Environ$("temp") & ""
TempFileName = "Rapport hebdomadaire de " & wb '.Name & " " &
Format(Now, "dd-mmm-yy h-mm-ss")
If Val(Application.Version) < 12 Then
'You use Excel 2000-2003
FileExtStr = ".xls": FileFormatNum = -4143
End If
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
With Dest
.SaveAs TempFilePath & TempFileName & FileExtStr,
FileFormat:=FileFormatNum
On Error Resume Next
With OutMail
.To = "adressemail"
.cc = ""
.BCC = ""
.Subject = "Rapport hebdomadaire"
.Body = "Bonjour, voici mon rapport hebdomadaire. " & wb
.Attachments.Add Dest.FullName
.Display
End With
On Error GoTo 0
.Close savechanges:úlse
End With
Kill TempFilePath & TempFileName & FileExtStr
Set OutMail = Nothing
Set OutApp = Nothing
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub


Là ou j'ai mis les lignes pour l'image(14 eme ligne),ok le document est
envoyé sans l'image
ailleurs(ou en plus des lignes 14 et 15), comme celles mises en
commentaire sur ce code, j'ai une erreur et excell me dit "erreur
d'execution'438':propriete et methode non gérée par cet objet" et le
debogage va sur la ligne
ActiveSheet.Picture.Insert ("c:image.jpeg")

Le Thu, 20 Dec 2007 12:45:19 +0100, Daniel.C a
écrit:

Bonjour.
L'image doit être collée dans le classeur mis en pièce jointe.
Poste ton code modifié.
Daniel
"Excell" a écrit dans le message de news:

Bonjour,

apres beeaucoup d'essai, l'image n'apparait jamais.
La je coinces
merci pour l'aide
RP

le client e-mail révolutionnaire d'Opera : http://www.opera.com/mail/




Avatar
Daniel.C
Tu insères l'image sur la feuille d'origine, pas sur le classeur que tu mets
en pièce jointe.
Modifie :

With Dest.Sheets(1)
With ActiveSheet.PageSetup
.Orientation = xlLandscape
.LeftMargin = Application.CentimetersToPoints(0.1)
.RightMargin = Application.CentimetersToPoints(0.1)
.TopMargin = Application.CentimetersToPoints(0.1)
.BottomMargin = Application.CentimetersToPoints(0.1)
End With
For Each c In Source
c.Copy
.Range(c.Address).PasteSpecial xlPasteColumnWidths
.Range(c.Address).PasteSpecial xlPasteValues
.Range(c.Address).PasteSpecial xlPasteFormats
Application.CutCopyMode = False
Next c
End With

en :

With Dest.Sheets(1)
With ActiveSheet.PageSetup
.Orientation = xlLandscape
.LeftMargin = Application.CentimetersToPoints(0.1)
.RightMargin = Application.CentimetersToPoints(0.1)
.TopMargin = Application.CentimetersToPoints(0.1)
.BottomMargin = Application.CentimetersToPoints(0.1)
End With
For Each c In Source
c.Copy
.Range(c.Address).PasteSpecial xlPasteColumnWidths
.Range(c.Address).PasteSpecial xlPasteValues
.Range(c.Address).PasteSpecial xlPasteFormats
Application.CutCopyMode = False
Next c
.Range("L3").Select
.Picture.Insert ("c:image.jpeg")
End With

Modifie le "L3" pour positionner la signature sur la feuille.
Daniel
"Excell" a écrit dans le message de news:

voici la nouvelle version du code

Sub Button16_Click()
'Working in 2000-2007
Dim Source As Range
Dim Dest As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim OutApp As Object
Dim OutMail As Object
Set Source = Nothing
On Error Resume Next
Set Source = Range("a1:u44").SpecialCells(xlCellTypeVisible)

Range("L3").Select
ActiveSheet.Picture.Insert ("c:image.jpeg")

With ActiveSheet.PageSetup
.Orientation = xlLandscape
.Picture = picpicture
.LeftMargin = Application.CentimetersToPoints(0.1)
.RightMargin = Application.CentimetersToPoints(0.1)
.TopMargin = Application.CentimetersToPoints(0.1)
.BottomMargin = Application.CentimetersToPoints(0.1)
End With
On Error GoTo 0
If Source Is Nothing Then
MsgBox "blabala.....", vbOKOnly
Exit Sub
End If
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
'Set
wb = Sheets("Rapports").Range("c3") 'ActiveWorkbook
Set Dest = Workbooks.Add(xlWBATWorksheet)
Source.Copy

' Range("L3").Select
' ActiveSheet.Picture.Insert ("c:image.jpeg")

With Dest.Sheets(1)
With ActiveSheet.PageSetup
.Orientation = xlLandscape
.LeftMargin = Application.CentimetersToPoints(0.1)
.RightMargin = Application.CentimetersToPoints(0.1)
.TopMargin = Application.CentimetersToPoints(0.1)
.BottomMargin = Application.CentimetersToPoints(0.1)
End With
For Each c In Source
c.Copy
.Range(c.Address).PasteSpecial xlPasteColumnWidths
.Range(c.Address).PasteSpecial xlPasteValues
.Range(c.Address).PasteSpecial xlPasteFormats
Application.CutCopyMode = False
Next c
end With
TempFilePath = Environ$("temp") & ""
TempFileName = "Rapport hebdomadaire de " & wb '.Name & " " &
Format(Now, "dd-mmm-yy h-mm-ss")
If Val(Application.Version) < 12 Then
'You use Excel 2000-2003
FileExtStr = ".xls": FileFormatNum = -4143
End If
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
With Dest
.SaveAs TempFilePath & TempFileName & FileExtStr,
FileFormat:=FileFormatNum
On Error Resume Next
With OutMail
.To = "adressemail"
.cc = ""
.BCC = ""
.Subject = "Rapport hebdomadaire"
.Body = "Bonjour, voici mon rapport hebdomadaire. " & wb
.Attachments.Add Dest.FullName
.Display
End With
On Error GoTo 0
.Close savechanges:úlse
End With
Kill TempFilePath & TempFileName & FileExtStr
Set OutMail = Nothing
Set OutApp = Nothing
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub


Là ou j'ai mis les lignes pour l'image(14 eme ligne),ok le document est
envoyé sans l'image
ailleurs(ou en plus des lignes 14 et 15), comme celles mises en
commentaire sur ce code, j'ai une erreur et excell me dit "erreur
d'execution'438':propriete et methode non gérée par cet objet" et le
debogage va sur la ligne
ActiveSheet.Picture.Insert ("c:image.jpeg")

Le Thu, 20 Dec 2007 12:45:19 +0100, Daniel.C a
écrit:

Bonjour.
L'image doit être collée dans le classeur mis en pièce jointe.
Poste ton code modifié.
Daniel
"Excell" a écrit dans le message de news:

Bonjour,

apres beeaucoup d'essai, l'image n'apparait jamais.
La je coinces
merci pour l'aide
RP

le client e-mail révolutionnaire d'Opera : http://www.opera.com/mail/






Avatar
Excell
j'ai toujours le meme message d'erreur,
désolé


Le Thu, 20 Dec 2007 14:15:31 +0100, Daniel.C a
écrit:

Tu insères l'image sur la feuille d'origine, pas sur le classeur que tu
mets
en pièce jointe.
Modifie :

With Dest.Sheets(1)
With ActiveSheet.PageSetup
.Orientation = xlLandscape
.LeftMargin = Application.CentimetersToPoints(0.1)
.RightMargin = Application.CentimetersToPoints(0.1)
.TopMargin = Application.CentimetersToPoints(0.1)
.BottomMargin = Application.CentimetersToPoints(0.1)
End With
For Each c In Source
c.Copy
.Range(c.Address).PasteSpecial xlPasteColumnWidths
.Range(c.Address).PasteSpecial xlPasteValues
.Range(c.Address).PasteSpecial xlPasteFormats
Application.CutCopyMode = False
Next c
End With

en :

With Dest.Sheets(1)
With ActiveSheet.PageSetup
.Orientation = xlLandscape
.LeftMargin = Application.CentimetersToPoints(0.1)
.RightMargin = Application.CentimetersToPoints(0.1)
.TopMargin = Application.CentimetersToPoints(0.1)
.BottomMargin = Application.CentimetersToPoints(0.1)
End With
For Each c In Source
c.Copy
.Range(c.Address).PasteSpecial xlPasteColumnWidths
.Range(c.Address).PasteSpecial xlPasteValues
.Range(c.Address).PasteSpecial xlPasteFormats
Application.CutCopyMode = False
Next c
.Range("L3").Select
.Picture.Insert ("c:image.jpeg")
End With

Modifie le "L3" pour positionner la signature sur la feuille.
Daniel
"Excell" a écrit dans le message de news:

voici la nouvelle version du code

Sub Button16_Click()
'Working in 2000-2007
Dim Source As Range
Dim Dest As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim OutApp As Object
Dim OutMail As Object
Set Source = Nothing
On Error Resume Next
Set Source = Range("a1:u44").SpecialCells(xlCellTypeVisible)

Range("L3").Select
ActiveSheet.Picture.Insert ("c:image.jpeg")

With ActiveSheet.PageSetup
.Orientation = xlLandscape
.Picture = picpicture
.LeftMargin = Application.CentimetersToPoints(0.1)
.RightMargin = Application.CentimetersToPoints(0.1)
.TopMargin = Application.CentimetersToPoints(0.1)
.BottomMargin = Application.CentimetersToPoints(0.1)
End With
On Error GoTo 0
If Source Is Nothing Then
MsgBox "blabala.....", vbOKOnly
Exit Sub
End If
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
'Set
wb = Sheets("Rapports").Range("c3") 'ActiveWorkbook
Set Dest = Workbooks.Add(xlWBATWorksheet)
Source.Copy

' Range("L3").Select
' ActiveSheet.Picture.Insert ("c:image.jpeg")

With Dest.Sheets(1)
With ActiveSheet.PageSetup
.Orientation = xlLandscape
.LeftMargin = Application.CentimetersToPoints(0.1)
.RightMargin = Application.CentimetersToPoints(0.1)
.TopMargin = Application.CentimetersToPoints(0.1)
.BottomMargin = Application.CentimetersToPoints(0.1)
End With
For Each c In Source
c.Copy
.Range(c.Address).PasteSpecial xlPasteColumnWidths
.Range(c.Address).PasteSpecial xlPasteValues
.Range(c.Address).PasteSpecial xlPasteFormats
Application.CutCopyMode = False
Next c
end With
TempFilePath = Environ$("temp") & ""
TempFileName = "Rapport hebdomadaire de " & wb '.Name & " " &
Format(Now, "dd-mmm-yy h-mm-ss")
If Val(Application.Version) < 12 Then
'You use Excel 2000-2003
FileExtStr = ".xls": FileFormatNum = -4143
End If
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
With Dest
.SaveAs TempFilePath & TempFileName & FileExtStr,
FileFormat:=FileFormatNum
On Error Resume Next
With OutMail
.To = "adressemail"
.cc = ""
.BCC = ""
.Subject = "Rapport hebdomadaire"
.Body = "Bonjour, voici mon rapport hebdomadaire. " & wb
.Attachments.Add Dest.FullName
.Display
End With
On Error GoTo 0
.Close savechanges:úlse
End With
Kill TempFilePath & TempFileName & FileExtStr
Set OutMail = Nothing
Set OutApp = Nothing
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub


Là ou j'ai mis les lignes pour l'image(14 eme ligne),ok le document est
envoyé sans l'image
ailleurs(ou en plus des lignes 14 et 15), comme celles mises en
commentaire sur ce code, j'ai une erreur et excell me dit "erreur
d'execution'438':propriete et methode non gérée par cet objet" et le
debogage va sur la ligne
ActiveSheet.Picture.Insert ("c:image.jpeg")

Le Thu, 20 Dec 2007 12:45:19 +0100, Daniel.C a
écrit:

Bonjour.
L'image doit être collée dans le classeur mis en pièce jointe.
Poste ton code modifié.
Daniel
"Excell" a écrit dans le message de news:

Bonjour,

apres beeaucoup d'essai, l'image n'apparait jamais.
La je coinces
merci pour l'aide
RP

le client e-mail révolutionnaire d'Opera : http://www.opera.com/mail/









--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/




Avatar
Daniel.C
Oups.
.Pictures.Insert("c:image.jpeg").Select
Daniel
"Excell" a écrit dans le message de news:


j'ai toujours le meme message d'erreur,
désolé


Le Thu, 20 Dec 2007 14:15:31 +0100, Daniel.C a
écrit:

Tu insères l'image sur la feuille d'origine, pas sur le classeur que tu
mets
en pièce jointe.
Modifie :

With Dest.Sheets(1)
With ActiveSheet.PageSetup
.Orientation = xlLandscape
.LeftMargin = Application.CentimetersToPoints(0.1)
.RightMargin = Application.CentimetersToPoints(0.1)
.TopMargin = Application.CentimetersToPoints(0.1)
.BottomMargin = Application.CentimetersToPoints(0.1)
End With
For Each c In Source
c.Copy
.Range(c.Address).PasteSpecial xlPasteColumnWidths
.Range(c.Address).PasteSpecial xlPasteValues
.Range(c.Address).PasteSpecial xlPasteFormats
Application.CutCopyMode = False
Next c
End With

en :

With Dest.Sheets(1)
With ActiveSheet.PageSetup
.Orientation = xlLandscape
.LeftMargin = Application.CentimetersToPoints(0.1)
.RightMargin = Application.CentimetersToPoints(0.1)
.TopMargin = Application.CentimetersToPoints(0.1)
.BottomMargin = Application.CentimetersToPoints(0.1)
End With
For Each c In Source
c.Copy
.Range(c.Address).PasteSpecial xlPasteColumnWidths
.Range(c.Address).PasteSpecial xlPasteValues
.Range(c.Address).PasteSpecial xlPasteFormats
Application.CutCopyMode = False
Next c
.Range("L3").Select
.Picture.Insert ("c:image.jpeg")
End With

Modifie le "L3" pour positionner la signature sur la feuille.
Daniel
"Excell" a écrit dans le message de news:

voici la nouvelle version du code

Sub Button16_Click()
'Working in 2000-2007
Dim Source As Range
Dim Dest As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim OutApp As Object
Dim OutMail As Object
Set Source = Nothing
On Error Resume Next
Set Source = Range("a1:u44").SpecialCells(xlCellTypeVisible)

Range("L3").Select
ActiveSheet.Picture.Insert ("c:image.jpeg")

With ActiveSheet.PageSetup
.Orientation = xlLandscape
.Picture = picpicture
.LeftMargin = Application.CentimetersToPoints(0.1)
.RightMargin = Application.CentimetersToPoints(0.1)
.TopMargin = Application.CentimetersToPoints(0.1)
.BottomMargin = Application.CentimetersToPoints(0.1)
End With
On Error GoTo 0
If Source Is Nothing Then
MsgBox "blabala.....", vbOKOnly
Exit Sub
End If
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
'Set
wb = Sheets("Rapports").Range("c3") 'ActiveWorkbook
Set Dest = Workbooks.Add(xlWBATWorksheet)
Source.Copy

' Range("L3").Select
' ActiveSheet.Picture.Insert ("c:image.jpeg")

With Dest.Sheets(1)
With ActiveSheet.PageSetup
.Orientation = xlLandscape
.LeftMargin = Application.CentimetersToPoints(0.1)
.RightMargin = Application.CentimetersToPoints(0.1)
.TopMargin = Application.CentimetersToPoints(0.1)
.BottomMargin = Application.CentimetersToPoints(0.1)
End With
For Each c In Source
c.Copy
.Range(c.Address).PasteSpecial xlPasteColumnWidths
.Range(c.Address).PasteSpecial xlPasteValues
.Range(c.Address).PasteSpecial xlPasteFormats
Application.CutCopyMode = False
Next c
end With
TempFilePath = Environ$("temp") & ""
TempFileName = "Rapport hebdomadaire de " & wb '.Name & " " &
Format(Now, "dd-mmm-yy h-mm-ss")
If Val(Application.Version) < 12 Then
'You use Excel 2000-2003
FileExtStr = ".xls": FileFormatNum = -4143
End If
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
With Dest
.SaveAs TempFilePath & TempFileName & FileExtStr,
FileFormat:=FileFormatNum
On Error Resume Next
With OutMail
.To = "adressemail"
.cc = ""
.BCC = ""
.Subject = "Rapport hebdomadaire"
.Body = "Bonjour, voici mon rapport hebdomadaire. " & wb
.Attachments.Add Dest.FullName
.Display
End With
On Error GoTo 0
.Close savechanges:úlse
End With
Kill TempFilePath & TempFileName & FileExtStr
Set OutMail = Nothing
Set OutApp = Nothing
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub


Là ou j'ai mis les lignes pour l'image(14 eme ligne),ok le document est
envoyé sans l'image
ailleurs(ou en plus des lignes 14 et 15), comme celles mises en
commentaire sur ce code, j'ai une erreur et excell me dit "erreur
d'execution'438':propriete et methode non gérée par cet objet" et le
debogage va sur la ligne
ActiveSheet.Picture.Insert ("c:image.jpeg")

Le Thu, 20 Dec 2007 12:45:19 +0100, Daniel.C a
écrit:

Bonjour.
L'image doit être collée dans le classeur mis en pièce jointe.
Poste ton code modifié.
Daniel
"Excell" a écrit dans le message de news:

Bonjour,

apres beeaucoup d'essai, l'image n'apparait jamais.
La je coinces
merci pour l'aide
RP

le client e-mail révolutionnaire d'Opera : http://www.opera.com/mail/









--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/






1 2 3