Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1673 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] Ajouter une ligne à un fichier Word à partir de cellules Excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA] Ajouter une ligne à un fichier Word à partir de cellules Excel

n°1957112
Samu
Supertouriste
Posté le 12-01-2010 à 10:25:16  profilanswer
 

Bonjour !
Je souhaiterais savoir s'il est possible de programmer un bouton qui concatène dans un fichier Word le contenu d'une (ou de plusieurs) cellules de la ligne :
 
J'ai par exemple en A14 une date, en B14 un texte, en C14 mon bouton et en D14 un nom de fichier Word (D14.doc par exemple).
Quand je clique sur le bouton, il ajoute au début du fichier D14.doc la date et le texte (ce qui me permet en fait d'historiser les modifications de dates et de texte pour chaque ligne, et garder dans le fichier Excel la dernière modif).
J'aurais donc un fichier D14.doc qui ressemblerait à ça :
 
10/01/2010 Texte de B14 actualisé
07/01/2010 Texte de B14
04/01/2010 ...
 
Je suis une buse en matière de macros et de VB   :ange:

mood
Publicité
Posté le 12-01-2010 à 10:25:16  profilanswer
 

n°1957148
Samu
Supertouriste
Posté le 12-01-2010 à 13:51:21  profilanswer
 

Alors, j'ai réussi à faire un bouton qui ajoute une ligne à mon fichier word.
Mais j'ai défini en dur dans le fichier les noms des cellules dont je me sers (A2 et B2 pour les données à recopier, D2 pour le nom du document).
 
Comment dois-je m'y prendre pour qu'il prenne les cellules de la ligne sur laquelle est le bouton ?

n°1957238
Laoo
Posté le 12-01-2010 à 16:43:50  profilanswer
 

Bonjour
Je ne comprends pas bien ce que ça veut dire:

Citation :

Mais j'ai défini en dur dans le fichier les noms des cellules dont je me sers (A2 et B2 pour les données à recopier, D2 pour le nom du document).


 je ne comprends pas non plus  pourquoi:
- tu mets un bouton à chaque ligne ????
- tu tiens absolument à concaténer tes données dans un fichier World ???
 
Tu pourrais me dire que c'est ton affaire, mais je te demande ça car tu dis toi-même être une buse en matière de macros et de VB, et donc si on veut t'aider, on a besoin de bien comprendre ta démarche et surtout tes souhaits.
 
(et je ne suis pas sûr que ta démarche soit la bonne pour arriver à tes souhaits.)
 
Donc, détails clairs souhaités...
 
 
Je te propose néanmoins cette macro qui répondra pt-être à tes besoins:
 
 

Code :
  1. Dim Date_Opération As Date
  2.  
  3. NumLigne = InputBox(" Entrez le N° de ligne souhaitée. Merci" )  'ou sinon :
  4.                   'NumLigne = ActiveCell.Row  'si tu préfères sélectionner d'abord ta ligne.
  5.      Range("A" & NumLigne).Select
  6.  
  7. Date_Opération = ActiveCell.Value
  8. ValCellVoisine = ActiveCell.Offset(0, 1).Value
  9. MaPhrase = Date_Opération & " " & (ActiveCell.Offset(0, 1).Value) & " actualisé"
  10.   MaRép = MsgBox(MaPhrase & Chr(10) & Chr(10) & "D'ACCORD ?", 36, "D'ACCORD ?" )
  11. If MaRép = vbYes Then
  12. '''''''''    ' ce que tu veux faire. Par ex copier la phrase en col D sur la mm ligne:
  13.        ActiveCell.Offset(0, 3).Value = MaPhrase
  14. ' et/ou sur la feuille 2 en A2
  15.         Sheets(2).Range("A2" ).EntireRow.Insert
  16.         Sheets(2).Range("A2" ).Value = MaPhrase
  17. Else
  18. Exit Sub
  19. End If


 
A bientôt
 
Edit: PS: pour copier cette macro sans les numéros de lignes (ni "." ), clique sur l'icone avec les 2 yeux ("voir code" ), et sélectionne ce que tu veux.
 


Message édité par Laoo le 12-01-2010 à 16:58:52

---------------
Olympus OM-D  EM-5 + 14-42
n°1957364
Samu
Supertouriste
Posté le 13-01-2010 à 08:49:30  profilanswer
 

Oui, je veux mettre un bouton sur chaque ligne et un fichier Word par ligne (en écrivant ça je me rends compte que ça risque d'être assez lourd...).
Le but est de garder une trace de chaque modification sur certaines cellules de chaque ligne, en pouvant cliquer sur un bouton d'historisation.
Par exemple, si on a une colonne date (A), une colonne état (B), une colonne historisation (C) et une colonne nom du fichier (D), je veux avoir un bouton dans la colonne C, qui me permette de concaténer au fichier de la colonne D les données des colonnes A et B. Ça me permet en allant consulter le fichier Word sur la ligne x de savoir quels ont été les différentes modifications de l'état et des dates de cette ligne.
 

n°1957441
Laoo
Posté le 13-01-2010 à 11:08:00  profilanswer
 

Oui, je veux mettre un bouton sur chaque ligne et un fichier Word par ligne (en écrivant ça je me rends compte que ça risque d'être assez lourd...).  
[:aaah]                                                         [:kzimir]                                 [:power600]
 
 
  c'est un euphémisme!!!  t'auras vite besoin du samu!     (ouais, je sais, c'est facile et très mauvais!!)  
 
 
Le but est de garder une trace de chaque modification sur certaines cellules de chaque ligne, en pouvant cliquer sur un bouton d'historisation.
Par exemple, si on a une colonne date (A), une colonne état (B), une colonne historisation (C) et une colonne nom du fichier (D), je veux avoir un bouton dans la colonne C, qui me permette de concaténer au fichier de la colonne D les données des colonnes A et B. Ça me permet en allant consulter le fichier Word sur la ligne x de savoir quels ont été les différentes modifications de l'état et des dates de cette ligne.
 

tu pourrais mettre tout ça gentiment dans une belle feuille Excel, avec un joli système qui te sortirait une super belle fiche d'info sur la ligne que tu veux, ou la date, ou le produit, ou jecépakoi...       mais c'est toi qui vois...

 
 
 
 
 
 
 
 

n°1957455
Samu
Supertouriste
Posté le 13-01-2010 à 11:34:29  profilanswer
 

Tu veux dire avoir un fichier Excel pour chaque ligne de mon fichier initial, ou ajouter un onglet dans le document Excel pour chaque ligne de mon onglet principal ?

n°1957486
Laoo
Posté le 13-01-2010 à 12:15:54  profilanswer
 

Tu veux dire avoir un fichier Excel pour chaque ligne de mon fichier initial
NAAAN!! Un fichier Excel serait encore pire qu'un fichier Word!
 
ou ajouter un onglet dans le document Excel pour chaque ligne de mon onglet principal ?  ce serait un peu mieux, mais à peine, tellement compliqué à gérer et à retrouver.
 
 
Mon idée serait en fait une feuille récapitulative ds le même classeur, de préf, ou dans un autre, si tu veux, et une autre feuille avec de graaanndes cases en couleurs;  dans une case tu rentrerais le N° de ligne (ou 1 date, ou ce que tu veux), et aussitôt, dans les autres apparaîtraient les infos que tu désires. (feuille éventuellement imprimabe, si tu vx.)
 
Tout cela est aussi simple à faire, que léger à gérer et efficace à traiter.
 
Moi, c'est comme ça que je ferais...
 


Message édité par Laoo le 13-01-2010 à 13:35:55
n°1957521
Samu
Supertouriste
Posté le 13-01-2010 à 14:01:02  profilanswer
 

Je crois que je vois ce que tu veux dire. Et du coup ça revient à faire de simples formules, même pas besoin de passer par une macro si ?

n°1957544
Laoo
Posté le 13-01-2010 à 14:33:11  profilanswer
 

Samu a écrit :

Je crois que je vois ce que tu veux dire. Et du coup ça revient à faire de simples formules, même pas besoin de passer par une macro si ?


 
A la limite, si tu te sers de ta feuille comme base, non, même pas. Mais pourtant, ce serait bien d'en mettre dans la feuille "Info", soit en private sub, soit pour un bouton. Au choix. Et puis c'est amusant aussi.
 
(Si tu as besoin d'aide, y a pas de pb)
 
A + :hello:
 
Edit: A la limite, pour te rendre compte, et dans une démarche minimaliste, tu mets ds une feuille voisine de la ppale, une cellule vide en A1, et dans B1 ,C1, D1, tu rentres une fonction rechercheV, avec la cellule A1 comme argument. En A1, tu rentreras ton N° de ligne, et à chaque fois, tu auras à côté les infos souhaitées. Après, tu étoffes à ton goût.
 
précision quand même: pour que la formule fonctionne ds ts les cas sans erreurs, je te conseille de mettre en  col A * un n° (de ligne ou pas, si tu mets une ligne de titres...) (mais que tu appelles "réf" ), puis tes autres col en suivant, cela te servira de référence pour les formules; sinon, si jamais tu voulais modifier qq chose, faire un tri, rajouter des lignes, etc, tu fausserais le système... et si jamais tu entres +sieurs lignes par jour, tu peux prévoir une cellule heure qui se remplit automatiquement à la suite du reste.  
 
*j'ai bien dit  col A , car RechercheV part de la gauche pour trouver les infos suivantes.
 
si tu fais comme ça, tu rentres des trucs sur une feuille1 d'1 classeur bidon, et tu rentres cette formule en B2 de la feuille2 :
 
  =RECHERCHEV($A2;Feuil1!$A:$D;2;FAUX)
 
tu la tires en C2, D2, E2, puis en A2 tu rentres un n° (existant ds la col A de la F1!), à chaque fois tu auras les infos correspondantes à côté.  $A:$D; pour les col A à D   2;   devient 3 puis 4, etc pr les col c,d, etc
 
Capito?


Message édité par Laoo le 13-01-2010 à 16:07:27
n°1957829
Samu
Supertouriste
Posté le 14-01-2010 à 10:55:54  profilanswer
 

Ok, je vais tester un peu tout ça. Merci pour tout !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] Ajouter une ligne à un fichier Word à partir de cellules Excel

 

Sujets relatifs
Securisation paiement en ligne[Résolu] Word macro qui ouvre un document
table SQL Ajouter une colonne au lieu de creer une nouvelle tableEnregistrer fichier deja ouvert
[VBA Word] Extraire le 1er mot de chaque sectionEditer un fichier XML sous windows
Utiliser des fonctions C# pour Excel[WORD] créer une macro excel créan un word
Plus de sujets relatifs à : [VBA] Ajouter une ligne à un fichier Word à partir de cellules Excel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR