[VBA] Empêcher redimensionnement TS sur insertion juxtaposée de données

BOnjour le forum,

J'aimerais votre aide, si vous en avez connaissance.

Une procédure insère des données sur une colonne juxtaposée à un TS. Excel fait du zèle et agrandit automatiquement le tableau sur la colonne d'insertion. Peut on empêcher cela et comment ?

Note : Sachant qu'il y a des MFC différentes dans le TS et dans la colonne juxtaposée, une solution visant à re-réduire le TS après insertion ne me convient pas. En effet, il y aura donc eu perte d'une partie des MFC que je devrais réappliquer. Sans compter que la procédure d'insertion peut advenir plusieurs fois par seconde, ainsi, agrandir/réduire ce TS à chaque macro est à la fois gourmand en ressource et sans intérêt...

Note2 : Je souhaite m'éviter de devoir convertir mon TS en plage, le temps de l'insertion, puis reconvertir en TS. Ceci dit, ca me semble une méthode immédiate à coder en 2 lignes.

Un fichier et une image pour illustrer (ce n'est évidemment qu'un exemple minimaliste et simpliste) :

imag
16tomatoketchup.xlsm (17.13 Ko)

Bonsoir Tomato,

Masque ta colonne F, sans données. Et placé tes données sur la colonne G.

Ou bien aussi réduit ta colonne F au minimum comme si tu devais ne rentrer qu'un caractère. Tout en la laissant vide. Puis Inscris uniquement sur la colonne G.

Hello X Cellus, merci de ta réponse. Malheureusement le projet ne le permet pas (structure de la feuille, articulation de TS et de plages, dizaines d'heures de code ..). Je vais préférer une conversion en plage moins pénible pour le coup

Ce ressemble à ca pour info. En surbrillance la zone d'insertion, à gauche un TS, en dessous un TS, à droite une plage dynamique, derrière du code...

emile

A nouveau,

Il faut bien comprendre qu'un TS,

aussi pour les lignes et les colonnes considére que tout ajout limitrophe à la dernière ligne ou la colonne de celui-ci sera partie intégrante du tableau.

Ce qui est intéressant car on n'a pas besoin de restructurer un tableau lors des ajouts. Comme dans un tableau simple

Le revers, il ne pourra pas se comporter comme ce dernier.

bonjour X Cellus, tomato

With Range("tableau8").ListObject
                    .Resize .Range.Resize(, 3)
End With
13tomatoketchup.xlsm (16.06 Ko)

Bonsoir,

il suffit d'aller dans les "options", puis "vérifications", puis "options de correction automatique", puis onglet "Mise en forme..." et décocher "Inclure de nouvelles lignes..."

image

et alors vos tableaux structuré ne s'agrandiront plus automatiquement... Alors en colonne ceci peut vous intéresser mais en ligne cela implique d"aller sur la dernière cellule de la dernière colonne et de "tabuler" pour créer une nouvelle ligne, ou bien alors "tirer" sur la poignée qui se trouve sur la cellule en bas à droite du tableau afin d'ajouter une nouvelle ligne.

Il faut donc choisir le meilleur des choix par rapport à votre utilisation.

@ bientôt

LouReeD

Bonjour Bart,

Tant pis ^^ mais merci les gars. Sujet clos

Bonne soirée

Edit : Bonsoir LouReed, je n'avais pas vu ton message. Intéressant çà ! En revanche, ca s'applique au classeur ou à l'application ?!

Cela s'applique à l'application, donc à voir si cette option est modifiable par VBA :
à l'ouverture vous la supprimez, à la fermeture vous la remettez en place pour ne pas perturber tous les fichiers, ou futur fichier.
Et tant que le fichier sans l'option est ouvert alors le fonctionnement des TS seront touchés, me semble-t-il.

@ bientôt

LouReeD

Edit : le code VBA : Application.AutoCorrect.AutoExpandListRange = True/False, vous pourriez presque le faire à l'activation de la feuille concernée et le remettre à la désactivation.

Bien vu... malin et satisfaisant

Et une spéciale dédicace car je pense que vous reconnaissez votre calendrier perpétuel Grand merci et bonne soirée

Bonsoir,

merci pour votre retour et remerciement !
j'avoue, sur l'image je ne l'avais pas reconnu, mais je le trouvais bien construit !

@ bientôt

LouReeD

Rechercher des sujets similaires à "vba empecher redimensionnement insertion juxtaposee donnees"