Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/03/2006, 16h44   #1
Membre du Club
 
Avatar de benj63
 
Inscription : mai 2002
Messages : 166
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 166
Points : 41
Points : 41
Envoyer un message via ICQ à benj63 Envoyer un message via AIM à benj63 Envoyer un message via Yahoo à benj63
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 :
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 :
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 :
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 :
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 !
benj63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2006, 17h04   #2
Expert Confirmé
 
Avatar de zazaraignée
 
Étudiant
Inscription : février 2004
Messages : 3 173
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 3 173
Points : 3 543
Points : 3 543
salut

Code :
Selection.Offset(1,0),Select
à moins que ce ne soit
Code :
Selection.Offset(0, 1),Select
sais plus
__________________
  • Pour les nouveaux : Mode d'emploi et aide aux nouveaux
  • et impérativement les règles du forum. Histoire de garder une ambiance amicale.
  • Noubliez pas les balises de Code pour vos listings : bouton # de l'éditeur. Et n'oubliez pas non plus de bouton
  • Je ne réponds pas aux questions posées par MP.
zazaraignée est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2006, 17h26   #3
Membre du Club
 
Avatar de benj63
 
Inscription : mai 2002
Messages : 166
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 166
Points : 41
Points : 41
Envoyer un message via ICQ à benj63 Envoyer un message via AIM à benj63 Envoyer un message via Yahoo à benj63
Merci mais Selection.Offset n'est pas reconnu...

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

Code :
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)
benj63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2006, 17h27   #4
Membre du Club
 
Avatar de benj63
 
Inscription : mai 2002
Messages : 166
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 166
Points : 41
Points : 41
Envoyer un message via ICQ à benj63 Envoyer un message via AIM à benj63 Envoyer un message via Yahoo à benj63
Je laisse un peu ouvert le sujet sans [résolu], des fois que d'autres personnes aient des idées !
benj63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2006, 17h40   #5
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 928
Points : 11 928
Curieux ton histoire... Avec VBA97 la syntaxe que tu as évoquée fonctionne

Code :
    Selection.MoveDown Unit:=wdLine, Count:=1
Es-tu sûr de ne pas avoir une ligne vide dans l'une de tes cellules ?

A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2006, 18h02   #6
Membre du Club
 
Avatar de benj63
 
Inscription : mai 2002
Messages : 166
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 166
Points : 41
Points : 41
Envoyer un message via ICQ à benj63 Envoyer un message via AIM à benj63 Envoyer un message via Yahoo à benj63
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 !
benj63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2006, 09h22   #7
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 928
Points : 11 928
Et si au lieu de la rendre invisible, tu la réduisais ? as-tu essayé ?

Code :
    Application.WindowState = wdMinimized
A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2006, 09h45   #8
Responsable Visual Basic
 
Avatar de ThierryAIM
 
Homme Thierry
Inscription : septembre 2002
Messages : 3 670
Détails du profil
Informations personnelles :
Nom : Homme Thierry
Âge : 49
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : septembre 2002
Messages : 3 670
Points : 5 672
Points : 5 672
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 :
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"
__________________
Vous vous posez une question, la réponse est peut-être ici :
Toutes les FAQs VB
Les Cours et Tutoriels VB6/VBScript
Les Sources VB6


Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

MioSkins.org : le site de référence pour GPS et PDA Mitac MIO
iPHONIX.fr : le must francophone des infos pour iPhone, iPad, ...
ThierryAIM est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h28.


 
 
 
 
Partenaires

Hébergement Web