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

autofit d'un tableau dans vba ne fonctionne pas

3 réponses
Avatar
tiah
Bonjour !

j'ai beau cherch=E9, je ne trouve pas pourquoi ma macro fait =E7a.

J'ai la commande suivante :

rngTable.Tables(i).AllowAutoFit =3D True
rngTable.Tables(i).AutoFitBehavior wdAutoFitContent

Qui devrait ajuster les colonnes =E0 leur contenu.

mais lorsque j'ex=E9cute la macro, les tableaux restent =E0 leur taille
originale

si je vais dans le code faire F8 (pas =E0 pas) et que je regarde le
tableau entre les instructions, le autofit se fait.
mais en ex=E9cution normale, niet

quelqu'un a d=E9j=E0 vu =E7a ?

merci !

Tiah.
PS : Word 2002.

3 réponses

Avatar
Anacoluthe
Bonjour !

'tiah' nous a écrit ...
rngTable.Tables(i).AllowAutoFit = True
rngTable.Tables(i).AutoFitBehavior wdAutoFitContent
Qui devrait ajuster les colonnes à leur contenu.
mais lorsque j'exécute la macro, les tableaux restent à leur taille
originale
si je vais dans le code faire F8 (pas à pas) et que je regarde le
tableau entre les instructions, le autofit se fait.
mais en exécution normale, niet
quelqu'un a déjà vu ça ?


Oui c'est assez tordu. Si vous avez des tableaux complexes
et beaucoup de tableaux - je vois que vous écrivez Tables(i) -
le processus de recalcul du tableau qui se fait dans une
autre task n'a pas le temps de s'exécuter avant l'instruction
suivante. C'est pour ça qu'en pas-à-pas ça marche très bien !
Le plus simple serait de dimensionner vos colonnes autrement.

Anacoluthe
« Le tableau est fini quand il a effacé l'idée. »
- Georges BRAQUE

Avatar
Geo

Bonjour !

'tiah' nous a écrit ...
rngTable.Tables(i).AllowAutoFit = True
rngTable.Tables(i).AutoFitBehavior wdAutoFitContent
Qui devrait ajuster les colonnes à leur contenu.
mais lorsque j'exécute la macro, les tableaux restent à leur taille
originale
si je vais dans le code faire F8 (pas à pas) et que je regarde le
tableau entre les instructions, le autofit se fait.
mais en exécution normale, niet
quelqu'un a déjà vu ça ?


Oui c'est assez tordu. Si vous avez des tableaux complexes
et beaucoup de tableaux - je vois que vous écrivez Tables(i) -
le processus de recalcul du tableau qui se fait dans une
autre task n'a pas le temps de s'exécuter avant l'instruction
suivante. C'est pour ça qu'en pas-à-pas ça marche très bien !
Le plus simple serait de dimensionner vos colonnes autrement.


Ou rajouter quelques Doevents ?
Pas testé.

« Le tableau est fini quand il a effacé l'idée. »
- Georges BRAQUE


--
A+


Avatar
tiah
salut !

merci pour vos réponses !

1- je ne peux pas vraiment les redimensionner autrement, puisque je ne
sais pas à l'avance quel est le contenu, et que le tableau doit
prendre le moins d'espace possible. de plus, j'ai des cellules
fusionnées dans le tableau qui font que les largeurs de colonnes sont
difficiles à déterminer

2- J'ai mis des DoEvents et des ScreenRefresh, mais rien n'y fait !

est-ce à dire que le "autofit" ne fonctionne pas du tout si les
tableaux sont trop nombreux ou complexes ??

:((

merci tout de même

tiah



Bonjour !

'tiah' nous a écrit ...
rngTable.Tables(i).AllowAutoFit = True
rngTable.Tables(i).AutoFitBehavior wdAutoFitContent
Qui devrait ajuster les colonnes à leur contenu.
mais lorsque j'exécute la macro, les tableaux restent à leur taille
originale
si je vais dans le code faire F8 (pas à pas) et que je regarde le
tableau entre les instructions, le autofit se fait.
mais en exécution normale, niet
quelqu'un a déjà vu ça ?


Oui c'est assez tordu. Si vous avez des tableaux complexes
et beaucoup de tableaux - je vois que vous écrivez Tables(i) -
le processus de recalcul du tableau qui se fait dans une
autre task n'a pas le temps de s'exécuter avant l'instruction
suivante. C'est pour ça qu'en pas-à-pas ça marche très bien !
Le plus simple serait de dimensionner vos colonnes autrement.


Ou rajouter quelques Doevents ?
Pas testé.

« Le tableau est fini quand il a effacé l'idée. »
- Georges BRAQUE


--
A+