Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual Studio Discussion :

Effacer des lignes word via vb.net


Sujet :

Visual Studio

  1. #1
    Membre actif Avatar de petit rabot
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    août 2010
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : août 2010
    Messages : 220
    Points : 217
    Points
    217
    Par défaut Effacer des lignes word via vb.net
    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.
    "Ce n'est pas parce que les choses sont impossibles qu'il faut les accepter."

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    novembre 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : novembre 2019
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Hey ! ,
    Il faudrait que tu nous fournisses ton code pour qu'on puisse essayer de le débogger.
    Sinon faute de mieux ce que tu peux faire c'est générer une macro avec ton VB.Net dans le fichier Word est de l'exécuter ensuite et quitte à le supprimer à la fin.
    Ce que tu as marqué devrait marcher sans vérification de ma part , surement un petit problème de paramètres dans ton instance de word objet ou de dll manquante ou de droit admin ou bien encore de macro autorisé dans ton instance word initialisé en VB.

  3. #3
    Membre actif Avatar de petit rabot
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    août 2010
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : août 2010
    Messages : 220
    Points : 217
    Points
    217
    Par défaut
    Trouvé...
    Voici mon code pour ceux que ça intéresse:

    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
            Dim MyRange As Word.Range
            MyRange = Nothing
     
            X = oWord.ActiveDocument.Bookmarks.Item("Axe" & Total_Mesures + 1).Start
            Y = oWord.ActiveDocument.Bookmarks.Item("Fin").End
     
            MyRange = oWord.ActiveDocument.Range(Start:=X, [End]:=Y)
            MyRange.Select()
            MyRange.Cells.Delete()
            MyRange = Nothing
     
     
            For i = Total_Mesures To 7
                X = oWord.ActiveDocument.Bookmarks.Item("Tba" & i).Start
                Y = oWord.ActiveDocument.Bookmarks.Item("Tba" & i + 1).End
     
                MyRange = oWord.ActiveDocument.Range(Start:=X, [End]:=Y)
                MyRange.Select()
                MyRange.Delete()
                MyRange = Nothing
            Next
    "Ce n'est pas parce que les choses sont impossibles qu'il faut les accepter."

Discussions similaires

  1. effacer des lignes orphelines
    Par cyrille37 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 24/10/2007, 17h08
  2. [Debutant]Effacer des lignes dans un fichier
    Par smutmutant2003 dans le forum Linux
    Réponses: 13
    Dernier message: 10/10/2007, 22h49
  3. comment je peux effacer des lignes
    Par aliwassem dans le forum Composants VCL
    Réponses: 1
    Dernier message: 07/03/2006, 20h05
  4. Effacement des styles Word
    Par luxmen dans le forum VBA Word
    Réponses: 8
    Dernier message: 13/01/2006, 17h32
  5. Probleme pour effacer des lignes
    Par Thargor dans le forum Oracle
    Réponses: 7
    Dernier message: 12/10/2005, 15h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo