Extraire données d'un tableau

mouchette1826 Messages postés 11 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 28 février 2006 - 25 févr. 2006 à 20:44
mouchette1826 Messages postés 11 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 28 février 2006 - 28 févr. 2006 à 21:18
Bonjour,
Je ne connais rien à Visual Basic, mais j'ai besoin d'une macro:
Soit un problème de mots croisés. Il est composé dans un tableau Word, chaque lettre étant dans une cellule, et les noirs obtenus par des trames. Puis, dans le même fichier, mais en texte cette fois, les définitions. Est-il possible de récupérer les mots de la grille (lus horizontalement et verticalement), en transformant les noirs en séparateurs, et en éliminant les bordures, de manière à en dresser la liste? Secondement, et cela se corse, est-il possible de relier chaque mot à sa définition?
Le but est de constituer une banque de mots définis, une sorte de dictionnaire. Merci!

20 réponses

cs_ZANUS Messages postés 126 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 février 2007
25 févr. 2006 à 22:31
Hello Mouchette,

Je ne comprends pas ce que tu entends par l'expression "..noirs obtenus par des trames".
Je peux te proposer une macro qui ne répondra que partiellement à ta demande et qui marche avec VBA.
J'ai pris l'exemple d'un tableau qui compte 13 lignes et 5 colonnes.
Les 2 1ères lignes du code signifient qu'on sélectionne le tableau
La 3ème permet de convertir le tableau en texte.

Sub Macro()
Selection.MoveDown Unit:=wdLine, Count:=12, Extend:=wdExtend
Selection.MoveRight Unit:=wdCharacter, Count:=4, Extend:=wdExtend
Selection.Rows.ConvertToText Separator:=wdSeparateByCommas, NestedTables:= _
True
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "; ; ; ; ^p"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^s"
.Replacement.Text = "; "
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Si tu veuw essayer ce code, tu dois remplacer le 12 de la 1ère instruction par le nombre de lignes de ton tableau-1 et le 4 de la seconde instruction par ton nombre de lignes-1.

Bon, je t'explique. Il n'y a plus de bordures, en fait plus de tableau. Tu te retrouves avec ta liste de mots séparés avec des points virgules 'qui remplacent tes noirs. Tu n'as, autrement dit, plus la même présentation. (Tu ne veux plus de bordures mais est-ce que tu veux que tes mots soient présentés de la même façon?). Par ailleurs, il faudrait que tu précises ce que tu entends par "relier chaque mot à sa définition".Ce dernier souhait n'apparaît pas dans ce code.

@+
0
mouchette1826 Messages postés 11 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 28 février 2006
25 févr. 2006 à 23:42
Magnifique! Le Net est formidables, et les gens aussi (parfois).
C'est déjà un très gros pas de fait. Second souhait: Une fois que j'aurai exécuté cette macro, j'imagine que j'aurai une liste de mots. Chacun des mots de la grille est défini, comme dans tous les mots croisés. Mon souhait est que le premier mot de la liste soit suivi de sa définition, prise dans le texte qui suivait la grille, le second par sa définition, etc. Comme un dictionnaire. Sachant que les définitions sont présentées ainsi:
Horizontalement
I. Poulet à la romaine. – II. Changea de timbre. On peut y pédaler, mais ça caille. – III. Elle parle toute seule, et lui aussi. Il annonçait le futur ou il était en avance sur son temps, cela dépend de l’époque. (Etc. Puis:)
Verticalement
1. Elle est souvent chaude, malgré la bise. – 2. Elles ont baissé à zéro la réduction du temps de travail. – 3. Il était portugais, mais la mienne est de nouveau chinoise… Il y en a de gothiques, pourtant. (etc.)

Exactement comme cela, avec éventuellement deux (ou trois définitions) enchaînées et séparées par un point, un point d'exclamation, d'interrogation ou de suspension. Et à la fin des définitions d'une ligne ou d'une colonne, un tiret.
Cela se complique, hein?
0
cs_ZANUS Messages postés 126 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 février 2007
26 févr. 2006 à 00:14
Ca se complique d'autant plus que mes yeux s'apprêtent à se
fermer.Demain ou aujourd'hui puisque qu'on est déjà demain (t'arrives à
me suivre!) après un gros dodo, je verrais.



Bonne nuit.
0
mouchette1826 Messages postés 11 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 28 février 2006
26 févr. 2006 à 09:28
Bien dormi? Continuons. Et commençons par revenir en arrière.
Comme au jeu des 7 familles, je demande:
1. Que la macro commence par demander la suppression de la première ligne et de la première colonne (qui ne contiennent que des chiffres et ne me sont pas utiles)
2. Que le point-virgule de séparation n'intervienne qu'entre deux mots complets, c'est-à-dire à l'emplacement de la case noire, et non pas entre chaque lettres. Actuellement, si une ligne comprend les mots "vert" et "rouge", j'obtiens: v;e;r;t;;r;o;u;g;e.
Je voudrais:
vert;rouge
(et même éventuellement que tous les mots soient rangés en colonne, c'est-à-dire en remplaçant le séparateur par un retour chariot:
vert
rouge
3. SURTOUT: la macro ne s'effectue qu'horizontalement. Il faut aussi qu'elle procède verticalement, et de la même manière (il faut peut-être lui demander de reconstituer le tableau initial? Auquel cas ne pas oublier de redétruire la colonne n°1 et la ligne n°1!)
4. Enfin: qu'elle supprime les mots d'une lettre.
Au plaisir!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_ZANUS Messages postés 126 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 février 2007
26 févr. 2006 à 11:10
Ouais,
Ca va.J'ai bien dormi.
C'était trop simple pour être vrai. Une nuit de sommeil et une douche m'ont amené à ceci. Mais le problème n'est pas entièrement résolu (loin de là.). J'y bosse.
Voici un exemple de tableau: Attention, ici n'apparaissent pas la 1ère ligne et la 1ère colonne mais cette macro s'applique bien à un tableau avec une première ligne et une première colonne avec les chiffre.


R,
A,
T,
,
I,
N,
----

I,
L,
E,
S,
,
A,
----

V,
E,
R,
T,
E,
,
----

E,
,
M,
O,
A,
S,
----

,
F,
E,
R,
U,
E,
----

S,
A,
,
E,
X

La macro par contre n'est pas super super jolie et assez longue. Elle peut peut-être être simplifiée et elle reste à améliorer. Il faut peut-être suivre une autre piste. Les autres pourront t'aider, je l'espère.
La macro te donne ceci:
RAT
IN
ILES


A


VERTE


E


MOAS


FERUE


SA


EX


Comme tu le constates, les mots en verticale ont disparu et on se retrouve avec des mots d'une lettre mais les mots horizontaux apparaissent bien et sont bien colonne.

Selection.Rows(1).Delete 'Supprimer la 1ère ligne
Selection.Columns(1).Delete 'Supprimer la 1ère colonne
Selection.MoveDown Unit:=wdLine, Count:=5, Extend:=wdExtend
Selection.MoveRight Unit:=wdCharacter, Count:=5, Extend:=wdExtend
Selection.Rows.ConvertToText Separator:=wdSeparateByCommas, NestedTables:= _
True
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "; "
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^s"
.Replacement.Text = "^p"
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^p^p"
.Replacement.Text = "^p"
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll

To be following
0
cs_ZANUS Messages postés 126 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 février 2007
26 févr. 2006 à 11:13
J'essaie de faire en sorte que les messages "Recherche dans la sélection terminée..n'apparaissent plus mais j'ai du mal. Je pense que qu'il faut ajouter une instruction du type AlertDisplays...
0
mouchette1826 Messages postés 11 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 28 février 2006
26 févr. 2006 à 11:20
Cela m'a l'air raide... Mais les messages d'alerte ne me gênent pas. C'est plus l'absence de mots verticaux...
0
mouchette1826 Messages postés 11 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 28 février 2006
26 févr. 2006 à 11:25
je suis embêté. La suppression des colonne 1 et ligne 1 ne marche pas. Si je supprime cette commande, la macro bute sur:
Selection.Rows.ConvertToText Separator:=wdSeparateByCommas, NestedTables:= _
True
0
cs_ZANUS Messages postés 126 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 février 2007
26 févr. 2006 à 13:53
T'es sûr que la suppression ne marche pas?
Dans l'exemple, le curseur doit se trouver dans la cellule x et tu lances la macro.Normalement ,la ligne 1 et la colonne 1 sont bien supprimées. est-ce que tu as un message d'erreur?
Pour les mots verticaux, je cherche.


x,
,
,
,
,
,
,
----

,
R,
A,
T,
,
I,
N,
----

,
I,
L,
E,
S,
,
A,
----

,
V,
E,
R,
T,
E,
,
----

,
E,
,
M,
O,
A,
S,
----

,
,
F,
E,
R,
U,
E,
----

,
S,
A,
,
E,
X
0
cs_ZANUS Messages postés 126 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 février 2007
26 févr. 2006 à 13:58
Désolé, je viens de me rendre compte que les bordures de mes tableaux sont supprimées après l'envoi de mes mes messages. C'est peut-être à cause de ça que ça ne marche pas. J'espère que t'arrive à comprendre malgré tout. Tu mets ton point d'insertion dans la première cellule du tableau (ligne1/colonne1 et tu lances ta macro)
0
mouchette1826 Messages postés 11 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 28 février 2006
26 févr. 2006 à 14:42
J'ai supprimé "to be following" à la fin, et cela marche - à cela près que je n'ai plus de saut de ligne du tout à la place des cases noires. J'ai (1ère ligne de ton tableau)
RATIN
au lieu de
RAT
IN
0
cs_ZANUS Messages postés 126 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 février 2007
27 févr. 2006 à 19:06
Re,

Tu peux me préciser si le nombre de lignes et le nombre de colonnes sont toujours les mêmes autrement dit s'il n'y a que les mots et la place des cases noires qui varient. Précises moi alors ces nombres. Pour ce qui est de To be folllowing, n'en tient surtout pas compte. J'étais sur une autre planète quand j'ai écrit ça!!!
Il faudrait aussi que tu me précises si tu es d'accord pour qu'il y ait deux pages: une avec les mots horizontaux et l'autre avec les mots verticaux. Je suis sur une piste qui marche mais en partie.Je cherche également à les mettre sur une seule page mais c'est dur dur!!
Pour ce qui est de mettre les définitions, là aussi je suis sur une piste mais pour l'instant, si les définitions sont bien sur la même ligne que les mots attachés, il y a un espace entre.
Par ailleurs, je suis en train de travailler sur ce que j'ai fait.
A la place de:
Selection.MoveDown Unit:=wdLine, Count:=5, Extend:=wdExtend
Selection.MoveRight Unit:=wdCharacter, Count:=5, Extend:=wdExtend
tape:
Selection.Tables(1).Select.'Sélectionner le tableau 1:c'est plus simple à comprendre

Au final comme je te l'ai dit, il doit sûrement y avoir une solution et un code plus simple, mais plus simple pour des pros de VB et de VBA. J'ai du mal à comprendre les notions de Dim, etc..Il faut peut-être entrer le tableau comme variable et charger les données dans une listbox ou un combobox mais mon savoir s'arrête là et je risquerai de t'induire en erreur.

@+
0
mouchette1826 Messages postés 11 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 28 février 2006
27 févr. 2006 à 19:20
Merci de t'acharner!
Non, le nombre de colonnes et de lignes peut varier. mais je peux changer le texte de la macro à chaque fois... Disons que la majorité des grilles est de 10x10. On peut partir là-dessus. Je peux très bien enregistrer autant de macros que de formats.
Aucun problème pour qu'il y ait deux pages. Je peux m'arranger très bien avec ce problème!
Aucun problème non plus pour l'espce entre le mot et la définition! C'est parfait!
Tu peux m'envoyer la macro complète telle qu'elle est maintenant? J'essaierais bien... Merci.
0
cs_ZANUS Messages postés 126 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 février 2007
27 févr. 2006 à 21:02
No problemo. Grâce à toi, j'approfondis mes connaissances. Surtout si t'as d'autres questions(pas trop trop compliquées, non plus, hein!), n'hésite pas, sans prétentions.

Bon,
Pour ce qui est des mots horizontaux, c'est réglé, je pense.Avec ma macro, tu n'as plus de mots d'une lettre.Les définitions sur la ligne. Attention dans mon exemple, je n'ai mis que quelques définitions.

Sub Macro()
Selection.Rows(1).Delete
Selection.Columns(1).Delete
Selection.Tables(1).Select
Selection.Rows.ConvertToText Separator:=wdSeparateByCommas, NestedTables:= _
True
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "; "
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^s"
.Replacement.Text = "^p"
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^$"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^p^p"
.Replacement.Text = ": ^p"
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.MoveRight Extend:=wdExtend
Selection.MoveDown Unit:=wdLine, Count:=3, Extend:=wdExtend
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "-"
.Replacement.Text = ":^p"
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Selection.MoveDown Unit:=wdLine, Count:=12
With ActiveDocument.PageSetup.TextColumns
.SetCount NumColumns:=2
.EvenlySpaced = True
.LineBetween = False
.Width = CentimetersToPoints(7.38)
.Spacing = CentimetersToPoints(1.25)
End With
Selection.InsertBreak Type:=wdColumnBreak
End Sub

Pour ce qui est mots verticaux, un peu de patience! J'ai rencontré un os. A ce propos, je suppose que tu disposes d'excel? Je crois penser qu'il faut passer par là. Mais je n'arrive pas à transcrire pour l'instant l'instruction en VBA.En tout cas, je pense être pas très loin de la solution.
0
mouchette1826 Messages postés 11 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 28 février 2006
27 févr. 2006 à 21:30
Bien reçu, merci. Mais je crois que la première chose à faire, c'est de sortir les mots de la grille. Et d'abord horizontalement. Là, les mots sont collés. Je pense qu'il faut remplacer la case noire par un retour chariot, pour avoir une liste verticale et propre.
Peut-être mettre cette liste dans un fichier séparé.
Puis revenir à la grille d'origine, et faire de la même manière, mais verticalement. Mettre cela à la suite de la liste des horizontaux, dans le fichier séparé.
Ensuite importer ce fichier dans celui qui contient la grille et les définitions. Et là, c'est le hic. Voici comment je pense qu'on peut procéder (c'est une piste), compte tenu de la présentation du texte.
Suppression des mots « horizontalement » et « verticalement »
Suppression des chiffres arabes (de 1 à 15) et des chiffres romains (de I à XV) et du point qui les suit.
Suppression de tout retour chariot double ou triple (de manière à coller le paragraphe des définitions verticales à celui des horizontales).
Ajout d’un retour chariot après tout signe de fin de phrase . ? ! …

Ainsi on devrait obtenir une liste complète, en colonne, des toutes les définitions, et dans l’ordre où les mots apparaissent dans la grille : Tous les horizontaux d’abord, puis tous les verticaux.

Ensuite, il faut placer la définition n°1 à la suite du mot n°1, la définition n°2 à la suite du mot n°2, etc. Quel que soit le nombre de mots et de définitions…
Rien ne s’oppose à ce que mots et définitions soient numérotés – si cela facilite la macro.
C'est fastidieux, d'accord... Mais ça peut marcher. La difficulté à vaincre d'abord, c'est la lecture des mots verticaux dans la grille.
Bon courage!
0
mouchette1826 Messages postés 11 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 28 février 2006
27 févr. 2006 à 21:43
A propos, voici la macro qui permet de placer un noir. Peut-être cela te sera-t-il utile pour les remplacer par un retour chariot?
With Selection.Cells.Shading
.Texture = wdTextureNone
.ForegroundPatternColorIndex = wdAuto
.BackgroundPatternColorIndex = wdBlack
End With
With Options
.DefaultBorderLineStyle = wdLineStyleSingle
.DefaultBorderLineWidth = wdLineWidth050pt
.DefaultBorderColorIndex = wdAuto
End With
0
cs_ZANUS Messages postés 126 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 février 2007
28 févr. 2006 à 09:11
Chez moi, les mots horizontaux ne sont pas collés et sont bien rangés en colonne et les définitions sont bien alignées et sont bien colonne. Pour ce qui est des mots verticaux, je cherche. Pour l'instant, je n'ai pas le temps.Je verrais ce soir.Malheureusement, je ne sais pas pourquoi lorsque je poste mes messages, les bordures de mes tableaux disparaissent. C'est dommage car tu ne peux visulaiser ce que j'ai. Je vais essayer de trouver une solution.
0
mouchette1826 Messages postés 11 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 28 février 2006
28 févr. 2006 à 09:22
Qu'est-ce que tu mets comme cases noires? C'est cela qu'il faut savoir.
Il n'y a pas moyen d'envoyer des fichiers, sur ce forum? On pourrait faire des essais plus constructifs...
0
cs_ZANUS Messages postés 126 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 février 2007
28 févr. 2006 à 20:35
Comme je ne peux mettre mon tableau, je vais essayer de te le décrire.
Il compte 7 lignes et 7 colonnes dont la ligne d'en-tête et la première
colonne à supprimer.

(1ère ligne= chiffres romains: à supprimer).

Attention la première lettre du mot commence à partir de la 2nde
colonne. 2nde ligne: RAT, case noire, IN. 3ème ligne: ILES, case noire,
lettre A. 4ème ligne: VERTE, case noire. 5ème ligne: lettre E, case
noire, MOAS. 6ème ligne: case noire, FERUE. 7ème ligne: SA, case noire,
EX, case noire.

(1ère colonne: chiffres arabes: à supprimer). Attention la première
lettre du mot commence sur la seconde ligne. 2nde colonne: RIVE, case
noire, lettre S. 3ème colonne: ALE, case noire, SA. 4ème colonne:
TERME, case noire. 5ème colonne: case noire, STORE. 6ème colonne:
lettre I, case noire, EAUX. 7ème et dernière colonne: NA, case noire,
SE, case noire.

Si tu remontes à mon message du 26/02 à 11h10, chaque blanc représente une case noire.

J'espère que tu vas pouvoir reconstituer le tableau (verticalement pour
résumer: RIVE, S, ALE, FA, TERME, STORE, I, EAUX, NA, SE et
horizontalement, RAT, IN, ILES, A, VERTE, E, MOAS, FERUE, SA, EX).

Encore une fois les mots ne sont pas collés et il n'y a plus de grille.Ils sont en colonne (il y a bien un retour chariot).

Après ton tableau, tu fais 3 retours chariots et tu mest tes définitions:

1.Définition.-2.Définition.

Si tu fais 4 retours chariots, alors tu écris Selection.MoveDown,
Unit:=wdLine, Count:=4(à la place de trois dans mon exemple),
Extend;=wdExtend.



Pour ce qui est des mots verticaux le problème est qu'ils sont
verticaux!!! Je m'explique. Le fait de supprimer les bordures ne change
rien au fait qu'ils sont verticaux!!! Bon, je t'explique. Il faut que
ces mots verticaux dviennent horizontaux!! Par exemple, tu as le mot
RIVE en colonne. Il faut donc que RIVE soit en ligne!! C'est là où
Excel joue un rôle. Si tu veux, là, j'ai le raisonnement dans la tête
mais le gros HIC, c'est qu'il faut retranscrire le raisonnement suivant
en VBA. Là c'est pas de la tarte!! 1: copier le tableau tel qu'il
existe sur Word (avec les bordures et tout le tralala).: 2: ouvrir
Excel. Coller le tableau. 3: copier le tableau (attention, on est sur
Excel et plus sur Word). 4:sélectionner une cellule en dehors du
tableau. 5: aller dans le menu édition/collage spécial et COCHER LA
CASE TRANSPOSE, fonction magique d'excel qui va te permettre de mettre
tes mots verticaux et ligne et OK. Rebelote. tu sélectionnes le nouveau
tableau :attention tu as le 1er tableau et en dessous(pour faire
simple, autant faire le collage spécial en dessous du 1er tableau) le
2nd tableau que tu vas donc sélectionner, copier et coller sur Word
après avoir fermé Excel en répondant non à la question "Voulez-vous
enregistrez les modifications au document Excel?!!! A partir de là, on
va pouvoir appliquer exaxtement la même macro que la 1ère sur Word. Le
problème, c'est donc trouver un morceau de macro intermédiare demandant
ce fameux collage spécial. A priori sur Word, il n'y a pas de fonction
équivalente (je parle de la fonction Transpose qui change une colonne
en une ligne).

J'espère que t'as pigé le truc!!!



A tchao bonsoir
0
mouchette1826 Messages postés 11 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 28 février 2006
28 févr. 2006 à 21:18
Désolé. J'ai fait la grille, mis des définitions, enfin tout comme il faut, et j'obtiens:
RATIN
ILESA
VERTE
EMOAS
FERUE
SAEX:
Horizontalement
. Def rat. Def in. – II. Def iles. – III. Def verte. – IV. Def moas. – . Def ferue. – VI. Def sa. 8. Def ex. –
Verticalement
1. Def rive. – 2. Def ale. Def fa. – 3. Def terme. – 4. Def store. – 5. Def eaux. – 6. Def

na. Def se.

Je n'y comprends rien. Je ne vois pas ce qui peut marcher chez toi et ne fonctionne pas chez moi. Et je commence à être gêné de te demander encore du travail. Restons-en là, tu ne crois pas? Je vais chercher un professionnel de la profession, le payer, et il se débrouillera. Il passera par Excel s'il faut, je crois que c'est possible d'exporter, et de continuer la macro. Sinon, peut-être saura-t-il faire lire le tableau verticalement? Merci mille fois pour la peine prise et le temps perdu...
J. Dr.
0
Rejoignez-nous