IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Word Discussion :

[Macro-Word] Créer une matrice d'exigences


Sujet :

VBA Word

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 3
    Points : 1
    Points
    1
    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

  2. #2
    Invité
    Invité(e)
    Par défaut
    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.

  3. #3
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 !

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    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é.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Re-Salut,

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Juste en passant, pour TypeText, la syntaxe est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.TypeText Text:=stTemp
    J'ai vérifié car j'avais un doute
    Bonne suite

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/06/2007, 13h32
  2. Créer une matrice symétrique à partir de 3 colonnes
    Par vincent550 dans le forum MATLAB
    Réponses: 3
    Dernier message: 10/04/2007, 13h35
  3. Créer une matrice en manipulant un vecteur
    Par bernard6 dans le forum MATLAB
    Réponses: 3
    Dernier message: 07/04/2007, 11h34
  4. Installer une macro Word via une appli distante
    Par JnewB dans le forum VBA Word
    Réponses: 3
    Dernier message: 28/09/2006, 14h17
  5. Créer une matrice k-diagonale
    Par Mathusalem dans le forum MATLAB
    Réponses: 6
    Dernier message: 29/05/2006, 11h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo