Macro Excel pour expoter des données vers des signet dans word [Résolu]

Signaler
-
 Gabrieljb -
Bonjour;
j'ai réaliser un macro excel en VB qui fait l 'export de la ligne selectionné dans la feuille excel vers une template word , a l'aide des signet dans la template.doc. Mais, j'ai trouvé beaucoup des problemes dans ce macro:

1. Le chemin des fichier excel et word peut changer, d une machine a l'autre, d'ou je doit avoir un chemin generique pour tout les utilisateurs.

2.Le macro contient une boucle:
"""
For i = 1 To 109
WordDoc.Bookmarks("Signet" & i).Range.Text = Cells(ActiveCell.Row, i)
Next i
""""
*109 est le numero de la derniere colonne , peut-on la remplacer avec une variable , n par exemple.
*dans la feuilles excel , y en a des cellules qui ne vont pas etre exporté vers le fichier word , mais si je les supprime du document word , le macro ne fonctionne plus , d ou je doit inserer les signets dans un autre endroit du document et ce n'est pas du tout beau.

3.mon Macro est enregistré dans ( PERSO.XLS) , et sa fonctionne pour tout les classeurs excel; mais si je veut travaillé sur autre machine , que doit-je faire ??

4.Merci pour votre aides et vos temps.

6 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
Par exemple, ler tableau contient : NOm, Prenom, Numero de tel, Matricule, Nationalitée,... , Adress mail. donc "address mail" sera la derniere colonne du tableau

La ligne 1 de ce "tableau" contient-elle ces entêtes ? et démarre-t-elle bien en colonne 1 ?
Si oui :
n = Cells(1, Columns.Count).End(xlToLeft).Column

Idem si pas d'entêtes mais que toutes les colonnes utiles de la ligne 1 sont remplies

Si tu n'es pas dans ce cas, il nous faudra procéder autrement, mais, pour y parvenir, en savoir beaucoup plus sur tes "tenants".
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ

Bonjour,


1. Le chemin des fichier excel et word peut changer, d une machine a l'autre, d'ou je doit avoir un chemin generique pour tout les utilisateurs.


Foutaise. VBA a des boîtes de dialogue intégrées. Voir FileDialog dans l'AIDE DE VBA


3.mon Macro est enregistré dans ( PERSO.XLS) , et sa fonctionne pour tout les classeurs excel; mais si je veut travaillé sur autre machine , que doit-je faire ??


Une macro complémentaire qui va être installée sur les autres machines.

Pour la question 2, il faut attendre qu'un devin passe.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
Bonjour (et un salut à cmarcotte),
Qu'est très exactement 109 (à remplacer par ton n) ?
Car :
*109 est le numero de la derniere colonne

peut être interprété de 3 manières différentes !
Nous allons donc attendre que tu sois techniquement très précis en ce qui concerne ce point !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Bonjour ucfoutu , Bonjour cmarcotte;

C'est exactement sa, 109 est le numero de la derniere colonne.

Pour la question 3 ; si je crée un macro complementaire , comment puis-je l installer sur des autres machines; sa reste aussi un probleme de chemin (Path ) , nn ??
je voulais dire par une derniere colonne ,la derniere colonne du tableau excel que je voudrais l'injecter dans un document word. Mon boucle parcour un ligne du tableau et, a l aide des signets dans word , remplace chaque signet par sa valeur correspandante dans la feuille excel , d ou je voudrais que la boucle s arrete a la fin du tableau et n sera le numero de la derniere colonne de la premiere ligne du tableau excel. Par exemple, ler tableau contient : NOm, Prenom, Numero de tel, Matricule, Nationalitée,... , Adress mail. donc "address mail" sera la derniere colonne du tableau dont j voudrais affetvé la variable n .

j'ai essayer "n=Column.count" mais sa na pas marché. Est-ce que ma question est bien claire? Merci pour votre aide .
Je vous remercie ucfoutu encore une fois; sa fonctionne tres bien la variable " n " . Svp, trouverais-je une piste de solution pour la quetion qui concerne le chemin generique ?? (question 1). Merci