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 31/05/2007, 16h04   #1
Invité de passage
 
Inscription : septembre 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 7
Points : 0
Points : 0
Par défaut Tables & Text

Bonjour tout le monde,

Je galére depuis peu pour trouver un moyen de recuperer des tableaux se trouvant juste aprés un mot clés. En fait, je voudrai détécter le mot "<TAG>" ensuite boucler sur les tableaux qui suivent jusqu'à qu'ils yen a plus ou que je retombe sur "<TAG>". J'espére avoir été bien clair et je comptes sur votre aide.

Merci d'avance.
xaminou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2007, 16h12   #2
Invité régulier
 
Inscription : avril 2007
Messages : 12
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 12
Points : 6
Points : 6
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
With Selection.Find
            .text = "<TAG>"
            .Replacement.text = ""
            .forward = False
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
Selection.Execute
if selection.find.found then
...
else
...
end if
j'espere que ca aide et avec le Execute il va se placer vers le mot
husamus156 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2007, 16h17   #3
Invité régulier
 
Inscription : avril 2007
Messages : 12
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 12
Points : 6
Points : 6
oups je tai mal lu voici en boucle

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
27
28
29
30
 
ActiveDocument.Select
Dim fin As Boolean
fin = True
 
Selection.Find.ClearFormatting
While fin = True
With Selection.Find
   .Text = "<TAG>"
   .Replacement.Text = ""
   .Forward = True
   .Wrap = wdFindStop
   .Format = False
   .MatchCase = False
   .MatchWholeWord = False
   .MatchWildcards = False
   .MatchSoundsLike = False
   .MatchAllWordForms = False
End With
Selection.Find.Execute
If Selection.Find.Found = True Then
   MsgBox (Selection.Start & "<--Debut Fin-->" & Selection.End)
   Selection.Start = Len(Selection.Find.Text) + Selection.Start
   Selection.End = 2 ^ 31 - 1
Else
   fin = False
   Selection.End = Selection.Start
 
   End If
Wend
husamus156 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2007, 17h49   #4
Invité de passage
 
Inscription : septembre 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 7
Points : 0
Points : 0
Tout d'abord, je te remercie pour ta réponse.

Ensuite, j'ai essayé ton bout de code, mais ça boucle à l'infini le dernier msgbox qui se répéte. et puis les Selection.Start et Selection.End correspondent à quoi exactement ? à des numéros de lignes ou positions de la chaîne recherché dans le document ??? En plus ce que je voudrais exactement de la recherche c'est l'index du tableau "Doc.Tables(INDEX)" dans le document qui vient juste aprés mon "TAG". si je suis pas clair vous me le dite surtout lol.
xaminou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2007, 19h11   #5
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
Tu dois lire tous tes tableaux ou seulement certains ?
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2007, 19h16   #6
Invité régulier
 
Inscription : avril 2007
Messages : 12
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 12
Points : 6
Points : 6
Citation:
Envoyé par xaminou
Tout d'abord, je te remercie pour ta réponse.

Ensuite, j'ai essayé ton bout de code, mais ça boucle à l'infini le dernier msgbox qui se répéte. et puis les Selection.Start et Selection.End correspondent à quoi exactement ? à des numéros de lignes ou positions de la chaîne recherché dans le document ??? En plus ce que je voudrais exactement de la recherche c'est l'index du tableau "Doc.Tables(INDEX)" dans le document qui vient juste aprés mon "TAG". si je suis pas clair vous me le dite surtout lol.
je sais que si tu fait des cellules de tableaux ca fait une réaction bizzarre et mon code ne marchera pas alors

le selection.start est le positionnement de début du curseur dans le document
et le selection.end est le positionnement de fin du curseur dans le document
husamus156 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2007, 20h00   #7
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
Ce que ferais, c'est assigner un nom de signet à chaque tableau. Ainsi, plus besoin de TAG.
Tu pourrais fais ta recherche sur Bookmark et traiter le tableau que tu veux
et boucler sans pb sur les tableaux désirés. Dans Excel -> Sélection du tableau -> Insertion -> Signet -> Tableaun
Juste une idée mais bien pratique
A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2007, 23h13   #8
Invité de passage
 
Inscription : septembre 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 7
Points : 0
Points : 0
justement je voudrai lire que les tableaux à partir d'un mot clé, et malheuresement j'ai une 100éne de fichiers doc à extraire.
PS: je fais ça à partir de visual basic 2005 express en parcourant chaque fichier doc.
xaminou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2007, 10h00   #9
Invité de passage
 
Inscription : septembre 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 7
Points : 0
Points : 0
Bon je vai peut être aborder la question autrement et plus simplement.

Comment inserer du texte entre deux tables ?? ça pourait m'aider à résoudre ma premiére question.

Cdlt
xaminou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2007, 10h39   #10
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
Avant de repartir dans les balises, tu as essayé avec un signet sur ton tableau ? Les signets sont faits ec ce pré pour ça. La méthode ? relis mon dernier post.
Entre mettre du texte et ajouter un signet, moi, je n'hésite pas. Tu t'em...
poisonnes la vie pour rien.
Maintenant, tu as tout le code qu'il te faut pour retrouver une balise dans Contribuez VBA Word. Regarde ici
Bonne chance
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2007, 10h46   #11
Invité de passage
 
Inscription : septembre 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 7
Points : 0
Points : 0
je vai essayé ta méthode tt de suite et je vous dis quoi. En tout cas, merci pour vos réponses.
xaminou 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 11h15.


 
 
 
 
Partenaires

Hébergement Web