Comment lier des cellules d'un tableau avec les feuilles de calcul

Bonjour !

Je souhaiterais créer un tableau inventaire de toutes nos collections. Pour cela j'ai un tableau principal où tout y est entré. Je voudrais donc créer des feuilles à "thème" : Géologie, fossiles etc... qui sont liées à mon tableau principal de façon à quand on ajoute sur ce tableau une nouvelle donnée, elle s'ajoute automatiquement dans les feuilles souhaitées(ou vice versa si cela est possible) . J'espère avoir été claire ! Voici un exemple de mon fichier.
Merci d'avance !! A bientôt j'espère

Bonjour

Complète ton profil en indiquant ta version Excel

Selon le nombre de thème, faisable par PowerQuery, sinon VBA

Bonjour…

Une proposition avec VBA (fichier .xlsm et non .xlsx)

Le premier tableau BD est filtré selon la Classe (futur nom de feuille) item d’un tableau sans doublon et, l'onglet Classe, est initialisé à sa sélection et réinitialisé en sortant.

Private Sub Worksheet_Activate()
  Dim P As Range
  [C2] = Feuil1.[C2]: Me.Name = [C2] ‘initialisation de l’onglet récepteur (nommé Classe)
  Application.ScreenUpdating = 0 ‘affichage neurailé et repris à la fin de la procédure
  [BD].AutoFilter 5, [C2] ‘filtre du tableau d’origine BD, selon la classe sélectionnée
  Set P = [BD[[Echantillons]:[Référence]]].SpecialCells(12)
  P.Copy [TC].Item(1, 1) ‘copie des 4 premières colonnes visibles après filtre
  [BD].AutoFilter ‘reprise du tableau entier sans effet d’optique
End Sub

Rénitialisation obligatoire pour un nouveau départ de l’onglet récepteur avant la sortie

Private Sub Worksheet_Deactivate()
  If Application.CountA([TC]) > 0 Then [TC].Delete
  Me.Name = "Classe"
End Sub

Comme le souligne Chris (salut), selon de contexte, l’utilisation de PowerQuery pourra simplifier beaucoup d’actions prévues !

Merci beaucoup pour vos réponses !
J'utilise la version Excel de 2007 et je vais avoir 6 thèmes différents. Je vous avoue que je ne connais pas du tout PowerQuery !
Merci Ordonc ! Je débute complétement dans le code ahah , je prends le temps de regarder ton fichier et reviens ici merci !

Bon et bien j'ai regardé ton dossier, malheureusement il ne fonctionne pas comme il faut (c'est peut être moi qui n'arrive pas à le faire fonctionner aussi ...) Il ne se passe pas grand chose sur la feuille "classe" ... Et lorsque je change sur le tableau TC pour n'avoir qu'une classe j'ai un peu de tout

Bonjour

La solution Ordonc fonctionne : tu sélectionnes dans Tableau principal la classe voulue en C2 puis tu passes sur l'Onglet Classe et tu as la liste correspondante

Re ...

Merci Chris.

En général, j’évite d’avoir 36000 onglets de même conception qui ne diffèrent que par leur nom.

Pour ce faire, je procède en suivant les étapes suivantes, en partant de 2 onglets seulement.

Remarque : Les macros sont construites en tenant compte de noms de plages (voir avec Formules et Gestionnaire de noms).

- Création de la liste, sans doublon, des classes connues, en l’intégrant dans un tableau structuré. Il est nommé Tc dans l’exemple donné.

Dans le classeur fourni, il te suffira de copier les différentes classes que tu as déjà (en évitant les répétitions).

Pour prévoir toute autre action que la synthèse d’une classe, j’ai créé la liste de validation en C2 initialisée avec la plage Lf des classes sans le titre (voir, dans les outils de données, Données et Validation des données).

Il n’y a rien à changer. Les noms se mettront à jours avec les modifications du tableau des classes (ajout, modification, suppression et même tri, déplacement ici où là).

- Dans l’onglet de base, la plage étudiée est intégrée dans un tableau structuré nommé BD. Il te suffira d’un copier/coller de ton tableau pour initialiser les contenus. Attention la plage doit être composée de cellules contiguës horizontalement et verticalement !

- Dans l’onglet nommé Classe, on a le tableau nommé TC de 2 lignes dont celle des titres identique à celle du Tableau de base mais sans le dernier (nom de la classe voulue). Il suffira de l’ajuster en fonction du précédent.

Maintenant, il suffit de lancer les macros se dérouleront en 2 étapes : choix de la classe dans la liste déroulante puis activation de la feuille nommée Classe. Pour cette seconde étape j’ai pris simplement le clic sur le nom d’un onglet aller et retour).

Je suppose que tu ne t’arrêteras pas ton étude à cela. Tu auras en autres, la gestion des données générales.

Si celles-ci ne sont pas en nombre gigantesque, tu pourras continuer à utiliser Excel, mais c’est une autre histoire car le niveau requis est assez élevé* …

Bon courage pour la suite, en sachant que tu pourras toujours trouver de l’aide ici.

*si j’étais obligé de mettre une citation en signature, j’écrirais :

« L’ignorance n’est pas un défaut. Elle le devient quand on refuse d’apprendre… ».

Bonjour !

Merci beaucoup vraiment ! Surtout avec ces détails c'est top merci ! Effectivement je n'avais pas activé les macros comme quoi je débute vraiment ... Je vais encore vous embêter (dernière fois !) je vais devoir rajouter des colonnes, comment puis je les ajouter dans le fichier de façon à ce qu'elles apparaissent aussi sur l'onglet "Classe" Dois je rentrer une ligne de code en plus ?

Merci encore

Re …

Les propositions sont faites de façon générale en tenant compte de la demande.

C’est la multitude de variations du contexte qui peut enlever, parfois, l’envie de les traiter .

Pour insérer une colonne dans un Tableau, on clique, bouton droit, sur une de ses cellules.

Si la cellule est dans la dernière colonne, on a, avec l’option Insérer, 2 propositions d’ajout d’une colonne : à gauche ou à droite sinon que la première. Après le choix, il suffit de saisir un nouveau titre.

Dans l’exemple traité, il y a un tableau couplé donc il faudra reporter la nouvelle ligne de titres dans celui-ci et adapter le numéro de la colonne clé. Cela peut être intégré dans la première macro.

Méthode : Clic bouton droit sur le nom la feuille Classe puis Visualiser le code et corriger la première macro ainsi

Private Sub Worksheet_Activate()
 Dim n As Byte, P As Range
 [C2] = Feuil1.[E3]: Me.Name = [C2]
 Application.ScreenUpdating = 0
 [BD].Rows(0).Copy [TC].Rows(0)            'pour adapter la nouvelle ligne de titres
 n = [BD[Classe]].Column - [BD].Column + 1 'colonne du tableau de "Classe"
 [BD].AutoFilter n, [C2]
 Set P = [BD].SpecialCells(12)
 P.Copy [TC].Item(1, 1)
 [TC].Columns(n).Delete                    'suppression de la colonne Classe devenue inutile
 [BD].AutoFilter
End Sub

Merci infiniment !

Je ferai attention les prochaines fois de façon à être plus précise !

A bientôt

Rechercher des sujets similaires à "comment lier tableau feuilles calcul"