récupérer des données dans plusieurs tableaux et piloter word en conséquence

cgpa

XLDnaute Occasionnel
Voici la problématique:
A partir de plusieurs tableaux dans un seul fichier excel, il s'agit de sélectionner une entrée (ex. coordonnées d'un fournisseur) et utiliser une boite de dialogue pour récupérer des données d'autres tableaux (ex. chantier concerné, coprs de métier ou produit, nom de l'encodeur) afin d'ouvrir automatiquement un document word en relation avec l'une des entrées (ex. fichier "bon de commande" s'il s'agit d'un courrier fournisseur). Sur ce document doivent apparaître via des signets les données récupérées dans excel.

Bonjour Martial,

Pour les fichiers de base, je je joins ceux qui peuvent servir de cible à l'ouverture de word (basés sur la commande fournisseur). Ce sont de simples documents word dont l'en-tête sera identique à celui de la commande fournisseur sur lequel tu as travaillé (même position des signets). Il y a des fichiers différents car le contenu change (contenu que l'on adapte selon les courriers mais qu'on ne recopie pas toujours). Nous pouvons nous baser sur un document vierge: je placerai les signets.
Je joins par contre le fichier sur lequel tu as déjà beaucoup travaillé afin de bien comprendre la problématique si un utilisateur venait à lire ce post.

Je te remercie pour ta collaboration et te suhaite une bonne journée.
 

Pièces jointes

  • LISTE V3.xls
    74.5 KB · Affichages: 82
  • LISTE V3.xls
    74.5 KB · Affichages: 83
  • LISTE V3.xls
    74.5 KB · Affichages: 82
  • commande fournisseur.docx
    27 KB · Affichages: 66
  • commande fournisseur.docx
    27 KB · Affichages: 65
  • courrier divers.docx
    26.9 KB · Affichages: 62
  • commande fournisseur.docx
    27 KB · Affichages: 62
  • commande sous traitant.docx
    26.8 KB · Affichages: 57
Dernière édition:

cgpa

XLDnaute Occasionnel
Re : récupérer des données dans plusieurs tableaux et piloter word en conséquence

Bonjour Martial, bonjour à tous,

Merci pour cette info, Martial. Je m'en suis rendu compte après maintes recherches.
Comme je ne savais pas comment modifier le code de l'userform 1, je l'ai dupliqué en userform 2 et adapté le code de l'userform 2 pour qu'il renvoie les informations de la nouvelle feuille créée (contact st, ws5).
Cela fonctionne donc bien. Voir fichier en pj.

J'aurai au final en tout probablement 5 listes différentes dans 5 feuilles différentes. Mais à chaque fois je devrai lancer l'userform.
Ma question a pour simple but d'alléger le style du code et voir si je travaille correctement: dois-je à chaque fois créer un userform spécifique à chaque feuille source (ça, je sais maintenant comment faire), ou est-il possible d'adapter le code de l'userform 1 de façon à ce qu'il renvoie les données de la feuille à partir de laquelle j'ai double cliqué? (je vois bien la ligne, mais ne sais si cela est faisable). Si cela n'est pas faisable, je sais donc comment m'en sortir.

Autre petite question: quand je lance l'userform1 à partir de la feuille "contact fournisseur", l'userform me demande le chantier et je dois directement cliquer sur le chantier. Par contre, quand je lance l'userform 2 (nouveau créé) à partir de la feuille "contact st" (Ws5), l'userform me demande le chantier mais je dois d'abord cliquer dans la case de l'userform avant de cliquer sur le nom du chantier. Je ne vois pourtant pas de différence entre les codes. Comment faire?

Merci pour ton aide et bonne journée!
Patrick
 

Pièces jointes

  • LISTE V4.xls
    126 KB · Affichages: 32
  • LISTE V4.xls
    126 KB · Affichages: 36
  • LISTE V4.xls
    126 KB · Affichages: 33

Yaloo

XLDnaute Barbatruc
Re : récupérer des données dans plusieurs tableaux et piloter word en conséquence

Bonjour Patrick,

Je suis au boulot donc difficile de te répondre, mais, en gros, oui il doit être possible de ne conserver qu'un seul UserForm.

Donc il n'y a pas besoin de répondre à la question 2.

Je vois ça ce soir.

A+

Martial
 

Yaloo

XLDnaute Barbatruc
Re : récupérer des données dans plusieurs tableaux et piloter word en conséquence

Re,

Pour finir, je suis rentré chez moi, donc tu trouveras ci-dessous ton fichier modifié.

La modification concerne :

1 - La décalaration de la variable Feuille en tant que WorkSheet, en Public dans Module1.

2 - Ajout du nom de la feuille dans les codes de chaque feuille Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean), de style Set Feuille = Ws1

3 - Modification de Ws1 dans le code de l'UserForm.

A contrôler, car je n'ai pas eu le temps de faire toutes les vérifications.

A te relire

Martial
 

Pièces jointes

  • LISTE V4.1.xls
    114.5 KB · Affichages: 41

cgpa

XLDnaute Occasionnel
Re : récupérer des données dans plusieurs tableaux et piloter word en conséquence

Bonjour Martial, bonjour au lecteur,
Ce code fonctionne parfaitement.
Cela prouve que plusieurs chemins peuvent mener au même endroit, mais ta solution est plus directe!
J'ai pu comparer les deux codes et ca parait tellement logique (!).
Encore merci et bonne journée.
Patrick.
 

cgpa

XLDnaute Occasionnel
Re : récupérer des données dans plusieurs tableaux et piloter word en conséquence

Bonjour le forum, bonjour Martial,

J'ai tenté d'adapter la technique que Martial m'a apprise à un autre fichier. Mais je bug sur un code. Probablement une bêtise, mais je ne trouve pas.
Le code ne parvient pas à renvoyer les données de la ligne sur laquelle je me situe. En fait, il ne trouve pas la feuille1:
.Bookmarks("Signet" & i).Range = Feuil1.Cells(DerLFeuil1, i)

Voici en pj le fichier excel et les 2 fichiers word qu'il doit piloter.
Si quelqu'un peut m'aider à résoudre ce problème, ce serait gentil.
Merci beaucoup et bonne journée.
 

Pièces jointes

  • Fiches techniques.xlsm
    28.4 KB · Affichages: 28
  • Fiches techniques.xlsm
    28.4 KB · Affichages: 29
  • Fiches techniques.xlsm
    28.4 KB · Affichages: 28
  • fiche vierge.docx
    14.9 KB · Affichages: 27
  • lettre accompagnement.docx
    14.1 KB · Affichages: 25
  • fiche vierge.docx
    14.9 KB · Affichages: 25
  • lettre accompagnement.docx
    14.1 KB · Affichages: 26
  • fiche vierge.docx
    14.9 KB · Affichages: 24
  • lettre accompagnement.docx
    14.1 KB · Affichages: 25

Yaloo

XLDnaute Barbatruc
Re : récupérer des données dans plusieurs tableaux et piloter word en conséquence

Bonsoir Patrick,

C'est normal puisque DerLFeuil1 n'est ni déclaré ni définit.

De plus, i correspond à une colonne alors que je pense qu'il s'agit de ligne.

Je n'ai pas trouvé de corrélation entre ton fichier Excel et tes fichiers Word, peux-tu nous en dire plus ?

A+
Martial
 

cgpa

XLDnaute Occasionnel
Re : récupérer des données dans plusieurs tableaux et piloter word en conséquence

Bonjour Martial, le Forum,

Merci une fois de plus de me donner un coup de main.

Il s'agit d'encoder des informations relatives à des fiches techniques (zone bleue dans le fichier excel que je remets ici).
A l'aide d'un bouton, je désire envoyer ces informations dans un fichier de présentation word via signets (fichier "fiche technique").
A l'aide d'un autre bouton, je désire envoyer ces mêmes informations dans une lettre d'accompagnement toujours via signets, dans word (fichier "lettre d'accompagement).
Les informations du "client" en haut à droite sont les mêmes pour toutes les lettres d'accompagnement (plusieurs fiches pour un même client).

Enfin, lorsque cela fonctionnera, je replacerai la macro que tu avais réalisée pour renommer directement le fichier word dnas la fenêtre "save as" de word (pour cela, ça devrait aller!).

Je ne sais comment définir DerLFeuil1 (en fait j'ai tenté d'adapter le code d'un autre fichier, mais sans succiès car l'autre fichier était DerLWs1). Je pensais que ça irait en remplaçant, apparemment non!

Mes explications te donnent-elles assez de renseignements?

Je te souhaite une bonne journée.
 

Pièces jointes

  • fiche vierge.docx
    14.9 KB · Affichages: 26
  • fiche vierge.docx
    14.9 KB · Affichages: 26
  • fiche vierge.docx
    14.9 KB · Affichages: 24
  • lettre accompagnement.docx
    14.1 KB · Affichages: 21
  • lettre accompagnement.docx
    14.1 KB · Affichages: 25
  • lettre accompagnement.docx
    14.1 KB · Affichages: 24
  • Fiches techniques.xlsm
    28.3 KB · Affichages: 21
  • Fiches techniques.xlsm
    28.3 KB · Affichages: 19
  • Fiches techniques.xlsm
    28.3 KB · Affichages: 24

Yaloo

XLDnaute Barbatruc
Re : récupérer des données dans plusieurs tableaux et piloter word en conséquence

Re,

J'ai pris la dernière ligne.

Pour la dernière ligne, tu peux utiliser n'importe quel nom, ce qu'il ne faut pas oublier c'est la ligne de code te permettant de récupérer la dernière ligne de ton tableau. Comme :

Code:
DerLigne = Cells(rows.count, 1).End(xlup).row
ou 
DerLigne = [A65000].End(xlup).row
et bien d'autre encore

Au plaisir

Martial
 

Pièces jointes

  • Fiches techniques.xlsm
    29.3 KB · Affichages: 22
  • Fiches techniques.xlsm
    29.3 KB · Affichages: 20
  • Fiches techniques.xlsm
    29.3 KB · Affichages: 18

cgpa

XLDnaute Occasionnel
Re : récupérer des données dans plusieurs tableaux et piloter word en conséquence

Bonjour Martial,

Je te remercie: c'est exactement ce que je recherchais.
J'ai nettoyé le document "lettre d'accompagnement" et j'ai ce que je désirais. Merci encore.

Pour la lettre d'accompagnement, je viens d'ajouter le code pour que Word ouvre automatiquement la boite "enregistrer sous" et y encode le nom du fichier en reprenant automatiquement le numéro de la fiche et le poste. Mais cela ne fonctionne pas. Peux-tu me dire l'erreur que j'ai faite?

Encore merci pour ta collaboration et bonne journée.
 

Pièces jointes

  • lettre accompagnement.docx
    20.4 KB · Affichages: 33
  • Fiches techniques.xlsm
    30 KB · Affichages: 28
  • lettre accompagnement.docx
    20.4 KB · Affichages: 34
  • Fiches techniques.xlsm
    30 KB · Affichages: 28
  • lettre accompagnement.docx
    20.4 KB · Affichages: 36
  • Fiches techniques.xlsm
    30 KB · Affichages: 24

Yaloo

XLDnaute Barbatruc
Re : récupérer des données dans plusieurs tableaux et piloter word en conséquence

Bonsoir Patrick,

Voici ton fichier modifié, j'ai mis quelques explications dans la macro.

A+

Martial
 

Pièces jointes

  • Fiches techniques.xlsm
    31.1 KB · Affichages: 36
  • Fiches techniques.xlsm
    31.1 KB · Affichages: 48
  • Fiches techniques.xlsm
    31.1 KB · Affichages: 40

cgpa

XLDnaute Occasionnel
Re : récupérer des données dans plusieurs tableaux et piloter word en conséquence

Bonjour Martial,

Un tout grand merci pour ta correction et les explications.
C'est excatement ce que je désirais.
Je suis même parvenu à modifier le code pour un autre fichier de façon à envoyer vers word le contenu de la ligne en cours au lieu de la dernière ligne (grâce à un code que tu m'avais transmis ci-avant).
Bonne journée à toi et encore merci.

Patrick.
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 329
Messages
2 087 335
Membres
103 520
dernier inscrit
Azise