Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2605 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Excel VBA PC => MAC

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Excel VBA PC => MAC

n°1650744
zorian3
Posté le 29-11-2007 à 12:09:09  profilanswer
 

Bonjour,
 
J'ai crée une macro VBA sur Windows-Excel 2003 qui ouvre un fichier Word et qui y copie des informations.
 
J'ai du l'installer sur un MAC (Word 2004 pour MAC), lorsque je l'utilise il me met l'erreur suivante :
 
"Erreur d'exécution 1004. La méthode 'DDEInitiate' de l'objet '_Application' a échoué"
 
Voilà mon code PC :
 
    If Range("C6" ) = "Mémoire validé" Then
        channelNumber = Application.DDEInitiate( _
        app:="WinWord", _
        topic:="C:\Dossier\Fichier1.doc" )
    Else
        channelNumber = Application.DDEInitiate( _
        app:="WinWord", _
        topic:="C:\Dossier\Fichier2.doc" )
    End If
 
En étant allé voir sur MSDN, j'ai adapté mon code comme ceci :
 
    If Range("C6" ) = "Mémoire validé" Then
        Shell "SERVEUR:Dossier1:Dossier2:Dossier3:Fichier1"
        Do
            channelNumber = Application.DDEInitiate( _
                app:="MSWord", _
                topic:="SERVEUR:Dossier1:Dossier2:Dossier3:Fichier1" )
        Loop Until TypeName(channelNumber) <> "Error"
    Else
        Shell "SERVEUR:Dossier1:Dossier2:Dossier3:Fichier2"
        Do
            channelNumber = Application.DDEInitiate( _
                app:="MSWord", _
                topic:="SERVEUR:Dossier1:Dossier2:Dossier3:Fichier2" )
        Loop Until TypeName(channelNumber) <> "Error"
    End If
 
Mais ça indique toujours la même erreur. Quelqu'un peut-il me dépanner ?

mood
Publicité
Posté le 29-11-2007 à 12:09:09  profilanswer
 

n°1650774
olivthill
Posté le 29-11-2007 à 13:09:29  profilanswer
 

Le DDE (Dynamic Data Exchange) est une technique propre à Windows. Elle n'existe pas sous Macintosh. Il ne faut donc pas l'utiliser. Voir par exemple http://support.microsoft.com/kb/112427/en-us http://www.vsh.com/Documentation/ModFitLT/apndole.htm
Il faut utiliser OLE à la place. Voir http://members.aol.com/gerrathjen/ [...] undOLE.htm

n°1650776
olivthill
Posté le 29-11-2007 à 13:15:27  profilanswer
 

J'ajoute, que même sous Windows, ce n'est pas une bonne idée d'utiliser DDE, car c'est une vieille technologie qui sera problablement bientôt abandonnée par M$crosoft.
L'automation (nouveau nom de OLE) est la méthode à utiliser.
Par exemple pour copier un tableau Excel dans Word, il suffit de faire :

Sub CopieExcelWord()  
  Dim PlageACopier As Range  
  Dim AppWord As Object  
  Set PlageACopier = Range("mon tableau" )  
  Set AppWord = CreateObject("Word.Application" )  
  PlageACopier.Copy  
  With AppWord  
     .Visible = True  
     .Documents.Open (ThisWorkbook.Path & "\Essai.doc" )  
     .Selection.Paste  
  End With  
End Sub


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Excel VBA PC => MAC

 

Sujets relatifs
Sur excel, Equation disant JUSTE ou FAUX suivant 6 cellulesTri colonnes VBA Excel
Retrouver une adresse MAC sur le netVBA - Vlookup (->SQL ?)
excel et microsfot office document imagingSyntaxe Lien relatif Excel
Formules Excel remplies avec Perl[VBA] L'anniv d'Harko
VBA Excel Autofilter 
Plus de sujets relatifs à : Excel VBA PC => MAC


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR