Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/03/2007, 12h26   #1
Invité régulier
 
Inscription : septembre 2006
Messages : 27
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 27
Points : 9
Points : 9
Par défaut Publipostage excel word

Bonjour,

je souhaites faire un publipostage d'Excel vers Word. J'ai pris le tuto http://silkyroad.developpez.com/Exce...tageWordExcel/
mais lorsque j'executes le code j'ai un message d'erreur qui me dit "L'objet demandé n'est pas disponible" . J'ai pourtant bien copié le code dans un module ? Déclaré la bibliothèque Word 12.0 libray. Auriez vous une idée ? Merci.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Vba 
Private Sub commandButton1_Click()
    'Nécessite d'activer la référence "Microsoft Word xx.x Object Library"
    Dim docWord As Word.Document
    Dim appWord As Word.Application
 
    Application.ScreenUpdating = False
    Set appWord = New Word.Application
    appWord.Visible = False
    'Ouverture du document principal Word
    Set docWord = appWord.Documents.Open("C:\leDocument.doc")
 
    'fonctionnalité de publipostage pour le document spécifié
    With docWord.mailMerge
        'Spécifie la fusion vers l'imprimante
        .Destination = wdSendToPrinter
        .suppressBlankLines = True
            'Prend en compte l'ensemble des enregistrements
            With .DataSource
                .firstRecord = wdDefaultFirstRecord
                .lastRecord = wdDefaultLastRecord
            End With
        'Exécute l'opération de publipostage
        .Execute Pause:=False
    End With
 
    Application.ScreenUpdating = True
 
    'Fermeture du document Word
    docWord.Close False
    appWord.Quit
End Sub
Sachant que le message d'erreur fait référence à l'objet docWord.mailMerge puisqu'il bloque sur la ligne qui fait référence à sa propriété Destination.
hanky est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2007, 12h34   #2
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Et si tu modifies le paramètre Destination pour wdSendToNewDocument à la place de wdSendToPrinter ? Un nouveau doc est-il créé ?
Si oui, c'est que l'imprimante n'est pas définie
Juste une idée
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2007, 13h00   #3
Invité régulier
 
Inscription : septembre 2006
Messages : 27
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 27
Points : 9
Points : 9
J'ai bien essayé de changer la destination mais le probleme persiste...
hanky est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2007, 13h04   #4
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Ton document principal (.doc) est bien lié à ton xls ?
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2007, 13h52   #5
Invité régulier
 
Inscription : septembre 2006
Messages : 27
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 27
Points : 9
Points : 9
Ayé j'ai trouvé, le probleme est le suivant : sur les versions word 2003 et plus lorsqu'on ouvre un document de publipostage, on a un message qui spécifie que le fichier va etre alimenter à partir d'une source de données. Par défaut le choix est à "non" d'où le message d'erreur car il ya pas d'alimentation du fichier word. Pour pallier au probleme il faut modifier la base des registre.s Enfin si vous souhaitez plus d'explications :

http://www.multi-hardware.com/MHBB/r...et_4_2895.html

Merci.

@+
hanky est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2007, 14h03   #6
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Je mettrais plutôt cette adresse Rendons à César ce qui appartient à Bill...
Merci de nous avoir fait part de la solution
A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2007, 14h14   #7
Invité régulier
 
Inscription : septembre 2006
Messages : 27
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 27
Points : 9
Points : 9
POur aller au fond des choses, est-il facile de modifier la base des registres via VBA car il se trouve que je développe à distance une petite appli pour un client mais de là à ce qu'il modifie lui même la base des registres sur son poste y'a ... beaucoup! Merci.
hanky est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2007, 14h43   #8
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Tu devrais poser une nouvelle question sur le forum
Tu as vu les conséquences d'une modif de la base de registre, niveau sécurité ?
Tu n'as pas peur qu'en cas de pb le client te pose des questions ?
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2007, 15h43   #9
Invité régulier
 
Inscription : septembre 2006
Messages : 27
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 27
Points : 9
Points : 9
Comme tu dis ouskel'n'or, point de vue sécurité c'est pas top de modifier la base des registres. Toutefois, il faut croire que je suis pas le premier qui ai eu cette idée suite au probleme lié au publipostage. Et en cherchant bien je suis tombé sur cette adresse : http://faqword.free.fr/articles.php?lng=fr&pg=56 avec la solution au probleme et cerise sur le gâteau tout le code qui va bien (alléluia). A savoir, on modifie la clé juste le temps du publipostage pour ensuite la remettre en son état initial.
hanky est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2007, 18h20   #10
Membre actif
 
Avatar de Yolak
 
Inscription : mars 2007
Messages : 333
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Vosges (Lorraine)

Informations forums :
Inscription : mars 2007
Messages : 333
Points : 180
Points : 180
Salut!!!

J'ai bien entendu le même souci...
J'ai un peu regardé le code du lien dans le post juste au dessus du mien mais je n'arrive pas à l'integrer dans ma macro...

J'ai une userform avec une textbox et un bouton et un module qui me permet d'appeler la userform
Faut le mettre où ce code? Dans un module? dans un Sub ??? Je suis perdu !!!

code du module:
Code :
1
2
3
Sub Macro()
UserForm1.show
End Sub
Quelqu'un saurait donner un exemple svp??

Merci d'avance!!
Yolak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2007, 08h52   #11
Membre actif
 
Avatar de Yolak
 
Inscription : mars 2007
Messages : 333
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Vosges (Lorraine)

Informations forums :
Inscription : mars 2007
Messages : 333
Points : 180
Points : 180
Après moultes tentatives, je n'y arrive pas et je pense que c'est à cause de l'imprimante qui est en réseau et le pc depuis lequel j'essaye de faire mon publipostage également. Je ne suis pas l'administrateur du réseau et l'administrateur est difficilement joignable, mais je pense qu'il y a une protection pour que tout les utilisateurs ne puissent pas aller trifouiller dans le registre... Pensez-vous que je me trompe?

N'y aurait-il pas un autre moyen de shunter ce message plutôt ennuyant?

(C'est fou ça quand même! Plus ils améliorent leur logiciels, moins on peut faire de choses!!)

Merci d'avance!
Yolak est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h07.


 
 
 
 
Partenaires

Hébergement Web