IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Windows Forms Discussion :

[VB.Net] Automation Word : Coordonnées du curseur et propriété visible


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2006
    Messages : 27
    Points : 29
    Points
    29
    Par défaut [VB.Net] Automation Word : Coordonnées du curseur et propriété visible
    Bonjour,

    Je travaille actuellement sur de l'automation de document word avec VS2003 et VB.Net.
    J'ai donc importé la dll Word qui me permet d'ouvrir mon document Word et de le manipuler.
    Jusque la tout va bien. Seulement j'aimerais récupérer les coordonnées du curseur. J'explique le contexte :

    J'ai déclarer mon document : doc

    J'ai tapé du text et je veux qu'il insere à l'endroit ou se trouve un pointeur un shade (dans mon cas c'est une forme prédéfinie (un rectangle)).

    J'arrive bien à le faire en lui passant les coordonnées en dur comme ceci :

    doc.Shapes.AddShape(msoShapeRectangle, 70.85, 124.85, 9#, 9#).Select

    70.85 et 124.85 correspondent aux coordonnées de l'endroit ou sera inséré le shape.
    Il s'agit donc de ces paramètres que j'aimerais passer de manière dynamique en récupérant les coordonnées du curseur.

    Dans l'idée ca donnerait un truc de ce style :
    doc.Shapes.AddShape(msoShapeRectangle, Curseur.left, Curseur.top, 9#, 9#).Select

    Quelqu'un connait-il la méthode pour récupérer ces coordonnées ?






    Seconde question. Voici mon code :

    Code : 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
    22
    23
    24
    25
         For Each oCritere As Critere In oQuestionnaireEval.oCriteres
                With doc.Application
                    .Selection.Font.Bold = True
                    .Selection.TypeText(oCritere.TexteCritere)
                    .Selection.TypeParagraph()
                    .Selection.TypeParagraph()
                    .Selection.Font.Size = 11
                    .Selection.Font.Italic = 1
                    .Selection.TypeText(tab & "0" & tab & "1" & tab & "2" & tab & _
                         "3" & tab & "4" & tab & "5" & tab)
                    .Selection.HomeKey(Word.WdUnits.wdLine, Word.WdMovementType.wdExtend)
                    .Options.DefaultBorderColor = Word.WdColor.wdColorAutomatic
                    .Selection.Font.Borders.OutsideLineStyle = Word.WdLineStyle.wdLineStyleSingle
                    .Selection.Font.Borders.OutsideLineWidth = Word.WdLineWidth.wdLineWidth100pt
                    .Selection.Font.Borders.OutsideColor = Word.WdColor.wdColorGray90
                    .Selection.MoveRight(Word.WdUnits.wdCharacter, Count:=1)
                    .Selection.Font.Italic = 0
                    .Selection.Font.Size = 12
                    .Selection.TypeParagraph()
                    .Selection.TypeParagraph()
                    .Selection.TypeParagraph()
                    .Selection.Borders.OutsideLineStyle = Word.WdLineStyle.wdLineStyleNone
                    .Selection.Font.Bold = True
                End With
            Next
    J'ai un soucis assez bizarre. Si la propriété visible de mon objet word est sur true, ca se passe bien.
    Si elle est sur False il y a deux cas de figure :
    1. En mode pas à pas, ca se passe bien.
    2. En éxecution : plantage sur la ligne .Selection.Font.Borders.OutsideLineStyle = Word.WdLineStyle.wdLineStyleSingle
    Message d'erreur : "La commande a échoué"


    Merci.

  2. #2
    Membre expérimenté Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Points : 1 443
    Points
    1 443
    Par défaut
    si tu veux mettre du texte à un endroit donné, tu devrais utiliser les signets dans word....

    regarde du coté de la propriété Bookmark de ton document word
    il vaut mieux prendre son pied que de se prendre la tête!!

    http://bossun.noxblog.com

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2006
    Messages : 27
    Points : 29
    Points
    29
    Par défaut
    J'utilise les signets, mon probleme n'est pas la.

    Lors de l'insertion d'une forme automatique, il faut passer en paramètre les coordonnées, que l'on se trouve sur un signet ou non.

    J'ai retravaillé dessus un peu ce matin, je pense pouvoir recuperer les coordonnées du pointeur avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    doc.Application.Selection.Information(Word.WdInformation.wdVerticalPositionRelativeToPage)
    et de la même manière pour l'horizontal.

    J'espère trouver une solution même si j'ai résolu le problème en insérant une image au lieu d'une forme auto.

Discussions similaires

  1. [.net] Automation Word
    Par Eome dans le forum C#
    Réponses: 3
    Dernier message: 09/03/2007, 16h45
  2. [VB.NET] Automation Word mettre une page en paysage
    Par maxxou dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 12/02/2007, 15h50
  3. Réponses: 1
    Dernier message: 24/08/2006, 18h21
  4. Réponses: 3
    Dernier message: 24/07/2006, 14h54
  5. [VB.NET][Automation Word]utiliser un document word comme un report
    Par kinganasius dans le forum Windows Forms
    Réponses: 10
    Dernier message: 01/06/2006, 11h38

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