Problème exécution macro sur PC professionnel

Salut à tous

J'espère que la journée s'est bien déroulée.

J'ai un soucis avec le cvode ci-dessous. En effet, il me permet d'envoyer un mail avec fichier joint.

Avec mon PC personnel pas de soucis. Dès que j'exécute la macro, le message est parti avec le fichier joint définit.

J'ai copié le même code sur le même fichier de mon PC de service. Lorsque j'exécute la macro, pas de débogage mais pas d'envoi non plus.

Je sais pas ou sa cloche. Quelqu'un peut-il me secourir?

Bon dimanche à tous

Sub Mail_MONETIQUE()
' Works in Excel 2000, Excel 2002, Excel 2003, Excel 2007, Excel 2010, Outlook 2000, Outlook 2002, Outlook 2003, Outlook 2007, Outlook 2010.
' This example sends the last saved version of the Activeworkbook object .
Dim OutApp As Object
Dim OutMail As Object
Dim texte As String
Dim I As String
Dim Rng As String

' Copier la feuille dans un nouveau classeur
Sheets("STATSESAME").Copy
' Avec la feuille actuelle
With ActiveSheet
' récupérer la dernière cellule utilisée
Rng = .Cells.SpecialCells(xlCellTypeLastCell).Address
' Remplacer les formules par des valeurs
.Range("A1:" & Rng) = .Range("A1:" & Rng).Value
End With
' Enregistrer le nouveau classeur en temporaire
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\DEMANDE SESAME SIEGE.xls"
ActiveWorkbook.Close
'
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
I = Range("B29").Value

texte = texte & "Bonjour" & vbCrLf
texte = texte & " Merci de trouver ci-joint un état recap" & vbCrLf

On Error Resume Next
With OutMail
.To = Range("b29").Value
.CC = ""
.BCC = ""
.Subject = "Bienvenue dans votre"
.Body = texte
' You can add other files by uncommenting the following line.
.Attachments.Add ThisWorkbook.Path & "\DEMANDE SESAME .xls"
' In place of the following statement, you can use ".Display" to
' display the mail.
.Send
End With
On Error GoTo 0
' Supprimer le fichier temporaire
Kill ThisWorkbook.Path & "\DEMANDE SESAME .xls"
' Effacer les vairable objet
Set OutMail = Nothing
Set OutApp = Nothing
End Sub

Bonjour Zombe

As-tu des OS identiques sur les 2 PC ?

As-tu Outlook sur les 2 PC ?

a+

Salut BrunoM45

Merci pour ton feedback.

J'utilise outlook 2007 sur les 2 PC.

J'ai un autre code presque semblable à celui déjà envoyé qui permet d'envoyer des mails et ces code fonctionne bien des 2 côtés.

Le voici pour comparaison:

Sub Mail_Workbook1()
' Works in Excel 2000, Excel 2002, Excel 2003, Excel 2007, Excel 2010, Outlook 2000, Outlook 2002, Outlook 2003, Outlook 2007, Outlook 2010.
' This example sends the last saved version of the Activeworkbook object .
    Dim OutApp As Object
    Dim OutMail As Object
    Dim texte As String
    Dim I As String

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    I = Range("B29").Value
    texte = texte & Range("B39").Value & " le, " & Range("E17").Value & vbCrLf & vbCrLf
    texte = texte & "A" & vbCrLf
texte = texte & Range("B7").Value & " " & Range("B13").Value & vbCrLf
texte = texte & Range("B26").Value & vbCrLf
texte = texte & Range("B27").Value & vbCrLf & vbCrLf & vbCrLf
texte = texte & "Objet : Bienvenue" & vbCrLf & vbCrLf

    On Error Resume Next

    With OutMail
        .To = Range("b29").Value
        .CC = ""
        .BCC = ""
        .Subject = "Bienvenue dans votre"
        .Body = texte
.Attachments.Add ("C:\Documents and Settings\PL0234\bureau\SGIIOC\conditions générales.pdf")
        ' You can add other files by uncommenting the following line.
              .Send
    End With
    On Error GoTo 0

    Set OutMail = Nothing
    Set OutApp = Nothing

End Sub

Salut,

As-tu windows XP ou Seven sur les 2 PC ?

A+

Bonjour tous,

zombe a écrit :

J'ai copié le même code sur le même fichier de mon PC de service.

Avec ton PC de service tu ne serrais pas en réseau ? et Outlook sur le serveur ?

A+

Salut à tous

Merci de vous être interessé à mon sujet.

J'utilise XP sur mon PC professionnel et SEVEN sur mon PC personnel.

Au service, nous utilisons l'intranet mais je ne pense pas que ce soit lié au reseau et comme je l'ai dis, un autre code presque similaire fonctionne à merveille sur les 2 PC.

J'ai remarqué que sur le PC de service ca crée un fichier occasionnel nommé classeur 1 mais après pas d'envoi.

Cordialement

Enlève le On Error Resume Next

Je pense que tu a une erreur dans le nom du classeur, un espace entre le nom et l’extension.

A+

Conseil : Quand tu a un code qui ne fonctionne pas met des apostrophes devant tout les On Error..

En règle générale les On Error ne sont mis que quand l'utilisateur risque de mettre une donnée erronée.

Merci pour les conseils.

J'ai essayé d'apporter les corrections données mais quand j'exécute la macro ca signale débogage sur le code suivant :

Rng = .Cells.SpecialCells(xlCellTypeLastCell).Address

. Qu'est ce qui coince?

Je n'ai pas trouver le moyen d'activer cette feuille, probablement parce qu'Excel ne sait pas laquel prendre, j'ai contourner avec...

Dim F As Worksheet
' Copier la feuille dans un nouveau classeur
    Set F = Sheets("STATSESAME")
    F.Copy
    ' Avec la nouvelle feuille
    With F
        ' récupérer la dernière cellule utilisée
        Rng = .Cells.SpecialCells(xlCellTypeLastCell).Address
        ' Remplacer les formules par des valeurs
        .Range("A1:" & Rng) = .Range("A1:" & Rng).Value
    End With

A tester.

Bonjour Lermitte, Zombe

Je ne comprends pas l'erreur, puisque logiquement et ça fonctionne chez moi

' Copier la feuille dans un nouveau classeur
Sheets("STATSESAME").Copy

La feuille est copiée dans un nouveau classeur

' Avec la feuille actuelle
With ActiveSheet

Puisque le nouveau classeur est actif et donc la feuille avec

A+

Bonjour Bruno,

Faut croire que tu a plus de chance que Zombe et moi, parce que, dans les mêmes conditions, chez moi ça plante aussi.

A+

Re

Désolé, mais en utilisant des variables pour le chemin et le fichier temporaire (évite les erreurs de saisie)

Sub Mail_MONETIQUE()
' Works in Excel 2000, Excel 2002, Excel 2003, Excel 2007, Excel 2010, Outlook 2000, Outlook 2002, Outlook 2003, Outlook 2007, Outlook 2010.
' This example sends the last saved version of the Activeworkbook object .
  Dim OutApp As Object
  Dim OutMail As Object
  Dim texte As String
  Dim I As String
  Dim Rng As String
  Dim FicTmp As String, sPath As String

  ' Définir le chemin de sauvegarde
  sPath = ThisWorkbook.Path & "\"
  ' Définir le nom du fichier temporaire
  FicTmp = "DEMANDE SESAME SIEGE.xls"
  ' Copier la feuille dans un nouveau classeur
  Sheets("STATSESAME").Copy
  ' Avec la feuille actuelle
  With ActiveSheet
    ' récupérer la dernière cellule utilisée
    Rng = .Cells.SpecialCells(xlCellTypeLastCell).Address
    ' Remplacer les formules par des valeurs
    .Range("A1:" & Rng) = .Range("A1:" & Rng).Value
  End With
  ' Enregistrer le nouveau classeur en temporaire
  ActiveWorkbook.SaveAs sPath & FicTmp
  ActiveWorkbook.Close
  '
  Set OutApp = CreateObject("Outlook.Application")
  Set OutMail = OutApp.CreateItem(0)
  I = Range("B29").Value

  texte = texte & "Bonjour" & vbCrLf
  texte = texte & " Merci de trouver ci-joint un état recap" & vbCrLf

  On Error Resume Next
  With OutMail
    .To = Range("b29").Value
    .CC = ""
    .BCC = ""
    .Subject = "Bienvenue dans votre"
    .Body = texte
    ' You can add other files by uncommenting the following line.
    .Attachments.Add sPath & FicTmp
    ' In place of the following statement, you can use ".Display" to
    ' display the mail.
    .display
    '.Send
  End With
  On Error GoTo 0
  ' Supprimer le fichier temporaire
  Kill sPath & FicTmp
  ' Effacer les vairable objet
  Set OutMail = Nothing
  Set OutApp = Nothing
End Sub

Je n'ai aucun problème mon code fonctionne, en revanche je travaille sur le "D:\"

A+

Re,

y a toujours quéquchose qui m'échappe, avec ton code j'ai toujours erreur 40036 sur la ligne

   Rng = .Cells.SpecialCells(xlCellTypeLastCell).Address

Erreur définie par l'application ou par l'objet.

Cordialement

--> BrunoM45

Met toi en situation réelle, ouvre un classeur existant, ajoute un module et copie ton code, remplace "STATSESAME" par le nom d'une de ses feuilles.

Et lance ta macro... qui fonctionne !!

Re

Ok.. ok...

SITUATION RELLE ... la feuille est remplie

Copie et colle mon code et lance le code qui FONCTIONNNE

a+

7zombe-exemple.xlsm (18.39 Ko)

Pour tester met ton classeur à disposition !

Re,

C'est fait post précédent

Je dois reconnaître que ton classeur fonctionne, je pense que le problème vient de la version d'Excel.

Tu est en =>2007 vu l'extension du fichier

Quand je fais exactement le même chose mais avec un classeur xls (qui ne provient pas d'un xlsm) ça plante comme le dis Zombe.

Peut-être encore un mystère d'Excel.

Désolé..

A+

Re,

lermite a écrit :

Je dois reconnaître que ton classeur fonctionne, je pense que le problème vient de la version d'Excel.

Tu est en =>2007 vu l'extension du fichier

Quand je fais exactement le même chose mais avec un classeur xls (qui ne provient pas d'un xlsm) ça plante comme le dis Zombe.

Peut-être encore un mystère d'Excel.

Désolé.. A+

No soucy

En revanche tu as un gros soucis avec ton PC

Testé avec la version 2003 (car je teste tous mes codes) pas de problème non plus !?

A+

4zombe-exemple.zip (12.10 Ko)

Moi aussi je teste tous mes codes.

Essaye ce classeur, c'est une copie d'un classeur que j'ai posté un peu plus tôt.

La macro est dans Module 1

Tu dis,..

Cdlt

7report-mfc-3.zip (22.77 Ko)

Salut Lermite et BrunoM45

merci pour les échanges enrichissant que vous accordez à mon sujet.

Suis actuemllemnt hors de mon service.

Je test les code de Bruno et vous donne mes appréciations.

Encore merci.

Rechercher des sujets similaires à "probleme execution macro professionnel"