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/
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/
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/
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/
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" <RomualdP@happymany.net> a écrit dans le message de news:
op.t3gy5ita0uk7wd@romu-b9b4abcecb...
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/
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/
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/
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 <dZZZcolardelle@free.fr> 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" <RomualdP@happymany.net> a écrit dans le message de news:
op.t3gy5ita0uk7wd@romu-b9b4abcecb...
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/
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/
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/
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" <test@happymany.net> a écrit dans le message de news:
op.t3iwrswukiwcv4@romu-b9b4abcecb...
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 <dZZZcolardelle@free.fr> 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" <RomualdP@happymany.net> a écrit dans le message de news:
op.t3gy5ita0uk7wd@romu-b9b4abcecb...
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/
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/
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/
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 <dZZZcolardelle@free.fr> 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" <test@happymany.net> a écrit dans le message de news:
op.t3iwrswukiwcv4@romu-b9b4abcecb...
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 <dZZZcolardelle@free.fr> 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" <RomualdP@happymany.net> a écrit dans le message de news:
op.t3gy5ita0uk7wd@romu-b9b4abcecb...
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/
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/
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/
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" <test@happymany.net> a écrit dans le message de news:
op.t3klolzckiwcv4@romu-b9b4abcecb...
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 <dZZZcolardelle@free.fr> 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" <test@happymany.net> a écrit dans le message de news:
op.t3iwrswukiwcv4@romu-b9b4abcecb...
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 <dZZZcolardelle@free.fr>
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" <RomualdP@happymany.net> a écrit dans le message de news:
op.t3gy5ita0uk7wd@romu-b9b4abcecb...
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/
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/
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/
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 <dZZZcolardelle@free.fr> 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" <test@happymany.net> a écrit dans le message de news:
op.t3klolzckiwcv4@romu-b9b4abcecb...
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 <dZZZcolardelle@free.fr> 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" <test@happymany.net> a écrit dans le message de news:
op.t3iwrswukiwcv4@romu-b9b4abcecb...
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 <dZZZcolardelle@free.fr>
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" <RomualdP@happymany.net> a écrit dans le message de news:
op.t3gy5ita0uk7wd@romu-b9b4abcecb...
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/
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/
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/
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 <dZZZcolardelle@free.fr> 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" <test@happymany.net> a écrit dans le message de news:
op.t3klolzckiwcv4@romu-b9b4abcecb...
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 <dZZZcolardelle@free.fr> 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" <test@happymany.net> a écrit dans le message de news:
op.t3iwrswukiwcv4@romu-b9b4abcecb...
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 <dZZZcolardelle@free.fr>
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" <RomualdP@happymany.net> a écrit dans le message de news:
op.t3gy5ita0uk7wd@romu-b9b4abcecb...
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/
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/
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/
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 <dZZZcolardelle@free.fr> 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" <test@happymany.net> a écrit dans le message de news:
op.t3klolzckiwcv4@romu-b9b4abcecb...
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 <dZZZcolardelle@free.fr> 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" <test@happymany.net> a écrit dans le message de news:
op.t3iwrswukiwcv4@romu-b9b4abcecb...
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
<dZZZcolardelle@free.fr> 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" <RomualdP@happymany.net> a écrit dans le message de news:
op.t3gy5ita0uk7wd@romu-b9b4abcecb...
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/
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/
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:
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 <test@happymany.net> 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: