Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/05/2007, 10h51   #1
Invité de passage
 
Inscription : mai 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 3
Points : 0
Points : 0
Par défaut [Macro-Word] Créer une matrice d'exigences

Bonjour,

voici mon problème, quelque peu particulier : je rédige des documents word, dans lesquels j'exprime des exigences.
Les quelques lignes correspondantes à ces exigences sont écrites dans un style particulier : "Titre 5" (par exemple).

Mon but est de scanner le document et de récupérer les numéros (numéros des titres) de ces exigences ainsi que leurs textes correspondants et de recopier tout ça dans un tableau (une matrice d'exigence) que j'ai créé en fin de mon doc.

Pourriez-vous m'indiquer comment procéder ?

Merci,
Matespace
Intespace
Matespace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2007, 11h03   #2
Membre actif
 
Inscription : mars 2007
Messages : 172
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 172
Points : 164
Points : 164
c'est pour ton compte perso ou pour ton entreprise???

car si c'est pour ton entreprise, tu leur demandes d'acheter Doors ou Rectify et ca te resoud le problème (tu aura juste à écrire les exisgences dans le style Mestra word)

sinon dans le cas perso tu écris tes numéro d'éxigence en tire 1 par exemple ensuite tes commentaire en titre 2 tu edit un sommaire et hop tu fais copier coller dans ton tableau excel.

en espérant d'avoir aidé

bon courage.
__________________
££**~~ http://ddnicoetmoi.over-blog.fr/ ~~**££

L'intelligence c'est comme la confiture, moins on en a, plus on l'étale!!!
outdighaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2007, 12h40   #3
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 352
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 352
Points : 29 265
Points : 29 265
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Public Sub sautdeligne()
Dim para As Paragraph
Dim i As Integer
Dim y As Integer
Dim stTemp as String 
i = 0
 
 
For Each para In ActiveDocument.Paragraphs
    i = i + 1
    para.Range.Select
 
    stTemp = stTemp &  Selection.Words(1) & vbCrLf
 
 
Next para
 
ActiveDocument.Bookmarks("signet1").select
ActiveDocument.selection.typetext stTemp
 
End Sub
Avec ce code, tu va récupérer le premier mot de chaque paragraphe, pour le mettre dans une variable et ensuite coller le texte de la variable à l'endroit où se trouvera le signet "signet1".

Tu dois bien évidemment apporter des modification au code pour qu'il fasse ce que tu veux.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2007, 14h32   #4
Invité de passage
 
Inscription : mai 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 3
Points : 0
Points : 0
Salut,

merci pour ces éléments. A propos, la macro est pour mon compte perso...

Donc avec ce code, j'ai rajouté un test (if) pour n'extraire que les textes des paragraphes ayant le style "Titre 5".
Je change Selection.Words(1) par Selection.Paragraph pour récupérer le texte entier de mes exigences.

Je place un signet dans le doc et j'exécute la macro.

Arrivé à l'instruction : ActiveDocument.selection.typetext stTemp
il me répond :
Erreur d'execution '438': Proriété ou méthode non gérée par cet objet

J'aurais aimé (Nice to have) à chaque fois
- copier le paragraphe
- en quelque sorte "placer le curseur" sur la première case vide de mon tableau (c'est un tableau word) en fin du doc
- et y insérer le texte copié.
Matespace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2007, 10h52   #5
Invité de passage
 
Inscription : mai 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 3
Points : 0
Points : 0
Re-Salut,

voici ce à quoi j'ai pu arriver et qui pour l'instant fonctionne très bien :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Public Sub matrice()
Dim para As Paragraph
Dim book As String
Dim i As Integer
Dim y As Integer
Dim stTemp As String
i = 0
y = 2
 
ReplaceSelection = True
 
For Each para In ActiveDocument.Paragraphs
    i = i + 1
    If para.Style = "Titre 5" Then
    y = y + 1
    stTemp = para.Range.Text
    book = para.Range.ListFormat.ListString
 
    With ActiveDocument.Tables(7)
    .Columns(1).Cells(y).Range.Text = book
    .Columns(2).Cells(y).Range.Text = stTemp
    End With
    End If
 
Next para
End Sub
Maintenant j'ai 1 nouvelle question :
comment affecter à mon n° de titre (valeur : book) la propriété : "renvoi" pour qu'il devienne un lien vers le pragraphe en question ?

Matespace
Matespace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2007, 10h56   #6
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Juste en passant, pour TypeText, la syntaxe est
Code :
Selection.TypeText Text:=stTemp
J'ai vérifié car j'avais un doute
Bonne suite
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h16.


 
 
 
 
Partenaires

Hébergement Web