XL 2021 Ajout ligne au TS1 colonnes B:Q et pousser le TS2 en colonnes T:U vers le bas

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Orson83

XLDnaute Impliqué
Bonjour à tous,
Je rencontre un problème de décalage entre 2 tableaux structurés (TS). En effet, le Tableau1 est en B4:Q26 (en haut à gauche) et le Tableau2 est en T32:U48 (en bas à droite). Quand j'insère une ligne dans le Tableau1, je ne parviens pas à faire descendre le Tableau2 en même temps. Ceci posera problème quand mon Tableau1 occupera les lignes de 32 à 48. Exemple : mon Tableau1 occupe les lignes de 4 à 48. Si dans le futur, je supprime une ligne de 32 à 48, je supprimerai aussi les informations de mon Tableau2. L'idée est de pouvoir ajouter une ligne dans mon Tableau1 et de décaler aussi mon Tableau2 de 1 ligne (vers le bas). Je joins un fichier test dans ce post. Merci pour votre aide.
 

Pièces jointes

Solution
ca donne ce code
VB:
Sub AjoutLigne()
Dim TS As ListObject

Set TS = Sheets("Données").ListObjects("Tableau1")

With Sheets("Données")
    LastLine = TS.ListRows.Count + TS.Range.Row + 1
    .Rows(LastLine).Insert xlDown
    Set Oldrange = TS.Range
    TS.Resize Oldrange.Resize(Oldrange.Rows.Count + 1)
End With

MsgBox "Nouvelle ligne ajoutée au tableau 1.", vbInformation
End Sub
Bonjour,
"mettre un TS par onglet?" (configuration très fortement conseillée lorsque qu'on utilise des tableaux dynamiques....)
Bonjour Cousinhub, le forum,
Cette proposition est certainement plus prudente, mais il s'agit de mon tableau de bord et les informations du Tableau2 sont importantes pour gérer les infos du Tableau1. Malheureusement, je ne vois pas d'autres solutions que de le laisser ici 😉
 
ca donne ce code
VB:
Sub AjoutLigne()
Dim TS As ListObject

Set TS = Sheets("Données").ListObjects("Tableau1")

With Sheets("Données")
    LastLine = TS.ListRows.Count + TS.Range.Row + 1
    .Rows(LastLine).Insert xlDown
    Set Oldrange = TS.Range
    TS.Resize Oldrange.Resize(Oldrange.Rows.Count + 1)
End With

MsgBox "Nouvelle ligne ajoutée au tableau 1.", vbInformation
End Sub
 
ca donne ce code
VB:
Sub AjoutLigne()
Dim TS As ListObject

Set TS = Sheets("Données").ListObjects("Tableau1")

With Sheets("Données")
    LastLine = TS.ListRows.Count + TS.Range.Row + 1
    .Rows(LastLine).Insert xlDown
    Set Oldrange = TS.Range
    TS.Resize Oldrange.Resize(Oldrange.Rows.Count + 1)
End With

MsgBox "Nouvelle ligne ajoutée au tableau 1.", vbInformation
End Sub
Merci beaucoup. Je testerai ta proposition à mon retour et je reviendrai vers toi. A plus 😉
 
ca donne ce code
VB:
Sub AjoutLigne()
Dim TS As ListObject

Set TS = Sheets("Données").ListObjects("Tableau1")

With Sheets("Données")
    LastLine = TS.ListRows.Count + TS.Range.Row + 1
    .Rows(LastLine).Insert xlDown
    Set Oldrange = TS.Range
    TS.Resize Oldrange.Resize(Oldrange.Rows.Count + 1)
End With

MsgBox "Nouvelle ligne ajoutée au tableau 1.", vbInformation
End Sub
Super ! Tout fonctionne correctement. Merci encore et bonne soirée ainsi qu'à Cousinhub 😉
 
Bonjour,

Exemple : mon Tableau1 occupe les lignes de 4 à 48. Si dans le futur, je supprime une ligne de 32 à 48, je supprimerai aussi les informations de mon Tableau2.
Il n'y a aucune raison pour que la suppression d'une ligne dans un de tes TS supprime aussi une ligne dans l'autre TS.
Un des avantages des TS est qu'ils sont indépendants les uns des autres.

Si Phil voit ça, il va encore avoir mal à son TS... 😕
 
Dernière édition:
Bonjour à tous

Si @Phil voit ça, il va encore avoir mal à son TS... 😕
Tu as raison TFB, mais j'ai fait un fichier avec un exemple dans son précédent fil et soit @Orson83 ne la pas ouvert soit il n'a rien compris au fonctionnement des TS

@Orson83

Pour rappel quand on supprime ou ajoute une ligne d'un TS on ne modifie pas les colonnes qui sont en dehors du tableau
Excel décale SEULEMENT les lignes qui sont en dessous du TS

Regarde bien la ligne jaune


1740091470224.png


Si J'ajoute 10 lignes au TS1 j'obtiens ceci
1740091594742.png


Rien ne se passe dans le TS2 (il n'a pas bougé)
C'est juste les lignes en dessous du TS1 qui se sont décalé ET UNIQUEMENT celle ci ==> Regarde bien la ligne jaune

Si maintenant je supprime 4 lignes du TS1
1740091914403.png
==>
1740092037640.png

Avec les images c'est plus parlant mais encore il faut comprendre ce que j'ai fait !!!!

Mais j'ai bien peur de m’être fatigué pour rien !!!! 🤣 😳

Donc pour moi sa question est inutile et ne sert à rien....

Bonne lecture
 
@Orson83
Et si tu prends l'idée saugrenue de mettre ton TS2 dessous le TS1 et à cheval

Regarde la pièce jointe 1213416
Tu auras ce message si tu ajoutes ou supprimes des lignes

Regarde la pièce jointe 1213415

C'est vraiment ballot donc à quoi sert ta question ????? 🤣
@Phil69970 , @TooFatBoy,
Apparemment , je dois me justifier, ce que je déteste faire. Veuillez garder à l'esprit que c'est un fichier test qui ne reflète pas exactement mon fichier de travail. Pour mémoire, mon souhait est de faire évoluer le bloc (texte 2 + texte 3 + TS2) vers le haut ou le bas suite à l'ajout ou à la suppression de lignes dans mon TS1. vgendron a répondu favorablement à ma demande et j'ai résolu ce fil de discussion. Normalement la discussion aurait dû s'arrêter là.
Je ne comprends pas ce déferlement de bêtises qui ne font rien avancer. Vous outrepassez votre plaisir d'aider les gens en demande de solution, en polimiquant sur des sujets qui n'en sont pas. Je vous serez reconnaissant de passer à autre chose quand un sujet est résolu. Il y a d'autres personnes à aider au lieu de perdre votre temps ici.
Je vous souhaite une bonne journée.
François (et non, ce n'est pas Orson, comme quoi les choses ne sont pas toujours ce que l'on croit 😉)
 
Dernière édition:
@Orson83

C'est pas une question de justification c'est simplement un bon usage d'un TS qui rend inutile voir impossible ta question, à savoir excel t’empêche de supprimer/ajouter une ligne d'un TS si cela impacte un 2eme TS et y compris si tu veux supprimer/ajouter une ligne entière qui impacte un 2eme TS

Ceci posera problème quand mon Tableau1 occupera les lignes de 32 à 48. Exemple : mon Tableau1 occupe les lignes de 4 à 48. Si dans le futur, je supprime une ligne de 32 à 48, je supprimerai aussi les informations de mon Tableau2.
C'est impossible que tu puisses faire cela car excel te l'interdit.
 
Apparemment , je dois me justifier
Il n'est absolument pas question de te justifier.

Perso je te faisais juste remarquer que ce que tu disais était faux : supprimer une ligne d'un TS ne supprime pas en même temps une ligne d'un autre TS situé à côté.


Je ne comprends pas ce déferlement de bêtises qui ne font rien avancer.
Je ne sais pas si faire remarquer à quelqu'un qu'il a écrit quelque chose de faux est de la bêtise, mais en tout cas je crois que ça peut éventuellement être utile pour des personnes découvrant Excel ou les Tableaux Structurés et lisant le sujet.


Bonne journée
🖖
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
695
Retour