Bonjour,
dans le cadre de mon travail, je réalise une application en vb.net qui me permet de remplir des rapports de mesures.
Je récupère donc des fichiers de mes différents appareils de contrôle, je traite ces fichiers via mon application vb, et ensuite je transferts les données dans les signets d'un fichiers Word.
Ensuite, en fonction du nombre de mesures réalisées, je veux effacer les lignes de mon rapport qui ne me servent à rien.
J'ai donc actuellement une macro sous word qui m'efface une plage de mon fichier située entre deux signets:
Macro Word:
Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 'sélection de la plage Set myRange = ActiveDocument.Range(Start:=ActiveDocument.Bookmarks("Deb2").Range.Start, End:=ActiveDocument.Bookmarks("Deb3").Range.End) myRange.Select Selection.Delete
Lancement de la Macro par mon application avec le code suivant:
Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 For i = Total_Mesures + 1 To 18 oWord.Application.Run("Effacer_BB" & i) Next
Cela fonctionne parfaitement si les macros word sont dans le fichier. Mon besoin est d'éviter de passer par les macros word, et de tous faire via le code Vb.
Mais j'ai beau essayer différentes fonctions, mais rien ne fonctionne:
Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Dim X, Y As Long X = oWord.ActiveDocument.Bookmarks("Deb2").Start Y = oWord.ActiveDocument.Bookmarks("Deb3").End oWord.ActiveDocument.Range(Start:=X, [End]:=Y).Select() oWord.ActiveDocument.Range(Start:=X, [End]:=Y).Delete()
Mais cela ne fonctionne pas, auriez vous une idée??
Merci d'avance.
Partager