begin process at 2010 02 09 21:32:28
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Système

 > 

Autre

 > 

Pièce jointe email qui reste en lecture seule


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Pièce jointe email qui reste en lecture seule

mardi 5 février 2008 à 11:33:10 | Pièce jointe email qui reste en lecture seule

foofur

Bonjour,

Voila plusieurs jours que je suis sur mon code et je ne trouve pas l'erreur.
Je veux créer un fichier EXCEL pui envoyer un mail avec en le mettant en pièce jointe, le problème est que la pièce jointe reste en lecture seule.

Voici mon code, si vous pouvez m'aider ça serait trop le TOP.


'Connexion à la base de données
Set MCTOOL = New ADODB.Connection
fichier = Form2.Text1.Text
MCTOOL.ConnectionString = fichier
MCTOOL.Provider = "Microsoft.Jet.OLEDB.4.0"
MCTOOL.Open

'Création d'une variable contenant la date sachant que Date sera modifier a terme
date_mc = Month(Date) & "/" & Day(Date) & "/" & Year(Date)

'Création d'un objet Excel
Dim ClasseurXLS As Excel.Application
Dim FeuilXLS As Excel.Worksheet 'Feuille Excel

Set ClasseurXLS = CreateObject("excel.application")
    ClasseurXLS.Visible = False
    ClasseurXLS.Workbooks.Add

'Requete dans la base avec copier/coller du resultat dans le fichier Excel
req = "SELECT Route, AWB, Shipper, [Last Status], [Flag Text], IATA, [CORRECT IATA], "
req = req + "  [Dest Country], [Dest ZipCode], PostCode"
req = req + " From MCResultOverview"
req = req + " Where MCResultOverview.pckp_dt = #" + CStr(date_mc) + "#"
req = req + " AND [Origin Unit] = '" + rst![Origin Unit] + "'"
req = req + " ORDER BY Route, [Last Status], AWB"
 
    Set rst2.ActiveConnection = MCTOOL
    rst2.Open req, MCTOOL, adOpenKeyset, adLockReadOnly
    ClasseurXLS.Cells(4, 1).CopyFromRecordset rst2
    rst2.Close
    
'En tete des colonnes
    ClasseurXLS.Cells(3, 1) = "Route"
    ClasseurXLS.Cells(3, 2) = "N° AWB"
    ClasseurXLS.Cells(3, 3) = "Expéditeur"
    ClasseurXLS.Cells(3, 4) = "Statut"
    ClasseurXLS.Cells(3, 5) = "Commentaires"
    ClasseurXLS.Cells(3, 6) = "IATA"
    ClasseurXLS.Cells(3, 7) = "IATA " & Chr(10) & "Correct"
    ClasseurXLS.Cells(3, 8) = "Pays " & Chr(10) & "destination"
    ClasseurXLS.Cells(3, 9) = "CP " & Chr(10) & " destination"
    ClasseurXLS.Cells(3, 10) = "Code postal"
     
'mise en forme
    With ClasseurXLS.Range("A3:J3")
        .Interior.ColorIndex = 44
        .Interior.Pattern = xlSolid
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Font.Bold = True
    End With

'permet de connaitre la dernière ligne rempli du fichier
i = 3
Do While ClasseurXLS.Cells(i, 2) <> ""
i = i + 1
Loop

   
'mise en forme
ClasseurXLS.Range("A3:J" & i).Borders(xlDiagonalDown).LineStyle = xlNone
    ClasseurXLS.Range("A3:J" & i).Borders(xlDiagonalUp).LineStyle = xlNone
    With ClasseurXLS.Range("A3:J" & i).Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With ClasseurXLS.Range("A3:J" & i).Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With ClasseurXLS.Range("A3:J" & i).Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With ClasseurXLS.Range("A3:J" & i).Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With ClasseurXLS.Range("A3:J" & i).Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    ClasseurXLS.Range("A3:J3").Borders(xlEdgeBottom).LineStyle = xlContinuous

    With ClasseurXLS.Range("A1:B1")
        .Interior.ColorIndex = 45
        .Interior.Pattern = xlSolid
        .Font.Bold = True
        .Font.Name = "Arial"
        .Font.Size = 11
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
    End With

    With ClasseurXLS.Range("C1:J1")
        .Interior.ColorIndex = 44
        .Interior.Pattern = xlSolid
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Font.Bold = True
        .Font.Name = "Arial"
        .Font.Size = 16
    End With
    ClasseurXLS.Rows("1:1").RowHeight = 37.5
    ClasseurXLS.Range("A1:B1").Merge
    ClasseurXLS.Range("C1:J1").Merge
    ClasseurXLS.Range("A1:B1") = Date


    'ClasseurXLS.ActiveSheet.PageSetup.PrintArea = "$A$1:$J$" & i
    'ClasseurXLS.Worksheets(1).PageSetup.PrintArea = "$A$1:$J$" & i
    With ClasseurXLS.Range("A3:J" & i).Font
        .Name = "Arial"
        .Size = 8
    End With

ClasseurXLS.Worksheets(1).PageSetup.PrintArea = "$A$1:$J$" & i
ClasseurXLS.Worksheets(1).PageSetup.Orientation = xlLandscape

ClasseurXLS.Worksheets(1).PageSetup.LeftMargin = 0.3
ClasseurXLS.Worksheets(1).PageSetup.RightMargin = 0.3
ClasseurXLS.Worksheets(1).PageSetup.FitToPagesWide = 1
ClasseurXLS.Range("C1") = "Miscodes sur " & rst![Origin Unit]

ClasseurXLS.Cells.Select
ClasseurXLS.Cells.EntireColumn.AutoFit

ClasseurXLS.Worksheets(1).Name = "MC"
ClasseurXLS.Worksheets(1).Select
ClasseurXLS.Worksheets(3).Delete
ClasseurXLS.Worksheets(2).Delete

'sauvegarde et fermeture du fichier excel
     ClasseurXLS.DisplayAlerts = False
     ClasseurXLS.ActiveWorkbook.SaveAs dossier_parent & Right(rst![Origin Unit], 3) & "_MC_" & Replace(Date, "/", "") & "_" & heure_mc & ".xls"
    
'on stocke le nom du fichier dans une variable
fichier = dossier_parent & Right(rst![Origin Unit], 3) & "_MC_" & Replace(Date, "/", "") & "_" & heure_mc & ".xls"

     'ClasseurXLS.Sheets(1).Close
     ClasseurXLS.Workbooks.Close
     ClasseurXLS.Quit
     Set FeuilXLS = Nothing
     Set ClasseurXLS = Nothing
  
chemin_fichier = fichier
Agence = Right(rst![Origin Unit], 3)

'Envoi par email du fichier précédemment créé     
Dim Message As New CDO.Message

With Message
.From = adresse_expediteur
.To = adresse_destinataire
.CC = adresse_destinataire_cc
.Subject = "ALERTES MC "
.AddAttachment (chemin_fichier)
.GetStream.SaveToFile "C:\MonMail.txt", adSaveCreateOverWrite

.Configuration.Fields.Item(" http://schemas.microsoft.com/cdo/configuration/sendusing ") = 2
.Configuration.Fields.Item("
http://schemas.microsoft.com/cdo/configuration/smtpserver ") = server_de_la_société
.Configuration.Fields.Item("
http://schemas.microsoft.com/cdo/configuration/smtpserverport ") = 25
.Configuration.Fields.Update

.Send

End With
Set Message = Nothing


Merci pour votre aide!!!!

Flo



Cette discussion est classée dans : req, classeurxls, cells, range, with


Répondre à ce message

Sujets en rapport avec ce message

Besoin d'aide par rapport a un script dans excel VBA URGENT!!!!!!!!!!!! [ par Oliano ] Bonjour,Ca fait 3 jours que je galere sur mon probleme, et j'ai vraiment besoin que quelqu'un m'aide sinon je ne m'en sortirai jamais.Mon objectif :Je Experts only:modifier une macro difficile en excel( aidez moi svp) [ par aldush ] Bonjour, je dois ajouter des nouveles fonctions à une macro mais j'arrive pas à obtenir le resultat voulu.en fait je dois ajouter 2 feuille de calcul lien entre les coordonnes de cellule [ par paulowan ] Bonjour, DAns excel vba je ne comprends pas bien le lien entre les differentes denominations de coordonnées de cellule   je voudrais calculé d [VBA-MsExcel2000] Valeur de l'axe des abscisses, propriété XValues [ par vherva ] Bonjour, J'ai un souci avec une ligne de code. Je souhaiterais donner des valeurs à l'axe des abscisses (X). La Localisation est variable et définie p séries dans graphique [ par madjb ] Bonjour, j'ai vu q'uil était possible de mettre une selection range sous forme Par exemple : Range(Cells(2, 1), Cells(6, 1)) or quand je configure me [VBA Excel] Problème de syntaxe pour écriture de moyenne [ par caribou65 ] ReBonsoir !je crée un nouveau sujet car j'ai ENCORE oublié de completer le titre et je n'arrive pas à éditer le précédent.Désolé si ça irrite un modér Cells.. [ par jeanjeandada ] Bonjour, J'aimerai utiliser la propriété With Selection.Borders(xlEdgeLeft) .Weight = xlMedium End Withpour une mise e Erreur d'execution 13 [ par eista ] Bonjour,J'ai une erreur d'éxecution 13 incompatibilité type sur la ligne suivante:If Sheets(1).Cells("C26").Value = "" And Sheets(c).Cells("Q252").Val La méthode PasteSpecial de la méthode Range a échoué [ par ndrivo ] Bonjour,j'ai un problème au niveau de PasteSpecial si vous pouvez m'aider, D'abord j'utilise ActiveSheet.AutoFilterMode = False pour désactiver les fi


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,889 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales