[VBA] Serveur activeX documentation des commandes
Je cherche de la documentation sur les commandes que je peux utiliser avec qui un serveur activeX qui commande word. Quelqu'un peux t il m'indiquer ou je peux trouver ça (même si c'est payant)?
Sinon je cherche un moyen pour copier une partie d'un document dans un autre document, avant j'utilisais en une boucle qui copier paragraphe par paragraphe les éléments qui m'intéresse mais celà pose un problème quand il y a un tableau dans mon fichier de base.
Code:
1 2 3 4 5 6
| hparag=sourcedoc.paragraphs;
hparag2=sinkdoc.paragraphs;
for m = start_parag : end_parag
hparag.Item(m).Range.Copy;
hparag2.Item(m-strat_parag+1).Range.Paste;
end |
J'ai vu qu'il existais un élément Tables mais le problème c'est comme je ne connais que les numéros de paragraphes qui m'interesse je ne sais pas si je dois les copier ou non.
Sinon je pensais qu'une autre possibilité serais, connaissant les numéros de paragraphes qui m'interesse, de selectionner tous les paragraphes qui m'interesse (j'ai vu qu'on peux selectionner un élément paragraphe mais je ne sais pas si on peux ajouter un paragraphe à une selection déjà faite), de les copier, et de les coller dans mon nouveau documents. Quelqu'un as une idée de comment ajouter un paragraphe à une selection déjà (cette selection pouvant etre vide à la base)?
Exemple: ci-joint un type de fichier dont je dois recupérer une partie du texte.
Je dois récupérer de l'ensemble du texte de "@balise type1@" (inclu) à "@balise type3@" (non inclu) dans un premier fichier puis tout de "@balise type3@" (inclu) à "@balise type3bis@" (non inclu) dans un deuxieme fichier et je dois mettre tout de "@balise type3bis@" à la fin dans un dernier fichier.
Quelqu'un aurais une solution pour mes problèmes? (doc et programmation)
edit : suppression du fichier attaché pour libérer de la mémoire
Réponse (partielle) sur la copie de fichiers Word
Salut,
Pour recopier ds blocs complets, il ne faut pas utiliser les range de VBA mais se basé sur le contenu de la doc. Je te propose le truc suivant (qui marche toujours dans ton cas)
Tu recherches ton 1er marqueur
Tu passes en mode "Extension" de Sélection
Tu recherches ton 2eme marqueur
Tu le déselectionnes
Tu copies
Tu crées ton nouveau fichier
Tu colles
Tu sauvegardes
Tu repasses en mode "Extension" de Sélection
Tu recherches ton 3eme marqueur
Tu le déselectionnes
Tu copies
Tu crées ton nouveau fichier
Tu colles
Tu sauvegardes
Tu selectionnes jusqu'à la fin
Tu copies
Tu crées ton nouveau fichier
Tu colles
Tu sauvegardes
c'est fini
voici le code
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| Sub CopiesParBloc()
'
' CopiesParBloc Macro
' Macro enregistrée le 23/11/07 par Sepia
'
Selection.Extend
Selection.Find.ClearFormatting
With Selection.Find
.Text = "@ balise type3@"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.HomeKey Unit:=wdLine, Extend:=wdExtend
Selection.ExtendMode = False
Selection.Copy
Documents.Add DocumentType:=wdNewBlankDocument
Selection.PasteAndFormat (wdPasteDefault)
ActiveDocument.SaveAs FileName:="1.doc", FileFormat:=wdFormatDocument
ActiveDocument.Close
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.Extend
Selection.Find.Text = "@ balise type3bis@"
Selection.Find.Execute
Selection.HomeKey Unit:=wdLine, Extend:=wdExtend
Selection.ExtendMode = False
Selection.Copy
Documents.Add DocumentType:=wdNewBlankDocument
Selection.PasteAndFormat (wdPasteDefault)
ActiveDocument.SaveAs FileName:="2.doc", FileFormat:=wdFormatDocument
ActiveDocument.Close
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.EndKey Unit:=wdStory, Extend:=wdExtend
Selection.Copy
Documents.Add DocumentType:=wdNewBlankDocument
Selection.PasteAndFormat (wdPasteDefault)
ActiveDocument.SaveAs FileName:="2.doc", FileFormat:=wdFormatDocument
ActiveDocument.Close
End Sub |
A+