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 04/11/2007, 03h04   #1
Nouveau Membre du Club
 
Inscription : octobre 2007
Messages : 55
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 55
Points : 28
Points : 28
Par défaut Position d'un mot pour insertion tableau

Je souhaiterais simplement obtenir la position d'un mot (par exemple : {texte}) qui peut se trouver nimporte où dans mon document word pour ensuite le remplacer par un tableau.
Je n'ai pas de problème à générer mon tableau mais il se positionne au début du document

Voilà mon code de d'ajout de tableau et d'essai de positionnement.
Code :
$word->ActiveDocument->Tables->Add($word->Selection->Range, 5, 3);
Oui oui c'est du php mais c'est presque pareil que le vb pour la manipulation des fichiers word à part qu'il n'y a vraiment aucune documentation pour le php

Je galère pas mal avec ça.
Au passage, comment faut-il faire pour afficher les bordures d'un tableau?
Car, lorsque que je crée un tableau grâce au code ci-dessus, il n'y a pas de bordures.
ragnarokr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2007, 10h07   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
C'est pas vraiment pareil, en VBA, tu peux utiliser des fonctions intégrées qui permettent de le faire, on peut travailler avec des objets Range, Selection, qui peuvent être très utiles

Ce que je te propose, d'est d'ajouter un BookMark et essayer de mettre ton tableau dessus.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2007, 10h43   #3
Nouveau Membre du Club
 
Inscription : octobre 2007
Messages : 55
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 55
Points : 28
Points : 28
J'ai bien l'impression que les objets range, selection, ... fonctionnent aussi avec php

Merci pour ta propositions mais j'ai déjà essayé avec des bookmark mais j'ai besoin qu'ils puissent être très facilement déplacable dans le document et même en les rendant visible, je les trouve pas très pratique ...
ragnarokr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2007, 11h11   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Alors, la meilleure façon est de travailler avec un objet Selection.

J'ai jamais essayé avec PHP.

Rechercher ton mot, le sélectionner.
Sur la sélection insérer le tableau.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2007, 11h30   #5
Nouveau Membre du Club
 
Inscription : octobre 2007
Messages : 55
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 55
Points : 28
Points : 28
Merci pour ta rapidité

J'avais essayé de faire à peu près cque tu m'as dit mais sans succès.

Code :
1
2
3
4
 
$word->Selection->Find->Text = "{text}"; //recherche
$word->Selection->Select; //selection
$word->ActiveDocument->Tables->Add($word->Selection->Range, 5, 3); //insertion du tableau
Il n'y a pas d'erreur mais le tableau est toujours inséré en début de document.
ragnarokr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2007, 12h08   #6
Nouveau Membre du Club
 
Inscription : octobre 2007
Messages : 55
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 55
Points : 28
Points : 28
C'est bon, j'ai trouvé
Il ne faut pas faire un Find->Text mais Find->Execute
Code :
$word->Selection->Find->Execute("{texte}");
Oufff, ça m'a bien saoulé ce problème

J'en profite au passage: comment doit-on faire pour nommer un tableau lors de sa création? car ne sahant pas où il peut être, il serait plus simple qu'il ait un nom plutôt qu'un numéro (ActiveDocument->Tables(2)) pour sa manipulation.
ragnarokr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2007, 19h11   #7
Rédacteur/Modérateur
 
Avatar de Sepia
 
Homme JF Jousseaume
Inscription : octobre 2007
Messages : 2 390
Détails du profil
Informations personnelles :
Nom : Homme JF Jousseaume
Âge : 48
Localisation : France

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 2 390
Points : 3 356
Points : 3 356
Par défaut Et Word créa la lumière



C'est bien comme truc mais c'est compliqué. Tu as une solution directe avce Word : le publipostage qui je rapelle est une focntion qui remplace directement (sans savoir où c'est) un élément d'insertion (comme {texte} par exemple) le contenu d'une ligne d'un fichier (mais qui en fait peut être n'importe quoi donc un tableau) en une seule opération.

Maintenant si tu veux vraiment nommer ton tableau, tu fais comme Word, tu lui colles un signet (tu peux même si tu t'y connais réutiliser celui que Word met sur ton tableau), mais il n'est pas franchement explicite (_Ref183262855 par exemple) ce qui ne doit pas vraiment t'arranger, alors qu'en revanche mettre "Tableau01" (il ne faut pas d'espace et si tu veux les trier par ordre d'apparition,, prévoir tout de suite une numérotation à 2 ou 3 chiffres si tu as plus de 10 ou 100 tableaux...)
Sepia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2007, 19h17   #8
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 930
Points : 11 930
Citation:
Envoyé par Sepia
Tu as une solution directe avce Word : le publipostage qui je rapelle est une focntion qui remplace directement (sans savoir où c'est) un élément d'insertion
Et tu peux insérer un tableau avec le publipostage ? Teste ce que tu dis avant de le dire.
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2007, 11h00   #9
Rédacteur/Modérateur
 
Avatar de Sepia
 
Homme JF Jousseaume
Inscription : octobre 2007
Messages : 2 390
Détails du profil
Informations personnelles :
Nom : Homme JF Jousseaume
Âge : 48
Localisation : France

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 2 390
Points : 3 356
Points : 3 356
Par défaut Insérer un tableau par publipostage

Oui et je l'ai déjà testé avant.
Sepia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2007, 11h29   #10
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 930
Points : 11 930
Citation:
Envoyé par ragnarokr Voir le message
comment doit-on faire pour nommer un tableau lors de sa création? car ne sachant pas où il peut être, il serait plus simple qu'il ait un nom plutôt qu'un numéro (ActiveDocument->Tables(2)) pour sa manipulation.
Malheureusement, si tu regardes dans l'aide à "Table, objet", tu verras que les tableaux n'ont pas la propriété Name
Tu peux bien sûr lui affecter un signet mais il suffit de savoir que l'index correspond à l'ordre dans le document. Si tu veux utiliser un nom, alors crée une collection avec les noms, l'index de la collection correspondant au N° du tableau.
Mais c'est plus compliqué...
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2007, 19h44   #11
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 930
Points : 11 930
Comme j'avais envie de m'amuser, je t'ai fait ça
Tu places 4 tableaux d'au moins deux lignes et deux colonnes dans un document tout neuf et tu testes ça
Code :
1
2
3
4
5
6
7
8
9
10
Sub Test()
 Dim MaColect  As New Collection
    ' Rempli la collection
    MaColect.Add 1, "CéLeBoTaBlo"
    MaColect.Add 2, "ÇuiciIlEstMoinsBo"
    MaColect.Add 3, "ÇaCéUnBoTaBlo"
    MaColect.Add 4, "Bôf"
    'Ecrire dans le tableau
    ActiveDocument.Tables(MaColect("ÇuiciIlEstMoinsBo")).Cell(2, 2).Range.InsertAfter "Coucou"
End Sub
Bonne soirée
ouskel'n'or 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 04h48.


 
 
 
 
Partenaires

Hébergement Web