Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[HS peut être] Excel Word

8 réponses
Avatar
Michel
Bonjour,

On m'a posé une colle que je suis bien incapable de résoudre seul.

Lors de l'écriture dans Word de mots clés comme "Objet:" serait-il
possible de recopier la ligne objet et celle du dessous ainsi que la
date dans un fichier Excel, le tous en automatique bien sur.

Possible ?

Merci
M.

8 réponses

Avatar
LSteph
peut être si quelqu'un comprend quelquechose à ce que tu demande

L'énoncé n'est pas limité en nombre de mots

"Michel" a écrit dans le message de
news:
Bonjour,

On m'a posé une colle que je suis bien incapable de résoudre seul.

Lors de l'écriture dans Word de mots clés comme "Objet:" serait-il
possible de recopier la ligne objet et celle du dessous ainsi que la date
dans un fichier Excel, le tous en automatique bien sur.

Possible ?

Merci
M.


Avatar
Michel
LSteph avait énoncé :
peut être si quelqu'un comprend quelquechose à ce que tu demande



Bon je recommence.

Soit un fichier Word, une lettre comme ceci
----------------------------------------------------------------

référence date


Objet:
Mon ojbet

entête
le corps de la lettre

------------------------------------------------------------------

Je souhaite à l'enregistrement du document Word récupérer la ligne
Objet: et la ligne du dessous ainsi que le date du jour de
l'enregistrement pour les exporter dans un fichier Excel après la
dernière cellule non vide.

J'espère avoir été plus clair ?
M.
Avatar
Gloops
Michel a écrit, le 17/01/2011 17:07 :
Bonjour,

On m'a posé une colle que je suis bien incapable de résoudre seul.

Lors de l'écriture dans Word de mots clés comme "Objet:" serait-il
possible de recopier la ligne objet et celle du dessous ainsi que la
date dans un fichier Excel, le tous en automatique bien sur.

Possible ?

Merci
M.





Bonjour,

Je verrais bien, à la création d'un nouveau courrier, proposer une bo îte
de dialogue pour saisir le nom et l'adresse du destinataire, la formule
de salutation, le sujet, la référence interne, la référence du
correspondant, éventuellement des informations sur les pièces jointes .

A la validation de cette boîte, les informations correspondantes sont
reportées dans le document (deux fois pour ce qui concerne la formule d e
salutation), ainsi que dans les statistiques. Rien n'empêche alors de
créer un exemplaire des statistiques dans un fichier Excel. Les
statistiques permettent comme leur nom l'indique de compter certains
éléments, et surtout c'est un outil de recherche précieux pour retr ouver
un courrier.

J'ai fait ça dans plusieurs versions de Word, il faut avouer que c'est
un peu saoûlant d'avoir à tout refaire à chaque version. Enfin, cel a
étant, depuis qu'on est passé à VBA, peut-être bien que le code e st un
peu plus stable d'une version à l'autre.

Bon alors pour mettre ça sur pied il y a plusieurs notions à maîtri ser,
notamment :
- modèle de document, et le code qui va avec
- boîte de dialogue dynamique (ça a changé de nom si je ne m'abuse,
formulaire utilisateur ?)
- champs dans un document
- communication entre applications, avec Automation par exemple.

Et pour Monsieur, ce sera ... ?
Avatar
Gloops
Michel a écrit, le 17/01/2011 17:07 :
Bonjour,

On m'a posé une colle que je suis bien incapable de résoudre seul.

Lors de l'écriture dans Word de mots clés comme "Objet:" serait-il
possible de recopier la ligne objet et celle du dessous ainsi que la
date dans un fichier Excel, le tous en automatique bien sur.

Possible ?

Merci
M.





Si on veut enregistrer des choses sans pour autant maîtriser tout ce qu e
je dis dans mon autre message, on peut créer un champ de saisie dans le
document, et avoir une macro qui enregistre son contenu ainsi que le
chemin du fichier dans le fichier Excel.

Pour écrire dans le fichier Excel on utilise Automation comme ceci (je
ponds ça de mémoire et je n'ai pas Office sur le site d'où je rép onds,
donc on garde l'esprit mais il peut bien y avoir un mot à remplacer par
un autre, notamment le nom du contrôle où se fait la saisie) :

Dim N As Integer
Dim xlApp As New Excel.Application
' si on a une erreur 429 on en recause
Dim xlWbk As Excel.Workbook
Dim xlWst As Excel.Worksheet

Set xlWbk = xlApp.Workbooks.Open(cheminduclasseur)
Set xlWst = xlWbk.Worksheets("Stats_courrier")
N = xlWst.UsedRange.Rows.Count

xlWst.Cells(N + 1, 1) = ActiveDocument.Path
xlWst.Cells(N + 1, 2) = TextBoxes("Objet").Value

xlWbk.Save
xlWbk.Close
xlApp.Quit
'si on veut voir le fichier on remplace les deux précédentes ligne s par
' xlApp.Visible = True
' et on s'arrête là.

Set xlApp = Nothing
Set xlWbk = Nothing
Set xlWst = Nothing
Avatar
michel ou sam
Bonjour,
et en plus ça marche !
j'ai fait avec un document où l'expression "objet :" se trouve dans la
partie haute du document (7 eme ligne)
La partie Word de la macro je l'ai faite avec l'enregistrement d'une
nouvelle macro et je l'ai complétée par la proposition de Gloops.
macro à mettre dans word (je l'ai mis dans mon fichier.doc mais il devrait
être mis dans le modèle.dot)
ne pas oublier d'aller cocher Outils/références Microsoft Excel 11.0 Object
Library
ne pas oublier de nommer le fichier word avant d'utiliser la macro
Dans cet exemple, mon fichier Excel s'appelle "testword.xls" et la feuille
"Stats_courrier"

Il restera à trouver à déclencher cette macro au moment de l'enregistrement
du document word

Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 20/01/2011 par Michel
'-----------------------
'Recherche des 2 lignes
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
With Selection.Find
.Text = "Objet :"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Texte1 = Selection
Selection.Copy
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.HomeKey Unit:=wdLine
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Texte2 = Selection
'------------------------
'Utilisation de la macro de Gloops

Dim N As Integer
Dim xlApp As New Excel.Application
' si on a une erreur 429 on en recause
Dim xlWbk As Excel.Workbook
Dim xlWst As Excel.Worksheet

Set xlWbk = xlApp.Workbooks.Open("D:PapaExcel forumtestword.xls")
Set xlWst = xlWbk.Worksheets("Stats_courrier")
N = xlWst.UsedRange.Rows.Count

xlWst.Cells(N + 1, 1) = ActiveDocument.Path
xlWst.Cells(N + 1, 2) = ActiveDocument.Name
xlWst.Cells(N + 1, 3) = Texte1
xlWst.Cells(N + 1, 4) = Texte2
xlWbk.Save
xlWbk.Close
xlApp.Quit
'si on veut voir le fichier on remplace les deux précédentes lignes par
' xlApp.Visible = True
' et on s'arrête là.

Set xlApp = Nothing
Set xlWbk = Nothing
Set xlWst = Nothing

End Sub

Michel

"Gloops" a écrit dans le message de news:
ih7k2u$d36$
Michel a écrit, le 17/01/2011 17:07 :
Bonjour,

On m'a posé une colle que je suis bien incapable de résoudre seul.

Lors de l'écriture dans Word de mots clés comme "Objet:" serait-il
possible de recopier la ligne objet et celle du dessous ainsi que la
date dans un fichier Excel, le tous en automatique bien sur.

Possible ?

Merci
M.





Si on veut enregistrer des choses sans pour autant maîtriser tout ce que
je dis dans mon autre message, on peut créer un champ de saisie dans le
document, et avoir une macro qui enregistre son contenu ainsi que le
chemin du fichier dans le fichier Excel.

Pour écrire dans le fichier Excel on utilise Automation comme ceci (je
ponds ça de mémoire et je n'ai pas Office sur le site d'où je réponds,
donc on garde l'esprit mais il peut bien y avoir un mot à remplacer par
un autre, notamment le nom du contrôle où se fait la saisie) :

Dim N As Integer
Dim xlApp As New Excel.Application
' si on a une erreur 429 on en recause
Dim xlWbk As Excel.Workbook
Dim xlWst As Excel.Worksheet

Set xlWbk = xlApp.Workbooks.Open(cheminduclasseur)
Set xlWst = xlWbk.Worksheets("Stats_courrier")
N = xlWst.UsedRange.Rows.Count

xlWst.Cells(N + 1, 1) = ActiveDocument.Path
xlWst.Cells(N + 1, 2) = TextBoxes("Objet").Value

xlWbk.Save
xlWbk.Close
xlApp.Quit
'si on veut voir le fichier on remplace les deux précédentes lignes par
' xlApp.Visible = True
' et on s'arrête là.

Set xlApp = Nothing
Set xlWbk = Nothing
Set xlWst = Nothing
Avatar
Michel
michel ou sam a pensé très fort :

Merci à vous deux c'est OK, ça fonctionne parfaitement
j'ai rajouté la date du jour dans une cellule.

Juste un petit souci, j'ai un caractère parasite à la fin de la cellule
(un petit rectangle) qui je suppose est le retour chariot que je
n'arrive pas à enlever
M.
Avatar
Gloops
michel ou sam a écrit, le 20/01/2011 11:09 :
Bonjour,
et en plus ça marche !



Ah ben voilà qui est bien :)

j'ai fait avec un document où l'expression "objet :" se trouve dans l a
partie haute du document (7 eme ligne)
La partie Word de la macro je l'ai faite avec l'enregistrement d'une
nouvelle macro et je l'ai complétée par la proposition de Gloops.
macro à mettre dans word (je l'ai mis dans mon fichier.doc mais il de vrait
être mis dans le modèle.dot)
ne pas oublier d'aller cocher Outils/références Microsoft Excel 11. 0 Object
Library



oui c'est vrai que ça j'aurais pu le préciser

ne pas oublier de nommer le fichier word avant d'utiliser la macro



ah tiens ça ça m'échappe un peu, mais c'est vrai que je ne suis pas
encore très réveillé

Dans cet exemple, mon fichier Excel s'appelle "testword.xls" et la feui lle
"Stats_courrier"

Il restera à trouver à déclencher cette macro au moment de l'enre gistrement
du document word



ça, c'est l'avantage de gérer ça dans un modèle, il y a une procé dure
événementielle qui s'exécute à l'enregistrement du document.
Avatar
Michel
Michel avait écrit le 20/01/2011 :
michel ou sam a pensé très fort :

Merci à vous deux c'est OK, ça fonctionne parfaitement
j'ai rajouté la date du jour dans une cellule.

Juste un petit souci, j'ai un caractère parasite à la fin de la cellule
(un petit rectangle) qui je suppose est le retour chariot que je n'arrive pas
à enlever
M.



C'est bon plus de "grigri" j'ai supprimé avec Left

Me reste plus q'un PB à résoudre si possible.
A la fermeture j'ai mis une boite de dialogue qui demande si il faut
enregistrer ou pas dans le fichier Excel , mais j'aimerais que si
possible cela enregistre automatiquement QUE si le fichier à été
modifié. C'est pour eviter les doublons en cas de lecture d'un fichier
que l'on ne modifie pas si je le met en automatique.

J'ai cherché sur le net mais .....

Une idée du comment faire pour savoir en VBA si le fichier ouvert à été
modifié ou pas lorsqu'on le ferme ?
M.

Merci