Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Supprimer plusieurs tables des matières - VBA Word

5 réponses
Avatar
Maud
Bonjour,

Je souhaiterais effacer dans un m=EAme document Word toutes les tables
des mati=E8res.

Voici le code qui efface la 1=E8re table des mati=E8res :

Dim tm1 As Object
Set tm1 =3D ActiveDocument.TablesOfContents(1) '1ere table de matieres
tm1.Delete

Pour effacer les autres, j'ai donc voulu appliquer cette m=EAme syntaxe
mais cela ne fonctionne pas.

Ex pour la 2=E8re table des mati=E8res:
Dim t2 As Object
Set tm2 =3D ActiveDocument.TablesOfContents(2) '2=E8me table de matieres
tm2.Delete
VBA ne reconnait pas mon objet...

Comment dois je proc=E9der?
Merci d'avance pour votre aide!

5 réponses

Avatar
Gilles MOUGNOZ
Bonjour,
Je souhaiterais effacer dans un même document Word toutes les tables
des matières.
Voici le code qui efface la 1ère table des matières :
Dim tm1 As Object
Set tm1 = ActiveDocument.TablesOfContents(1) '1ere table de matieres
tm1.Delete
Pour effacer les autres, j'ai donc voulu appliquer cette même syntaxe
mais cela ne fonctionne pas.
Ex pour la 2ère table des matières:
Dim t2 As Object
Set tm2 = ActiveDocument.TablesOfContents(2) '2ème table de matieres
tm2.Delete
VBA ne reconnait pas mon objet...
Comment dois je procéder?
Merci d'avance pour votre aide!


Bonjour, Maud

En me basant sur mes humbles connaissances de VBA, je te propose ceci:

Dim Tm As Object
For each Tm In ActiveDocument.TablesOfContents
Tm.Delete
Next Tm

Je pense que le fait de demander explicitement la suppression de la première
PUIS de la deuxième doit perturber Word, surtout s'il n'y a que deux tables
des matières.
En effet, une fois la première table supprimée, la seconde prend la tête.

Ca fonctionne ?

Avatar
Maud
Bonjour!

Merci d'avoir répondu si rapidement!

Oui effectivement la 2nd TM prend ensuite la place de la 1ère...
En fait j'ai plus de 2 tables des matières, en fait ça va varier d'un
document à l'autre.

J'ai essayé ton code et cela ne fonctionne pas. Seule la 1ère TM est
supprimée.
Je continue ma recherche...

Si tu as une autre idée, je suis preneuse

Merci encore






Bonjour,
Je souhaiterais effacer dans un même document Word toutes les tables
des matières.
Voici le code qui efface la 1ère table des matières :
Dim tm1 As Object
Set tm1 = ActiveDocument.TablesOfContents(1) '1ere table de matieres
tm1.Delete
Pour effacer les autres, j'ai donc voulu appliquer cette même syntaxe
mais cela ne fonctionne pas.
Ex pour la 2ère table des matières:
Dim t2 As Object
Set tm2 = ActiveDocument.TablesOfContents(2) '2ème table de matieres
tm2.Delete
VBA ne reconnait pas mon objet...
Comment dois je procéder?
Merci d'avance pour votre aide!


Bonjour, Maud

En me basant sur mes humbles connaissances de VBA, je te propose ceci:

Dim Tm As Object
For each Tm In ActiveDocument.TablesOfContents
Tm.Delete
Next Tm

Je pense que le fait de demander explicitement la suppression de la premi ère
PUIS de la deuxième doit perturber Word, surtout s'il n'y a que deux ta bles
des matières.
En effet, une fois la première table supprimée, la seconde prend la t ête.

Ca fonctionne ?



Avatar
Gilles MOUGNOZ
Bonjour!
Merci d'avoir répondu si rapidement!
Oui effectivement la 2nd TM prend ensuite la place de la 1ère...
En fait j'ai plus de 2 tables des matières, en fait ça va varier d'un
document à l'autre.
J'ai essayé ton code et cela ne fonctionne pas. Seule la 1ère TM est
supprimée.
Je continue ma recherche...
Si tu as une autre idée, je suis preneuse
Merci encore


Une autre idée:

Dim Compteur As Long
Dim Tm As Object
For Compteur = 1 To ActiveDocument.TablesOfContents.Count
Set Tm = ActiveDocument.TablesOfContents(1)
Tm.Delete
Next Compteur

On supprime la première table autant de fois qu'il y a de tables...

C'est mieux ?

Avatar
Circé
Bonjour Maud,

Tu es sûre que ce sont toutes des tables des matières (TableOfContents)
?...
Parce qu'il s'agit de table des figures ou de tableaux, ce n'st pas la
même chose... C'est TableOfFigures.

Circé
http://faqword.free.fr


Bonjour!

Merci d'avoir répondu si rapidement!

Oui effectivement la 2nd TM prend ensuite la place de la 1ère...
En fait j'ai plus de 2 tables des matières, en fait ça va varier d'un
document à l'autre.

J'ai essayé ton code et cela ne fonctionne pas. Seule la 1ère TM est
supprimée.
Je continue ma recherche...

Si tu as une autre idée, je suis preneuse

Merci encore






Bonjour,
Je souhaiterais effacer dans un même document Word toutes les tables
des matières.
Voici le code qui efface la 1ère table des matières :
Dim tm1 As Object
Set tm1 = ActiveDocument.TablesOfContents(1) '1ere table de matieres
tm1.Delete
Pour effacer les autres, j'ai donc voulu appliquer cette même syntaxe
mais cela ne fonctionne pas.
Ex pour la 2ère table des matières:
Dim t2 As Object
Set tm2 = ActiveDocument.TablesOfContents(2) '2ème table de matieres
tm2.Delete
VBA ne reconnait pas mon objet...
Comment dois je procéder?
Merci d'avance pour votre aide!


Bonjour, Maud

En me basant sur mes humbles connaissances de VBA, je te propose ceci:

Dim Tm As Object
For each Tm In ActiveDocument.TablesOfContents
Tm.Delete
Next Tm

Je pense que le fait de demander explicitement la suppression de la première
PUIS de la deuxième doit perturber Word, surtout s'il n'y a que deux tables
des matières.
En effet, une fois la première table supprimée, la seconde prend la tête.

Ca fonctionne ?





Avatar
Maud
Bonjour!

D'accord je ne faisais pas la distinction entre table des matières et
table des figures...
J'ai les 2 effectivement dans mon document.
Ca fontionne donc avec TableOfFigures, c'est parfait!

Merci beaucoup!



Bonjour Maud,

Tu es sûre que ce sont toutes des tables des matières (TableOfContent s)
?...
Parce qu'il s'agit de table des figures ou de tableaux, ce n'st pas la
même chose... C'est TableOfFigures.

Circé
http://faqword.free.fr


Bonjour!

Merci d'avoir répondu si rapidement!

Oui effectivement la 2nd TM prend ensuite la place de la 1ère...
En fait j'ai plus de 2 tables des matières, en fait ça va varier d' un
document à l'autre.

J'ai essayé ton code et cela ne fonctionne pas. Seule la 1ère TM est
supprimée.
Je continue ma recherche...

Si tu as une autre idée, je suis preneuse

Merci encore






Bonjour,
Je souhaiterais effacer dans un même document Word toutes les tables
des matières.
Voici le code qui efface la 1ère table des matières :
Dim tm1 As Object
Set tm1 = ActiveDocument.TablesOfContents(1) '1ere table de matieres
tm1.Delete
Pour effacer les autres, j'ai donc voulu appliquer cette même synta xe
mais cela ne fonctionne pas.
Ex pour la 2ère table des matières:
Dim t2 As Object
Set tm2 = ActiveDocument.TablesOfContents(2) '2ème table de matie res
tm2.Delete
VBA ne reconnait pas mon objet...
Comment dois je procéder?
Merci d'avance pour votre aide!


Bonjour, Maud

En me basant sur mes humbles connaissances de VBA, je te propose ceci:

Dim Tm As Object
For each Tm In ActiveDocument.TablesOfContents
Tm.Delete
Next Tm

Je pense que le fait de demander explicitement la suppression de la pr emière
PUIS de la deuxième doit perturber Word, surtout s'il n'y a que deux tables
des matières.
En effet, une fois la première table supprimée, la seconde prend l a tête.

Ca fonctionne ?