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

VBA Word Discussion :

[VB et Word] Se déplacer d'une ligne vers le bas...


Sujet :

VBA Word

  1. #1
    Membre régulier Avatar de benj63
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mai 2002
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 207
    Points : 99
    Points
    99
    Par défaut [VB et Word] Se déplacer d'une ligne vers le bas...
    Bonjour,

    Je cherche à créer en VB une macro qui insère un tableau dans un document Word, et qui remplit les différentes cases du tableau. Il m'est donc nécessaire de connaître le code pour passer d'une cellule à une autre (sur une ligne en dessous).

    Mon problème est quel cela fonctionne lorsque Word est visible, mais pas lorsque l'application est masquée !

    La preuve :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=2, NumColumns:= _
            5, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
            wdAutoFitFixed
        Selection.TypeText Text:="test ligne 1"
        Selection.MoveRight Unit:=wdCell, Count:=1
        Selection.TypeText Text:="test colonne 2"
        Selection.MoveDown Unit:=wdLine, Count:=1
        Selection.TypeText Text:="test ligne 2"
    me donnera :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    |--------------|--------------|--------------|--------------|--------------|
    | test ligne 1 |test colonne 2|              |              |              |
    |--------------|--------------|--------------|--------------|--------------|
    |              | test ligne 2 |              |              |              |
    |--------------|--------------|--------------|--------------|--------------|
    En masquant Word (je ne souhaite pas que la fenêtre de Word s'affiche lors de la macro) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        Application.Visible = False
        ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=2, NumColumns:= _
            5, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
            wdAutoFitFixed
        Selection.TypeText Text:="test ligne 1"
        Selection.MoveRight Unit:=wdCell, Count:=1
        Selection.TypeText Text:="test colonne 2"
        Selection.MoveDown Unit:=wdLine, Count:=1
        Selection.TypeText Text:="test ligne 2"
        Application.Visible = True
    j'obtiendrai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    |--------------|--------------|--------------|--------------|--------------|
    | test ligne 1 |test colonne 2|              |              |              |
    |              |test ligne 2  |              |              |              |
    |--------------|--------------|--------------|--------------|--------------|
    |              |              |              |              |              |
    |--------------|--------------|--------------|--------------|--------------|
    Selection.MoveRight, Selection.MoveLeft fonctionnent que ce soit en mode masqué ou non, par contre Selection.MoveDown me pose problème ! J'ai essayé en utilisant wdRow au lieu de wdLine mais VB et Word n'en veulent pas !

    Existe-t'il une autre méthode pour changer de ligne du tableau (qui fonctionne en mode masqué !) ?

    Merci par avance !

  2. #2
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.Offset(1,0),Select
    à moins que ce ne soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.Offset(0, 1),Select
    sais plus

  3. #3
    Membre régulier Avatar de benj63
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mai 2002
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 207
    Points : 99
    Points
    99
    Par défaut
    Merci mais Selection.Offset n'est pas reconnu...

    J'ai cherché davantage et j'ai utilisé cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.GoTo What:=wdGoToLine, Which:=wdGoToRelative, Count:=1
    ça semble fonctionner, même si ce n'est pas un changement de cellule vers le bas uniquement (on retourne à la cellule tout à gauche)

  4. #4
    Membre régulier Avatar de benj63
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mai 2002
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 207
    Points : 99
    Points
    99
    Par défaut
    Je laisse un peu ouvert le sujet sans [résolu], des fois que d'autres personnes aient des idées !

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Curieux ton histoire... Avec VBA97 la syntaxe que tu as évoquée fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Selection.MoveDown Unit:=wdLine, Count:=1
    Es-tu sûr de ne pas avoir une ligne vide dans l'une de tes cellules ?

    A+

  6. #6
    Membre régulier Avatar de benj63
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mai 2002
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 207
    Points : 99
    Points
    99
    Par défaut
    Cette syntaxe fonctionne parfaitement quand la fenêtre de Word est affichée. Par contre, dès que je mets Application->Visible = false, cette commande ne réalise pas un déplacement du curseur vers le bas... Je ne comprends pas d'ailleurs pourquoi !

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Et si au lieu de la rendre invisible, tu la réduisais ? as-tu essayé ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Application.WindowState = wdMinimized
    A+

  8. #8
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Citation Envoyé par benj63
    dès que je mets Application->Visible = false, cette commande ne réalise pas un déplacement du curseur vers le bas... Je ne comprends pas d'ailleurs pourquoi !
    le plus étrange encore, c'est qu'avec Word2003, ca fonctionne, visible ou non
    tu peux toujours essayer cette syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        ActiveDocument.Tables(1).Columns(1).Cells(1).Range.Text = "test ligne 1"
        ActiveDocument.Tables(1).Columns(2).Cells(1).Range.Text = "test colonne 2"
        ActiveDocument.Tables(1).Columns(2).Cells(2).Range.Text = "test ligne 2"

Discussions similaires

  1. Déplacer une ligne vers ou haut ou le bas d'une Listebox
    Par fmris dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/02/2014, 10h26
  2. Réponses: 4
    Dernier message: 29/05/2012, 14h37
  3. [XL-2003] Déplacer une ligne vers le haut ou vers le bas
    Par rjf18 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/01/2010, 21h59
  4. OLE Word mettre en gras une ligne et repasser en normal
    Par sat83 dans le forum C++Builder
    Réponses: 7
    Dernier message: 18/06/2009, 16h05
  5. [VBA]comment copier une ligne vers un autre classeur
    Par iboulaye1980 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/05/2007, 18h22

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