[RESOLU] Insérer automatiquement des lignes entre 2 TCD

scoubidou35

XLDnaute Occasionnel
Bonjour à tous,

Nouvelle problématique. Je dois mettre en place un document une sorte de tableau de bords avec des TCD.
L'un en dessous de l'autre avec 3-4 lignes pour séparer les tableaux. C'est pour que ca rentre dans une page A4.

Le problème c'est que maintenant quand je fais une mise à jour le tableau du haut et celui du milieu ont besoins de plus de place. J'ai donc une message erreur à cause du manque de place.

Lors d'une précédente question sur le forum (concernant le rajout de ligne automatiquement dans un tableau)
L'une des propositions me permettait de rajouter des lignes à l'aide d'un bouton qui se décalait à mesure que le tableau grandissait.

N'étant que novice, je m'adresse donc aux pros du code...
Est il possible que lors de l'actualisation des TCD les nombre avoir le même principe.
Je m'explique... quand, je fais une actualisation des 3 TCD en même temps le premier TCD va rajouter le nombre de ligne qu'il a besoin décalant ainsi le second TCD qui fera de même et ainsi de suite.

Voila en gros mon idée. J'espère avoir été assez précis sur mon problème.
Merci à tous
 

scoubidou35

XLDnaute Occasionnel
Je viens de mettre en haut du document les segments des TCD 2 et ok sa marche.

Je masquerai les autres. Par contre je peux supprimer les filtres dans les TCD ?

Petite question, quand il n'y a pas de données dans le TCD (exemple on a pas le champ 10 dans le TCD ITK). Il reste par défaut sur la dernière recherche. Y a t'il moyen de faire que s'il n'y a pas de données alors tableau vide ?

C'est juste pour parfaire.

Merci
 

chris

XLDnaute Barbatruc
RE

Non, par VBA on ne peut pas décocher tous les items d'un segment et, en cas de synchronisation, on ne peut pas comparer avec des items absents.

La synchro de TCD de source différente ne marche bien que si on retrouve les mêmes items.
 

chris

XLDnaute Barbatruc
RE

Je répète : on ne sait quel Segment est cliqué.

Un segment permet la multisélection donc le nombre de possibilités est vite infini

Par VBA le principe est de tout afficher puis désélectionner et non l'inverse puisqu'on ne peux pas tous désélectionner puis sélectionner 0 ou n items.

On peut régler le problème en amont : mettre dans chaque tableau source au moins une ligne, vide de valeurs, pour chaque ville et champ ou bien voir comment synthétiser toutes les sources.

Sinon reprendre le principe de ton #27 mais avec des contrôles d'existence...

Pour ma part j'ai déjà passé beaucoup de temps sur ton cas et là je sature ...
 

scoubidou35

XLDnaute Occasionnel
Merci en tout cas pour ton boulot et merci également à job. J'ai avancé sur mon projet en suivant tes consignes. Le fait que les sources des TCD soient différentes car les lieux n'ont pas commencé en même temps pour l'enregistrement des données dans les bases. C'est pas évident.
Par contre il mets plus de 10 secondes pour exécuter le code. Et je ne comprends pourtant j'ai laissé Ninsert à 100. Mais c'est vrai que les bases de données commence à avoir beaucoup de ligne et il y a 4 TCD. Dès fois il y a des ratées, pourtant je sélectionne bien en premier le lieu puis le champs mais bon, on recommence et ça marche.
Merci encore et désolé si j'ai pu te "saouler"...
A+
 

scoubidou35

XLDnaute Occasionnel
Bonjour à tous,
Je reviens ici car j'ai avancé dans mon fichier mais j'ai un petit souci.
J'ai mis le code de Chris dans ThisWorkBook du fichier pour gérer l'insertion auto de lignes entre mes TCD.
J'ai bien compris que le code est active dès lors qu'au moins 2 TCDS sont présents dans la feuille.
Sauf que dans ma nouvelle feuille il y a une base de donnée d'achats et à droite du tableau j'ai mis 2 TCD l'un à coté de l'autre donc non superposé
et quand j'actualise les TCD je me retrouve avec des lignes masqués à partir du plus petit des TCD et donc si on ne fait pas attention
la personne qui entrera les données sera 100 lignes en dehors du tableau.
Comment y remédier.

Merci d'avance
 

chris

XLDnaute Barbatruc
Re

Le code servant à séparer des TCD l'un au dessus de l'autre, soit tu listes dans un onglet masqué, les onglets concernés et tu lies le code à cette liste soit tu filtres l'onglet non concerné directement dans le code, tout au début
Code:
If Sh.Name = "NomOngletPasConcerné" Then exit sub
 

Statistiques des forums

Discussions
314 663
Messages
2 111 652
Membres
111 248
dernier inscrit
Juliepem