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

mail

7 réponses
Avatar
IMER09
Bonjour a tous

Il y a quelques temps j'avais posé une question pour envoyer un mail par
excel, Daniel.C m'avait repondu et c'etait parfait.
J'ai aujourd'hui un PB : Ce fichier est partagé entre des versions excel
2003 et 2007. Quand j'envoi par 2003 la personne qui le recoit n'a pas de PB
mais quand c'est par 2007 le fichier est ilisible avec excel 2003.
Voice mon code:
Sub Imail()

If Range("AL7") <> "1" Then
If Range("AL7") <> "0" Then
Dim W As Range
For Each W In Range("AK7")
Range("A1").Select

Sheets("DAC").Activate
Range("A1:O44").Copy
Workbooks.Add

ActiveSheet.Paste
Application.DisplayAlerts = False
ActiveSheet.SaveAs "\\Bascule\SharedDocs\D.A.C.xls"

Columns("A:A").ColumnWidth = 2.22
Columns("B:B").ColumnWidth = 2.22
Columns("C:C").ColumnWidth = 12.11
Columns("D:D").ColumnWidth = 12.56
Columns("E:E").ColumnWidth = 3
Columns("F:F").ColumnWidth = 3.89
Columns("G:G").ColumnWidth = 2.78
Columns("H:H").ColumnWidth = 12.44
Columns("I:I").ColumnWidth = 14.11
Columns("J:J").ColumnWidth = 2.22
Columns("K:K").ColumnWidth = 3
Columns("L:L").ColumnWidth = 2.22
Columns("M:M").ColumnWidth = 6.33
Columns("N:N").ColumnWidth = 2.22
Columns("O:O").ColumnWidth = 8.89
Rows("2:2").RowHeight = 65.4
Rows("9:9").RowHeight = 35.4
ActiveWorkbook.Close SaveChanges:=True
Application.DisplayAlerts = True

Dim iMsg As Object
Dim iConf As Object
Dim strbody As String
Dim Flds As Variant

Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")

iConf.Load -1 ' CDO Source Defaults
Set Flds = iConf.Fields
With Flds

.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") =
"smtp.wanadoo.fr"

.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1

.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") =
"toto@wanadoo.fr"

.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") =
"xxxxxx"
.Update

End With

strbody = "Bonjour" & vbNewLine & vbNewLine & _
"ci joint" & vbNewLine & _
"DAC du dernier camion" & vbNewLine & vbNewLine & _
"Salutations" & vbNewLine & vbNewLine & _
"zaza"

With iMsg
Set .Configuration = iConf
.To = W.Value
.CC = ""
.BCC = ""
.From = """zaza"" <toto@wanadoo.fr>"
.Subject = "Important message"
.TextBody = strbody
.AddAttachment "\\Bascule\SharedDocs\D.A.C.xls"
.Send
End With
Next W
End If
End If

If Range("AL7") = "1" Then
MsgBox "Pas d'Imail definit pour cet acheteur !", vbExclamation, _
"ERREUR ... !"
End If
End Sub

7 réponses

Avatar
Daniel.C
Bonjour.
Remplace :

ActiveSheet.SaveAs "BasculeSharedDocsD.A.C.xls"

par :

If Application.Version = "12.0" Then
ActiveSheet.SaveAs "BasculeSharedDocsD.A.C.xls",
FileFormat:=xlExcel8
Else
ActiveSheet.SaveAs "BasculeSharedDocsD.A.C.xls"
End If

Daniel

Bonjour a tous

Il y a quelques temps j'avais posé une question pour envoyer un mail par
excel, Daniel.C m'avait repondu et c'etait parfait.
J'ai aujourd'hui un PB : Ce fichier est partagé entre des versions excel 2003
et 2007. Quand j'envoi par 2003 la personne qui le recoit n'a pas de PB mais
quand c'est par 2007 le fichier est ilisible avec excel 2003.
Voice mon code:
Sub Imail()

If Range("AL7") <> "1" Then
If Range("AL7") <> "0" Then
Dim W As Range
For Each W In Range("AK7")
Range("A1").Select

Sheets("DAC").Activate
Range("A1:O44").Copy
Workbooks.Add

ActiveSheet.Paste
Application.DisplayAlerts = False
ActiveSheet.SaveAs "BasculeSharedDocsD.A.C.xls"

Columns("A:A").ColumnWidth = 2.22
Columns("B:B").ColumnWidth = 2.22
Columns("C:C").ColumnWidth = 12.11
Columns("D:D").ColumnWidth = 12.56
Columns("E:E").ColumnWidth = 3
Columns("F:F").ColumnWidth = 3.89
Columns("G:G").ColumnWidth = 2.78
Columns("H:H").ColumnWidth = 12.44
Columns("I:I").ColumnWidth = 14.11
Columns("J:J").ColumnWidth = 2.22
Columns("K:K").ColumnWidth = 3
Columns("L:L").ColumnWidth = 2.22
Columns("M:M").ColumnWidth = 6.33
Columns("N:N").ColumnWidth = 2.22
Columns("O:O").ColumnWidth = 8.89
Rows("2:2").RowHeight = 65.4
Rows("9:9").RowHeight = 35.4
ActiveWorkbook.Close SaveChanges:=True
Application.DisplayAlerts = True

Dim iMsg As Object
Dim iConf As Object
Dim strbody As String
Dim Flds As Variant

Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")

iConf.Load -1 ' CDO Source Defaults
Set Flds = iConf.Fields
With Flds

.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") =
"smtp.wanadoo.fr"

.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1

.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") =
""

.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") =
"xxxxxx"
.Update

End With

strbody = "Bonjour" & vbNewLine & vbNewLine & _
"ci joint" & vbNewLine & _
"DAC du dernier camion" & vbNewLine & vbNewLine & _
"Salutations" & vbNewLine & vbNewLine & _
"zaza"

With iMsg
Set .Configuration = iConf
.To = W.Value
.CC = ""
.BCC = ""
.From = """zaza"" "
.Subject = "Important message"
.TextBody = strbody
.AddAttachment "BasculeSharedDocsD.A.C.xls"
.Send
End With
Next W
End If
End If

If Range("AL7") = "1" Then
MsgBox "Pas d'Imail definit pour cet acheteur !", vbExclamation, _
"ERREUR ... !"
End If
End Sub


Avatar
FFO
Salut à toi

Il faudrait sans doute enregistrer ton document en version 2003 à partir de
2007 pour être lisible avec Excel 2003

avec la ligne :

ActiveSheet.SaveAs "BasculeSharedDocsD.A.C.xls"

ainsi

ActiveSheet.SaveAs "BasculeSharedDocsD.A.C.xls" , FileFormat:=xlExcel7

Je ne suis pas certain du choix xlExcel7 pour le FileFormat

A tester donc ou vérifier

Fais des essais et dis moi !!!!
Avatar
Laurent
Bonjour,
Pour que ca marche de 2000 à 2007, J'utilise :
ActiveSheet.SaveAs "BasculeSharedDocsD.A.C.xls" , FileFormat:=xlNormal

Laurent

"FFO" a écrit :

Salut à toi

Il faudrait sans doute enregistrer ton document en version 2003 à partir de
2007 pour être lisible avec Excel 2003

avec la ligne :

ActiveSheet.SaveAs "BasculeSharedDocsD.A.C.xls"

ainsi

ActiveSheet.SaveAs "BasculeSharedDocsD.A.C.xls" , FileFormat:=xlExcel7

Je ne suis pas certain du choix xlExcel7 pour le FileFormat

A tester donc ou vérifier

Fais des essais et dis moi !!!!




Avatar
Daniel.C
Bonjour.
Avec XL2007, bizarrement, xlnormal fonctionne avec :
ActiveWorkbook.SaveAs
mais pas avec :
ActiveSheet.SaveAs
Daniel
Bonjour,
Pour que ca marche de 2000 à 2007, J'utilise :
ActiveSheet.SaveAs "BasculeSharedDocsD.A.C.xls" , FileFormat:=xlNormal

Laurent

"FFO" a écrit :

Salut à toi

Il faudrait sans doute enregistrer ton document en version 2003 à partir de
2007 pour être lisible avec Excel 2003

avec la ligne :

ActiveSheet.SaveAs "BasculeSharedDocsD.A.C.xls"

ainsi

ActiveSheet.SaveAs "BasculeSharedDocsD.A.C.xls" , FileFormat:=xlExcel7

Je ne suis pas certain du choix xlExcel7 pour le FileFormat

A tester donc ou vérifier

Fais des essais et dis moi !!!!






Avatar
Laurent
Exact, j'utilise ActiveWorkbook dans mes macros

Laurent

"Daniel.C" a écrit :

Bonjour.
Avec XL2007, bizarrement, xlnormal fonctionne avec :
ActiveWorkbook.SaveAs
mais pas avec :
ActiveSheet.SaveAs
Daniel
> Bonjour,
> Pour que ca marche de 2000 à 2007, J'utilise :
> ActiveSheet.SaveAs "BasculeSharedDocsD.A.C.xls" , FileFormat:=xlNormal
>
> Laurent
>
> "FFO" a écrit :
>
>> Salut à toi
>>
>> Il faudrait sans doute enregistrer ton document en version 2003 à partir de
>> 2007 pour être lisible avec Excel 2003
>>
>> avec la ligne :
>>
>> ActiveSheet.SaveAs "BasculeSharedDocsD.A.C.xls"
>>
>> ainsi
>>
>> ActiveSheet.SaveAs "BasculeSharedDocsD.A.C.xls" , FileFormat:=xlExcel7
>>
>> Je ne suis pas certain du choix xlExcel7 pour le FileFormat
>>
>> A tester donc ou vérifier
>>
>> Fais des essais et dis moi !!!!
>>
>>





Avatar
IMER09
Merci à vous tous à priori ca fonctionne
avec la solution de Daniel.C
J'avais essayé de changer le format avec format=xlNormal je suis arrive a la
meme conclusion que Daniel

Transformer en PDF n'aurait il pas etait plus simple?

Une derniere question:
Quel serait le bout de code a ajouter pour cocher la case : "confirmation de
lecture" pour le mail envoyé ?

Merci
Rémi

"Daniel.C" a écrit dans le message de news:
%
Bonjour.
Remplace :

ActiveSheet.SaveAs "BasculeSharedDocsD.A.C.xls"

par :

If Application.Version = "12.0" Then
ActiveSheet.SaveAs "BasculeSharedDocsD.A.C.xls", FileFormat:=xlExcel8
Else
ActiveSheet.SaveAs "BasculeSharedDocsD.A.C.xls"
End If

Daniel

Bonjour a tous

Il y a quelques temps j'avais posé une question pour envoyer un mail par
excel, Daniel.C m'avait repondu et c'etait parfait.
J'ai aujourd'hui un PB : Ce fichier est partagé entre des versions excel
2003 et 2007. Quand j'envoi par 2003 la personne qui le recoit n'a pas de
PB mais quand c'est par 2007 le fichier est ilisible avec excel 2003.
Voice mon code:
Sub Imail()

If Range("AL7") <> "1" Then
If Range("AL7") <> "0" Then
Dim W As Range
For Each W In Range("AK7")
Range("A1").Select

Sheets("DAC").Activate
Range("A1:O44").Copy
Workbooks.Add

ActiveSheet.Paste
Application.DisplayAlerts = False
ActiveSheet.SaveAs "BasculeSharedDocsD.A.C.xls"

Columns("A:A").ColumnWidth = 2.22
Columns("B:B").ColumnWidth = 2.22
Columns("C:C").ColumnWidth = 12.11
Columns("D:D").ColumnWidth = 12.56
Columns("E:E").ColumnWidth = 3
Columns("F:F").ColumnWidth = 3.89
Columns("G:G").ColumnWidth = 2.78
Columns("H:H").ColumnWidth = 12.44
Columns("I:I").ColumnWidth = 14.11
Columns("J:J").ColumnWidth = 2.22
Columns("K:K").ColumnWidth = 3
Columns("L:L").ColumnWidth = 2.22
Columns("M:M").ColumnWidth = 6.33
Columns("N:N").ColumnWidth = 2.22
Columns("O:O").ColumnWidth = 8.89
Rows("2:2").RowHeight = 65.4
Rows("9:9").RowHeight = 35.4
ActiveWorkbook.Close SaveChanges:=True
Application.DisplayAlerts = True

Dim iMsg As Object
Dim iConf As Object
Dim strbody As String
Dim Flds As Variant

Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")

iConf.Load -1 ' CDO Source Defaults
Set Flds = iConf.Fields
With Flds

.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") =
"smtp.wanadoo.fr"

.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") =
25

.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate")
= 1

.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") =
""

.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") =
"xxxxxx"
.Update

End With

strbody = "Bonjour" & vbNewLine & vbNewLine & _
"ci joint" & vbNewLine & _
"DAC du dernier camion" & vbNewLine & vbNewLine & _
"Salutations" & vbNewLine & vbNewLine & _
"zaza"

With iMsg
Set .Configuration = iConf
.To = W.Value
.CC = ""
.BCC = ""
.From = """zaza"" "
.Subject = "Important message"
.TextBody = strbody
.AddAttachment "BasculeSharedDocsD.A.C.xls"
.Send
End With
Next W
End If
End If

If Range("AL7") = "1" Then
MsgBox "Pas d'Imail definit pour cet acheteur !", vbExclamation, _
"ERREUR ... !"
End If
End Sub






Avatar
michdenis
En premier lieu :
ActiveSheet.SaveAs
Cette méthode ne fonctionne pas sous ma version
excel 2003 ou 2007 .... comme je viens de refaire
une installation, il manque peut être une mise à jour ???


Lorsque l'on regarde dans l'explorateur d'objet, on constate :

Ces 2 constantes font appel à la même adresse mémoire

Const xlNormal = -4143 (&HFFFFEFD1)
Const xlWorkbookNormal = -4143 (&HFFFFEFD1)

Normalement, dans le modèle objet excel, on doit utiliser
xlnormal dans une ligne de code ressemblant à ceci :
ActiveWindow.WindowState = xlNormal 'ou xlMinimized xlMaximized

Dans la méthode "SaveAs" on définit on utilise la constante
"xlWorkbookNormal"
pour l'un des paramètres possib.les de fileFormat.

La réalité, c'est qu'on peut substituer ces 2 paramêtres à volonté comme
dans les exemples qui suivent...
ActiveWorkbook.SaveAs FileFormat:=xlWorkbookNormal
OU
ActiveWorkbook.SaveAs FileFormat:=xlNormal

et ce,sans susciter la moindre erreur puisqu'ils ont la même valeur.

Il en va de même pour ces 2 lignes de code :
ActiveWindow.WindowState = xlNormal
OU
ActiveWindow.WindowState = xlWorkbookNormal

Selon moi, la vraie question, pourquoi les gurus d'excel n'ont pas
pris la peine de différencier ces 2 constantes ?

Pourquoi, on peut utiliser :
ThisWorkbook.SaveAs FileFormat:=xlWorkbookNormal ' xlnormal
Ici c'est tout le fichier qui est sauvegarder
et non pour
ActiveSheet.SaveAs FileFormat:=xlWorkbookNormal


Il faut se rappeler que FileFormat est une propriété de l'objet Workbook
comme le stipule l'aide d'excel:

Workbook.FileFormat, propriété ,Renvoie le format du fichier et/ou le
type du classeur. Type de données XlFileFormat en lecture seule.

Dans le cas d'une Worksheet :

Worksheet.SaveAs,
Cette méthode enregistre dans un autre fichier les modifications effectuées
sur le graphique ou la feuille de calcul.
Syntaxe
expression.SaveAs(FileName, FormatFichier, MotDePasse,
MotDePasseÉcritureRes, LectureSeuleRecommandée, CréerSauvegarde,
AjouterAuxDerniersFichiersUtilisés, PageCodeTexte, MiseEnPageVisuelleTexte,
Local)







"Daniel.C" a écrit dans le message de groupe de
discussion :
Bonjour.
Avec XL2007, bizarrement, xlnormal fonctionne avec :
ActiveWorkbook.SaveAs
mais pas avec :
ActiveSheet.SaveAs
Daniel
Bonjour,
Pour que ca marche de 2000 à 2007, J'utilise :
ActiveSheet.SaveAs "BasculeSharedDocsD.A.C.xls" ,
FileFormat:=xlNormal

Laurent

"FFO" a écrit :

Salut à toi

Il faudrait sans doute enregistrer ton document en version 2003 à partir
de 2007 pour être lisible avec Excel 2003

avec la ligne :

ActiveSheet.SaveAs "BasculeSharedDocsD.A.C.xls"

ainsi ActiveSheet.SaveAs "BasculeSharedDocsD.A.C.xls" ,
FileFormat:=xlExcel7

Je ne suis pas certain du choix xlExcel7 pour le FileFormat

A tester donc ou vérifier

Fais des essais et dis moi !!!!