IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Discussion :

Fusion et publipostage - Insertion d'images - Liste ds Excel - VBA ou Word [FAQ]


Sujet :

Contribuez

  1. #41
    Membre expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Spécialiste progiciel
    Secteur : Service public

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Points : 3 016
    Points
    3 016
    Par défaut
    Bonjour,

    Il ne me semble pas qu'il soit possible de faire
    iR = MailMerge.DataSource.RecordCount
    Par contre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    iR = Odoc.MailMerge.DataSource.RecordCount
    est possible, je ne sais pas si c'était ce que tu voulais faire à la base.

    La propriété MailMerge n'est disponible que pour un objet de type Word.Document je crois.
    Cordialement,
    Christophe

    Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

  2. #42
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 34
    Points : 33
    Points
    33
    Par défaut
    pour le partage, il se trouve que ce n'est pas toujours la même personne qui assure la fusion selon les années.

    donc à moins de figer le chemin d'accès quelque soit le PC, ça peut poser problème.

    pour le IR, je ene sait pas ce qui se passe, mais lorsque j'ai esayé, la macro a planté sur cette ligne.

    d'autre part, sur les fichiers créés, j'ai un message d'erreur à l'ouverture concernant le convertisseur mswrd632 ce que je ne comprends pas.

  3. #43
    Membre expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Spécialiste progiciel
    Secteur : Service public

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Points : 3 016
    Points
    3 016
    Par défaut
    Bonjour Jay69,

    Je pense que les lettres types peuvent être mises sur un serveur pour une utilisation commune indépendante.

    Pour le IR
    iR = Odoc.MailMerge.DataSource.RecordCount
    ne fonctionne toujours pas?

    Pour le message d'erreur, il ne manquerait pas des
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set objdoc=Nothing
    set oDs=Nothing
    Je pense que cela peut être du à cela si l'application n'a pas été terminée correctement?
    Cordialement,
    Christophe

    Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

  4. #44
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 34
    Points : 33
    Points
    33
    Par défaut
    pour le code lié à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IR = odoc.mailmerge.datasource.recordcount
    ça ne fonctionne pas mieux, lorsque j’exécute la macro, il veut traiter le fichier -1...

    et si j'ajoute 2, ça ne le fait pas mieux. dans ce cas il ne traite que l'enregistrement 1

    pour l'erreur dont tu parles, je ne vois pas à quoi tu fais référence.

    pour la mise en oeuvre sur serveur, ça peut résoudre le problème de travail collaboratif et en plus on n'aura plus à le faire depuis la maison...


    J'ai un autre soucis technique, alors que toutes mes photos ont à peu près les mêmes dimensions (toutes avec largeur 177 px et longueur voisines à 2/3 px près) 2 d'entre elles apparaissent plus petites dans le documents fusionné, même avec les commutateurs \x \y pour le champ include picture.


    et oui, je suis pénible comme garçon.

  5. #45
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Citation Envoyé par carden752 Voir le message
    Bonjour,

    Il ne me semble pas qu'il soit possible de faire


    Par contre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    iR = Odoc.MailMerge.DataSource.RecordCount
    est possible, je ne sais pas si c'était ce que tu voulais faire à la base.

    La propriété MailMerge n'est disponible que pour un objet de type Word.Document je crois.
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    iR = MailMerge.DataSource.RecordCount
    Fonctionne.

    Pour t'en convaincre, essaie juste un document avec une source et ce bout de code issu du tuto, j'ai éliminé quelques lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub TestPublipost()
    ' Déclaration des variables
    Dim iR As Integer
    Dim i As Integer
    Dim oDoc As Document
    Dim oDS As MailMergeDataSource
     
    ' Affectation des objets
    Set oDoc = ActiveDocument
    Set oDS = oDoc.MailMerge.DataSource
     
    iR = MailMerge.DataSource.RecordCount
    Debug.Print iR
     
    End Sub
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  6. #46
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 34
    Points : 33
    Points
    33
    Par défaut
    c'est là que le bas blesse, même ce code simplifié ne fonctionne pas chez moi, il m'indique erreur 424 lors de l'exécution

  7. #47
    Membre expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Spécialiste progiciel
    Secteur : Service public

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Points : 3 016
    Points
    3 016
    Par défaut
    Bonjour Heureux-Oli,

    J'ai effectivement fait ce test avant de poster et il m'indiquait

    Erreur d'xécution '424'
    Objet requis
    Alors qu'avec iR = oDoc.MailMerge.DataSource.RecordCount j'ai bien le nombre d'enregistrements.


    Bonjour aussi à JAy69,
    ça ne fonctionne pas mieux, lorsque j’exécute la macro, il veut traiter le fichier -1
    Cependant, je vois peut être une explication au fait que tu es iR=-1. Tu as bien charger ta liste de destinataire pour ton publipostage avant d'exécuter ta macro?
    Sinon, il est normal qu'il apparaisse -1 puisqu'aucun de tes destinataires n'est sélectionné donc pas d'enregistrement.
    Cordialement,
    Christophe

    Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

  8. #48
    Membre expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Spécialiste progiciel
    Secteur : Service public

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Points : 3 016
    Points
    3 016
    Par défaut
    Pour le problème d'image, sinon tu peux peut être utiliser un bout de macro qui les redimensionnes toutes à la même taille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    Sub redimimage()
    Dim i As Integer
    i = 1
    While (i <= ActiveDocument.InlineShapes.Count)
    ActiveDocument.InlineShapes.Item(i).LockAspectRatio = msoFalse 'Pas de proportionnalite conservée entre la hauteur et largeur d'origine si msoFalse, sinon msoTrue pour la conserver
    ActiveDocument.InlineShapes.Item(i).width= 177
    ActiveDocument.InlineShapes.Item(i).height = 60
    i = i + 1
    Wend
     
    End Sub
     
    177 px en largeur et 60 en hauteur ici pas de proportionnalité conserver. 
    Sinon il suffit de mettre msoTrue pour LockAspectRatio  et une largeur de 177 uniquement
    Cordialement,
    Christophe

    Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

  9. #49
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 34
    Points : 33
    Points
    33
    Par défaut
    merci pour cette info, je vais essayer ça dès que possible, pas trop eu le temps cette semaine.

    je vous tiens au courant, et je posterai les modifs que j'ai faite sur le code déjà posté pour que ça fonctionne.

  10. #50
    Membre régulier Avatar de LotfiB
    Inscrit en
    Août 2004
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 117
    Points : 75
    Points
    75
    Par défaut F9 sur une zone de texte contenant une image fusionnée
    J'ai réussi en suivant les étapes à sortir mon fichier de fusion avec les images,
    (pour une carte de visite sous forme de cadre) l'image est dans une zone de texte, mais il faut que je sélectionne individuellement les images et que je fasse la mise à jour F9 pour chacune :-( car le CTRL All ne sélectionne pas les zones de texte.

    A part refaire la mise à jour avec des tableaux... y a t il une solution ?

  11. #51
    Membre expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Spécialiste progiciel
    Secteur : Service public

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Points : 3 016
    Points
    3 016
    Par défaut
    Bonjour,

    Il faut considérer 2 cas selon si la zone de texte est directement dans le document ou si elle est dans une zone de dessin du document.
    Ensuite, il faut procéder par macro pour rapidement mettre à jour chacune des zones de texte.
    Voici un exemple expliquant ces 2 cas, il ne reste plus qu'à l'adapter et à y rajouter les contrôles adéquates.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Sub maj_zonedetexte()
    Dim sh As Shape
    Dim i As Integer, j As Integer
     
    Selection.HomeKey wdStory
    On Error Resume Next
    'cas où les zones de texte sont directement dans le document
    For Each sh In ActiveDocument.Content.ShapeRange
    sh.Select
    Selection.Fields.Update
    Next
     
    Selection.HomeKey wdStory
    'cas où les zones de texte sont inclus dans une zone de dessin dans le document
    'Parcours des zones de dessins
    For i = 1 To ActiveDocument.Shapes.Count
        'Parcours des zones de texte de la zone de dessin
        For j = 1 To ActiveDocument.Shapes(i).CanvasItems.Count
    ActiveDocument.Shapes(i).CanvasItems(j).Select
    Selection.Fields.Update
        Next
    Next
    End Sub
    Cordialement,
    Christophe

    Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

Discussions similaires

  1. liste deroulante excel + vba
    Par Maxime082 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 09/05/2011, 21h42
  2. Réponses: 10
    Dernier message: 24/04/2008, 15h22
  3. Liste déroulante Excel VBA
    Par a.dequidt dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 05/09/2007, 16h34
  4. Publipostage et insertion d'images
    Par stefane26 dans le forum Word
    Réponses: 3
    Dernier message: 20/06/2007, 21h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo