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

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    décembre 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : décembre 2018
    Messages : 8
    Points : 5
    Points
    5

    Par défaut Renvoi de signets cassés suite à macro Excel VBA

    Bonjour à tous,

    Depuis un fichier Excel, je nomme des cellules et créé des signets dans des fichiers Word.

    (Je choisis même quel fichier Word sera alimenté puis enregistré sous un autre nom pour ne pas casser mon modèle !)

    Comme les signets sont utilisés à plusieurs endroits dans le fichier, j'utilise des renvois.

    Sauf que les signets sont effacés après utilisation et du coup pour les renvois j'ai le message : "Erreur ! Source du renvoi introuvable."

    J'ai essayé la solution décrite ici : https://www.developpez.net/forums/d1...n-existe-plus/

    Mais j'ai remplacé MERGEFORMAT par CHARFORMAT car il parait c'est meilleur concernant la longueur des caractères.

    Mais en faisant Alt + F9, cela fait disparaître le code que je joins ci-dessous. Est-ce un problème de ponctuation ?

    Nom : renvoi.png
Affichages : 27
Taille : 3,2 Ko

    Merci d'avance pour votre réponse.

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Développeur Vba Excel
    Inscrit en
    avril 2013
    Messages
    4 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Vba Excel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 4 031
    Points : 10 297
    Points
    10 297
    Billets dans le blog
    27

    Par défaut

    Citation Envoyé par Onion Voir le message
    Bonjour,

    C'est normal.
    Regardez la fonction RemplacerTexteSignet dans le tuto d'Olvier LEBEAU : https://heureuxoli.developpez.com/of...vba-word/#LVII
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    décembre 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : décembre 2018
    Messages : 8
    Points : 5
    Points
    5

    Par défaut

    Merci Eric, je vais regarder ça.

    Ça soulève deux interrogations.

    1) Est-ce que ça fonctionne pour plusieurs signets ? J'imagine que oui, je dois répéter la fonction que je ne créé qu'une seule fois pour tous les signets.
    2) Puis-je utiliser plusieurs fois la fonction pour un seul signet ? (car j'ai des signets sans renvois, d'autres avec un seul renvoi, et d'autres avec plusieurs renvois.

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Développeur Vba Excel
    Inscrit en
    avril 2013
    Messages
    4 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Vba Excel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 4 031
    Points : 10 297
    Points
    10 297
    Billets dans le blog
    27

    Par défaut

    Citation Envoyé par Onion Voir le message
    1) Est-ce que ça fonctionne pour plusieurs signets ? J'imagine que oui, je dois répéter la fonction que je ne créé qu'une seule fois pour tous les signets.
    Oui.

    2) Puis-je utiliser plusieurs fois la fonction pour un seul signet ? (car j'ai des signets sans renvois, d'autres avec un seul renvoi, et d'autres avec plusieurs renvois.
    Oui.

    Regardez l'utilisation de cette fonction dans cette discussion : macro-marche-bouton-cliquer-y-reference-bugue
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    décembre 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : décembre 2018
    Messages : 8
    Points : 5
    Points
    5

    Par défaut

    Si j'ai bien compris l'autre discussion, l'utilisateur renseigne une et une seule fois les champs dans l'userform et ça les renseigne en page 1 en tant que signets puis dans les renvois ?

    Dans ce cas-là il faudrait que je change de méthode puisque ma méthode actuelle consiste à alimenter les signets depuis Excel dans un modèle Word à choisir et à créer un fichier Word (où les signets disparaissent donc les renvois ne fonctionnent plus).

    Si j'utilise l'autre méthode, ça me fera saisir deux fois les signets, une fois dans le fichier Excel de création de devis et une deuxième fois dans l'userform Word.
    J'ai créé le fichier avec mon Userform que j'attache en pièce jointe mais est-ce qu'il est possible d'éviter de saisir une deuxième fois les signets dans Word ? (dans le fichier Word j'ai surligné en vert les renvois)

    Merci d'avance pour votre réponse.
    Fichiers attachés Fichiers attachés

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Développeur Vba Excel
    Inscrit en
    avril 2013
    Messages
    4 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Vba Excel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 4 031
    Points : 10 297
    Points
    10 297
    Billets dans le blog
    27

    Par défaut

    Citation Envoyé par Onion Voir le message
    Bonjour,

    Pouvez-vous mettre votre fichier (ou vos fichiers) dans un .zip ?
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    décembre 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : décembre 2018
    Messages : 8
    Points : 5
    Points
    5

    Par défaut

    Oui bien sûr.
    Fichiers attachés Fichiers attachés

  8. #8
    Expert éminent sénior

    Homme Profil pro
    Développeur Vba Excel
    Inscrit en
    avril 2013
    Messages
    4 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Vba Excel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 4 031
    Points : 10 297
    Points
    10 297
    Billets dans le blog
    27

    Par défaut

    Citation Envoyé par Onion Voir le message
    Il faudrait que votre Userform et vos macros soient plutôt dans le fichier Excel. Votre fichier Word devrait être un modèle .dotx, et que le template soit appelé lors du transfert sur Word. Le remplacement des signets comme vous le faîte supprime le signet. Pour le reconstituer il vous appliquer la fonction dont je fais référence dans ma première réponse.
    Sinon, dans le principe, votre fichier Excel fait bien la correspondance entre les champs et les signets, il n'y a donc aucune double saisie. La seule adaptation que je verrais, serait de transformer votre tableau Excel en un tableau référencé où vous garderiez la trace de tous vos envois. Une ligne : 1 courrier contenant toutes les informations saisies dans votre Userform.
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    décembre 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : décembre 2018
    Messages : 8
    Points : 5
    Points
    5

    Par défaut

    Je ne suis pas assez à l'aise dans les jonctions Word et Excel pour y arriver.

    Du coup j'avais pensé à une méthode du pauvre. Comme l'export Excel -> Word fonctionne bien.

    Il s'agirait de :
    - créer un tableau avec chaque signet en colonne A
    - et répéter le signet 9 fois (colonnes B à J) en renommant en NomClient1, NomClient2, NomClientX, etc.
    - dans mes modèles Word, allez chercher jusqu'à NomClient6 s'il apparait 6 fois dans un modèle.

    Ainsi ça ne nécessite plus d'utiliser les Renvois.

    Et c'est simple à mettre en place puisque les modèles ne sont créés qu'une seule fois et ne vont pas nécessiter de modifications (majeures) dans le futur.

    Qu'en pensez-vous ?

  10. #10
    Expert éminent sénior

    Homme Profil pro
    Développeur Vba Excel
    Inscrit en
    avril 2013
    Messages
    4 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Vba Excel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 4 031
    Points : 10 297
    Points
    10 297
    Billets dans le blog
    27

    Par défaut

    Citation Envoyé par Onion Voir le message
    OK, il vous suffit de faire la même chose mais en inversant colonnes et lignes et vous aurez un tableau structuré possible. Chaque titre de colonne correspondrait à un signet. Si un signet doit se répéter N fois dans Word, vous les baptisez de XXXX01, à XXXXN et les XXXX correspondant au nom du signet dans Excel et dans une boucle vous modifiez tous les signets dont le nom commence par XXXX.
    Nb : Avec la méthode par fichier modèle .dotx, vous n'avez pas besoin de reconstituer le nom du signet puisqu'il ne sert qu'une fois.
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

Discussions similaires

  1. Appeler une dll ou un autre module vba depuis une macro excel vba
    Par technobiz dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/11/2008, 14h24
  2. Réponses: 3
    Dernier message: 19/03/2008, 21h44
  3. Macro Excel VBA : création automatique de 140 graphes/graphiques
    Par techneric dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/02/2007, 10h13
  4. macro excel vba
    Par fildupa dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/12/2006, 21h29

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