2 Excel 1 code ; 1 fonctionne l'autre non?!?

Salut,

J'ai 2 fichier identique :

  • L'un provient de mon vrai fichier (j'ai enlever tout à part le code qui pose problème)
  • L'autre est un fichier vierge identique au premier...

Mon problème est que le code qui provient de mon vrai fichier ne fonctionne pas et sur l'autre ça fonctionne??!!?!?!

Sub get_drawing_number()

Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("DRAWING NUMBER")

sh.Range("R1").Value = Workbooks(ActiveWorkbook.name).path & "\0-DESSINS\Dernière révision\PDF"

Dim fso As New FileSystemObject
Dim fo As Folder
Dim f As File

Set fo = fso.GetFolder(sh.Range("R1").Value)
Dim last_raw As Integer

For Each f In fo.Files
     last_raw = sh.Range("S" & Application.Rows.Count).End(xlUp).Row + 1
     sh.Range("S" & last_raw).Value = f.name
Next

End Sub

Quelqu'un peut m'aider svp?

Merci d'avance.

En pièce jointe les 2 fichiers excel ainsi que les dossier et fichiers texte bidon.

Edit: "L'erreur d'éxecution 13 -> incompatibilité de type" me renvoie à cette ligne ->

Set fo = fso.GetFolder(sh.Range("R1").Value)

Je précise aussi que j'ai fait des test dans les mêmes emplacement (desktop et serveur)

Bonjour,

Sur le fichier dont ne code ne fonctionne pas correctement > dans VBE > menu "Outils" > "Références" > c'est "Microsoft Outlook 1x.0 Object Libray" qui est le vilain > décoche ...

ric

Bonjour,

Merci du retour rapide.

Si j'enlève cette référence je ne pourrai plus envoyer de mail avec outlook c'est bien ça?

J'ai un code pour envoie de mail malheureusement..

Est-ce qu'il y a une autre façon de contourner le problème?

Merci!

Bonjour,

Quand tu coches la référence à "Microsoft Outlook ..." > c'est du "early binding" ...

Si tu déclares les objets Outlook au lieu d'utiliser la référence > c'est du "late binding" ...

Le "late binding" sera compatible avec des versions différentes de Office > mais pas le "early binding" ...

Il y a des tonnes de posts à ce sujet ...

Zun peu de lecture ...
Liaison anticipée et tardive - Visual Basic | Documents Microsoft

ric

Bonjour,

Parfait je regarde ça et te reviens la dessus une fois que j'ai trouvé comment modifier mon code pour outlook!

Merci!

Re,

Donc tu me conseille de modifier les 2 code pour du latebinding si je comprends bien.

J'essaie encore quelque heures demain..

Je sais pas du tout comment les modifier.

Merci.

Re, pourquoi TOUT les code sont avec une référence!!!!

Bonjour,

Prends le temps de parcourir le lien que t'a donné ric, voire d'autres au besoin qui parlent du même sujet.

Tu verras qu'au final, il n'y a quasi rien à changer pour un résultat au delà de tes espérances...

Au début ça me paraissait une montagne aussi et finalement c'est tout simple.

Bonjour JoyeuxNoel!

J'ai déjà réglé le problème pour les mail avec outlook sans référence

    Dim olApp As Object
    Dim olMail As Object
    Set olApp = CreateObject("Outlook.Application")
    Set olMail = olApp.CreateItem(0)

avec référence

    Dim olApp As Outlook.Application
    Dim olMail As MailItem
    Set olApp = New Outlook.Application
    Set olMail = olApp.CreateItem(olMailItem)

Parfait !

Comme quoi il suffit de pas grand chose.

Bonjour!

Bon après plusieurs test tout les code fonctionnent!

Merci !

Rechercher des sujets similaires à "code fonctionne"