Word Génération d'une matrice vba à partir d'informations dans des paragraphes Word.

Stephane21

XLDnaute Nouveau
Bonjour à tous,

J'ai un petit problème et je sèche pour trouver une solution.
Donc voilà le contexte, je suis en train de reprendre un document Word qui traite de la création de cahiers des charges. Je ne suis pas l'auteur des macros (vu mon niveau en vba, rien de surprenant :)).
Dans ce doc, il y a une macro (via une boîte de dialogue) qui sert à intégrer les champs de l'exigence : l'identifiant, le numéro, la flexibilité, la description et le lotissement.
On peut insérer autant d'exigences que souhaité.
Ensuite il y a une deuxième macro (via une autre boîte de dialogue) qui permet de concaténer toutes les exigences dans une tableau à la fin du document.
Mon petit souci est qu'à l'origine la variable "lotissement" ne s'appelait comme ça et elle n'était pas appelée dans le tableau final. J'aurais besoin de faire apparaître cette variable dans mon tableau et mais je n'y arrive pas. La colonne reste désespérément vide....

Avant de vous envoyer les codes des macros, est que quelqu'un est il capable de m'aider.
Je suis très nouveau sur vba et j'apprends tout seul mais c'est pas facile.
Dans l'attente de vos réponses
Bonne journée
 

Etoto

XLDnaute Barbatruc
Bonjour à tous,

J'ai un petit problème et je sèche pour trouver une solution.
Donc voilà le contexte, je suis en train de reprendre un document Word qui traite de la création de cahiers des charges. Je ne suis pas l'auteur des macros (vu mon niveau en vba, rien de surprenant :)).
Dans ce doc, il y a une macro (via une boîte de dialogue) qui sert à intégrer les champs de l'exigence : l'identifiant, le numéro, la flexibilité, la description et le lotissement.
On peut insérer autant d'exigences que souhaité.
Ensuite il y a une deuxième macro (via une autre boîte de dialogue) qui permet de concaténer toutes les exigences dans une tableau à la fin du document.
Mon petit souci est qu'à l'origine la variable "lotissement" ne s'appelait comme ça et elle n'était pas appelée dans le tableau final. J'aurais besoin de faire apparaître cette variable dans mon tableau et mais je n'y arrive pas. La colonne reste désespérément vide....

Avant de vous envoyer les codes des macros, est que quelqu'un est il capable de m'aider.
Je suis très nouveau sur vba et j'apprends tout seul mais c'est pas facile.
Dans l'attente de vos réponses
Bonne journée
Bonjour,

Je crains qu'il faut avoir accès à ton code ou ton fichier pour t'aider (sans données confidentielles). Parce que le VBA change beaucoup selon le fichier, donc on ne peux pas t'aider.
 

Stephane21

XLDnaute Nouveau
Merci pour ta réponse, je m'en doutais un peu :D
Pour générer les boîtes de dialogue, il faut aller dans l'onglet complément.
Un bouton sert à l'insertion d'exigence et un autre à la création de la matrice (les autres boutons ne sont pas important).
N'hésites pas à me demander si tu souhaites des explications.
Merci et bon courage.
ps: lors de la génération de la matrice, j'ai ajouté un Msgbox qui me permet de vérifier la valeur de la variable du lotissement correspondant à l'exigence concernée. Tu verras que ma variable lotissement est bien présente mais je n'arrive à dire à vba de ma l'ajouter dans la colone 5 de la matrice.
 

Pièces jointes

  • CdC vierge - DRAFT - Copie.doc
    192.5 KB · Affichages: 5

Etoto

XLDnaute Barbatruc
Merci pour ta réponse, je m'en doutais un peu :D
Pour générer les boîtes de dialogue, il faut aller dans l'onglet complément.
Un bouton sert à l'insertion d'exigence et un autre à la création de la matrice (les autres boutons ne sont pas important).
N'hésites pas à me demander si tu souhaites des explications.
Merci et bon courage.
ps: lors de la génération de la matrice, j'ai ajouté un Msgbox qui me permet de vérifier la valeur de la variable du lotissement correspondant à l'exigence concernée. Tu verras que ma variable lotissement est bien présente mais je n'arrive à dire à vba de ma l'ajouter dans la colone 5 de la matrice.
Alors je vais être honnête. Si je t'ai demandé de montrer le fichier ou les codes c'est pour les autres personnes, pas pour moi parce que je doit être autant bon en VBA que toi, mais j'y jette quand même un coup d'œil.
 

Etoto

XLDnaute Barbatruc
Alors, j'ai regardé ton VB et je n'ai pas trouvé la cause d'erreur, mais j'ai simplifié la macro Remplace_Page_Visas en rajoutant un With, mais c'est tout ce que je sais faire, pour le reste attendons les experts.
 

Pièces jointes

  • CdC vierge - DRAFT - Copie.doc
    172 KB · Affichages: 3

Stephane21

XLDnaute Nouveau
@Etoto , merci beaucoup pour ton retour. Je vais aller voir tes modifications :D
J'espère aussi avoir une réponse pour mon problème de variable car je ne comprends pas. Ma variable est K est bonne mais je ne sais pas pourquoi je n'arrive pas à la mettre dans ma matrice. Ce qui est étrange, c'est que si dans mes lignes de l'userforrm1 :

"Sub WriteExiTable(aTable As Table, Doc As String, Prefixe As String, numero As String, Titre As String, Flexibilite As String, IADT As String, parNr As String)
Dim nRow As Integer

aTable.Rows.Add
nRow = aTable.Rows.Count - 1
aTable.Cell(nRow, 1).Range.Text = Prefixe & "-" & Format(numero, "000")
aTable.Cell(nRow, 2).Range.Text = Titre
aTable.Cell(nRow, 3).Range.Text = Doc & " " & parNr
aTable.Cell(nRow, 4).Range.Text = Flexibilite
aTable.Cell(nRow, 5).Range.Text = IADT

Je remplace la valeur IADT par une autre (comme Flexibilite), j'ai bien deux fois la variable Flexibilité qui apparaît dans ma matrice (colonne 4 et colonne 5)... J'ai du rater un truc quelque par, mais je ne vois pas quoi.

Wait and see :D
Stéphane
 

Etoto

XLDnaute Barbatruc
@Etoto , merci beaucoup pour ton retour. Je vais aller voir tes modifications :D
J'espère aussi avoir une réponse pour mon problème de variable car je ne comprends pas. Ma variable est K est bonne mais je ne sais pas pourquoi je n'arrive pas à la mettre dans ma matrice. Ce qui est étrange, c'est que si dans mes lignes de l'userforrm1 :

"Sub WriteExiTable(aTable As Table, Doc As String, Prefixe As String, numero As String, Titre As String, Flexibilite As String, IADT As String, parNr As String)
Dim nRow As Integer

aTable.Rows.Add
nRow = aTable.Rows.Count - 1
aTable.Cell(nRow, 1).Range.Text = Prefixe & "-" & Format(numero, "000")
aTable.Cell(nRow, 2).Range.Text = Titre
aTable.Cell(nRow, 3).Range.Text = Doc & " " & parNr
aTable.Cell(nRow, 4).Range.Text = Flexibilite
aTable.Cell(nRow, 5).Range.Text = IADT

Je remplace la valeur IADT par une autre (comme Flexibilite), j'ai bien deux fois la variable Flexibilité qui apparaît dans ma matrice (colonne 4 et colonne 5)... J'ai du rater un truc quelque par, mais je ne vois pas quoi.

Wait and see :D
Stéphane
Franchement, j'espère que tu auras une réponse à ton problème. Bonne chance
 

Discussions similaires

Réponses
15
Affichages
1 K
Compte Supprimé 979
C

Statistiques des forums

Discussions
315 094
Messages
2 116 145
Membres
112 669
dernier inscrit
Guigui2502