mail

Le
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 "\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") =
"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 "\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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #18376831
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


FFO
Le #18376931
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 !!!!
Laurent
Le #18377111
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 !!!!




Daniel.C
Le #18377351
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 !!!!






Laurent
Le #18377451
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 !!!!
>>
>>





IMER09
Le #18378101
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" %
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






michdenis
Le #18378091
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" 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 !!!!









Publicité
Poster une réponse
Anonyme