Macro Excel pour expoter des données vers des signet dans word

Résolu
Gabrieljb - 8 nov. 2012 à 18:53
 Gabrieljb - 9 nov. 2012 à 14:38
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

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
9 nov. 2012 à 11:35
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
3
Utilisateur anonyme
9 nov. 2012 à 04:11
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.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
9 nov. 2012 à 07:58
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
0
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 ??
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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 .
0
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
0
Rejoignez-nous