Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Code VBA dans Outlook qui ne fonctionne pas ?

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

lebarbo

XLDnaute Occasionnel
Bonjour à tous,

Je suis en train de faire un code pour modifier un fichier Excel mais je précise que ce code doit être dans Outlook (se déclenche quand un certain type de message arrive)
----------------

Sub modif()

Dim appExcel
Dim wbExcel
Dim wsExcel


''Ouverture de l'application
Set appExcel = CreateObject("Excel.Application")
''Ouverture d'un fichier Excel
Set wbExcel = appExcel.Workbooks.Open("C:\Essai Outlook\essai.xls")
''wsExcel correspond à la première feuille du fichier
Set wsExcel = wbExcel.Worksheets(1)

'Code pour modifier le fichier
DerLigne = wsExcel.Range("A1").End(xlDown).Row
For i = 2 To DerLigne
If wsExcel.Cells(i, 5).Value = "CP" Then
wsExcel.Cells(i, 6).Value = wsExcel.Cells(i, 6).Value & "CP"
End If
Next i

wbExcel.Close False 'Fermeture du classeur Excel
appExcel.Quit 'Fermeture de l'application Excel

'Désallocation mémoire

Set wsExcel = Nothing
Set wbExcel = Nothing
Set appExcel = Nothing

End Sub
--------

J'ai l'erreur 1004, "erreur définie par l'application ou par l'objet" sur la ligne
DerLigne = wsExcel.Range("A1").End(xlDown).Row
Je ne vois pas d'où ça vient.

Merci pour votre aide,
 
Re : Code VBA dans Outlook qui ne fonctionne pas ?

Bonjour lebarbo,

Ton code est très bien (si ce n'est que tu n'enregistre pas ton classeur à la fin, mais à toi de voir), il y a juste un petit détail : les constantes Excel n'existent pas dans Outlook
xlDown n'existe donc pas d'où plantage
Pour info, xlDown vaut -4121, que tu peux placer en constante de ta procédure, dans les déclarations

Code:
Dim appExcel
Dim wbExcel
Dim wsExcel
Const xlDown = -4121
 
Re : Code VBA dans Outlook qui ne fonctionne pas ?

Bonsoir le fil 🙂,
il y a juste un petit détail : les constantes Excel n'existent pas dans Outlook
xlDown n'existe donc pas d'où plantage
Pour info, xlDown vaut -4121, que tu peux placer en constante de ta procédure, dans les déclarations
Dans Outlook ou dans la référence à Excel 🙄 ?
J'étais en train de tester son code (mais dans Word, je n'aime pas trop tester dans Outlook...), et moi ça marchait 😛... D'où une question subsidiaire à TotoTiti : Différence Outlook / Word ou 2003 / 2007 😉 ?
Bonne soirée 😎
 
Re : Code VBA dans Outlook qui ne fonctionne pas ?

Re,
Bonjour JNP,

la création d'une application Excel par CreateObject ne nécessite aucune référence cochée, je suppose donc que lebarbo ne les a pas cochées... peut-être à tort ?
 
Re : Code VBA dans Outlook qui ne fonctionne pas ?

Re TotoTiti
la création d'une application Excel par CreateObject ne nécessite aucune référence cochée, je suppose donc que lebarbo ne les a pas cochées... peut-être à tort ?
Effectivement, et moi, je l'ai cochée par habitude, ne serait-ce que parce que ça active la saisie intelligente 🙄...
Merci de la réponse 😎
 
Re : Code VBA dans Outlook qui ne fonctionne pas ?

Bonjour à tous,
Merci tototiti2008 le -4121 fonctionne, en fait j'enregistre bien le fichier mais j'ai allégé le code sur le forum. Sais-tu où trouver la table de correspondance pour les constantes.
JPN, je ne vois pas ce que je peux cocher pour que ça fonctionne : j'en ai 5 de cochés VB For Applications; Microsoft Outlook 11.0 Object Library, OLE Automation, Microsoft Office 11.0 Object Library et Microsft Scripting Runtime.
 
Re : Code VBA dans Outlook qui ne fonctionne pas ?

Bonjour à tous,

Pour que xlDown soit reconnu automatiquement, tu devrais cocher
Microsoft Excel 11.0 Object Library
Mais il ne vaut mieux pas et mettre la valeur en constante

Sais-tu où trouver la table de correspondance pour les constantes

C'est une constante Excel, donc lance Excel
Visual Basic Editor - Explorateur d'objets
tapes xlDown
La valeur s'affiche en bas 🙂

Edit : parfaite explication de JNP, comme d'habitude 😎
 
Dernière édition:
Re : Code VBA dans Outlook qui ne fonctionne pas ?

Re 🙂,
Merci pour l'explication tototiti2008, pourquoi ne faut-il pas cocher Microsoft Excel 11.0 Object Library ?
L'utilisation d'une bibliothèque possède des avantages et des inconvénients 🙄...
Avantages : utiliser la saisie intelligente, avoir les parents et les enfants, les constantes déclarées...
Inconvénients : problèmes de compatibilité : si la référence 11.0 passe automatiquement en 12.0 entre 2003 et 2007 par exemple, le contraire n'est pas vrai, et l'utilisation de 12.0 donne une référence manquante en 2003, problème qui ne se pose pas si on n'utilise pas de références 😛...
Je pense que c'est ce que TotoTiti voulait dire 😱.
Bonne soirée 😎
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
818
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
650
Réponses
2
Affichages
809
  • Question Question
Microsoft 365 VBA sur outlook
Réponses
14
Affichages
1 K
Réponses
2
Affichages
954
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…