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 13/08/2008, 18h27   #1
Invité régulier
 
Inscription : décembre 2006
Messages : 86
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 86
Points : 8
Points : 8
Par défaut Gérer des boucles pour publipostage

Bonjour à tous,

Bon je développe en C# avec la biblio Microsoft.Interop.Word, pas trouvé de forum qui conviennent mieux

Alors je vous explique mon problème. J'ai mes utilisateurs qui créé des templates qui serviront ensuite pour du publipostage. Ils peuvent créer des boucles, comme ceci:
Code :
1
2
3
4
5
6
7
/scan(visites)/
 
Mr /visite.visiteur/  à visité l'apartement le /visite.date/,
 
" /visite.commentaire/ "
 
/endscan()/
Donc mon parseur va copier le bloque entre les deux balises /scan()/ et /endscan()/, remplacer les balises, coller le bloque, remplacer les balises...autant de fois qu'il y a d'entités.

Bon ce qui me pose problème c'est de copier le bloc entre les deux balises. Je n'arrive pas à trouver une fonction qui puisse me faire cà :/

Une idée???
LeLapinVengeur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2008, 10h08   #2
Membre Expert
 
Avatar de JackOuYA
 
Inscription : juin 2008
Messages : 1 036
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 1 036
Points : 1 035
Points : 1 035
bonjour,


et c'est quoi le lien avec word? situ veux traiter un fichier texte en C# étudie le c#, si c'est autre chose ben il faut nous dire quoi !
__________________
JacqueS.

Ps: je ne télécharge les piéces jointes qu'en dernier recours .(et encore...)

Pour devenir mon ami laissez moi un message
JackOuYA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2008, 15h56   #3
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
Le code pour sélectionner du texte en boucle, tu l'as ici.
Je te le remets là adapté à tes deux balises
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
Sub Test()
Dim ok As Boolean
    Selection.HomeKey Unit:=wdStory 'place en début de document
 
    Do
        With Selection
            With .Find 'recherche la première balise
                .Text = "/scan(visites)/"
                .Forward = True 'Recherche vers la fin du document
                .Wrap = wdFindStop 'si pas trouvé, on ne repart pas du début
                ok = .Execute ' on continue la boucle tant que OK = True
            End With
            .ExtendMode = True 'Sélectionne le texte de la balise 1 à la suivante trouvée
            With .Find
                .Execute FindText:="/endscan()/"
            End With
            .ExtendMode = False
        End With
        'If ok ton texte avec ses balises est sélectionné, tu en fais ce que tu veux
        'mais comme j'aime bien m'amuser...
        If ok Then _
        MsgBox Right(Left(Selection, Len(Selection) - Len("/endscan()/")), _
        Len(Left(Selection, Len(Selection) - Len("/endscan()/"))) - Len("/scan(visites)/"))
 
        'dé-sélectionne... la sélection
        Selection.MoveRight Unit:=wdCharacter, Count:=1
 
    Loop While ok
End Sub
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2008, 13h53   #4
Invité régulier
 
Inscription : décembre 2006
Messages : 86
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 86
Points : 8
Points : 8
merci
LeLapinVengeur est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h13.


 
 
 
 
Partenaires

Hébergement Web