Même nombre de lignes dans 2 tables différentes Excel

Bonjour,

J'ai créé 2 tables différentes dans 2 feuilles différentes et la première colonne correspond aux Noms et Prénoms de personnes. Je rentre ces informations dans la 1ère table et la 2eme se contente de récupérer le contenu de la 1ère. Jusque-là, aucun problème. Cependant, lorsque je rajoute une ligne sur ma 1ere table, ma table s'agrandit bien comme il faut mais pas la seconde pour récupérer l'information. Y a t-il un moyen de faire ça?

Ordinairement, je me débrouille avec Excel, mais j'ai pris la fâcheuse habitude de ne pas utiliser les Tables, donc je ne connait pas bien cet outil et j'aimerais y remédier.

Je vous remercie.

Bonne journée

Bonjour et bienvenue à toi,

Le mieux serait de joindre un extrait de ton fichier (dont tu auras, le cas échéant, supprimé les données à caractère confidentiel) ... sinon on va tous interpréter ta demande de manière différente (ou passer notre chemin)

Tu peux aussi regarder du côté de Power Query (onglet Données > Obtenir des données au départ d'un tableau ou d'une plage)

Bonjour styx2005,

Je te propose d'ajouter le code suivant dans le VBA de la feuille contenant le 1er tableau structuré :

Private Sub Worksheet_Change(ByVal Target As Range)
    Const cNomFeuille2 = "Feuil3"   'A adapter
    Const cNomTableau1 = "Tableau1" 'A adapter
    Const cNomTableau2 = "Tableau2" 'A adapter

    Dim oOL1 As ListObject, oOL2 As ListObject
    Dim oBody As Range

    Set oOL1 = ActiveSheet.ListObjects(cNomTableau1)
    Set oBody = oOL1.DataBodyRange
    Set oOL2 = ThisWorkbook.Worksheets(cNomFeuille2).ListObjects(cNomTableau2)

    'On contrôle que la modification a été faite sur le tableau 1
    On Error GoTo NothingToDo
    If ActiveCell.ListObject.Name = cNomTableau1 Then
        If oOL1.DataBodyRange.Rows.Count > oOL2.DataBodyRange.Rows.Count Then
            'Cas où une ligne a été ajoutée dans le tableau 1
            oOL2.ListRows.Add
        Else
            If oOL1.DataBodyRange.Rows.Count < oOL2.DataBodyRange.Rows.Count Then
                'Cas où une ligne a été supprimée dans le tableau 1
                oOL2.ListRows(oOL2.ListRows.Count).Delete
            End If
        End If
    End If
NothingToDo:
    On Error GoTo 0
End Sub

Et de l'adapter pour le nom de la feuille 2, le nom du tableau 1 et le nom du tableau 2.

Je joins mon classeur de test,

Voici le lien vers le fichier en question : c'est une copie donc j'ai laissé l'accès avec modification : (il se trouve que je ne peux visiblement pas encore poster le lien sur le forum car je n'ai pas assez d'ancienneté, je vous envoi ça en message privé)

Pour le moment, vous constaterez que j'ai mis des tableaux dans les feuilles Prescription, Présence et Bilan mais chaque feuille est vouée à subir la même punition.

Merci Gvialles mais le fichier est destiné à être utilisé par plusieurs personnes, potentiellement en même temps donc je suis contraint d'utiliser la version en ligne de Excel afin de pouvoir intervenir à plusieurs à la fois. Et d'après ce que je connais, il n'est pas possible d'utiliser de macro et donc VBA. Toutefois, si vous me dîtes que j'ai tort, je serais très heureux de pouvoir utiliser des macros.

Pour finir, je reformule en fonction des données du tableau si ça aide à ce que ma situation soit moins flou.

C'est la feuille Prescription qui pilote une bonne partie des cellules des autres feuilles. Quand on inscrit un stagiaire dans cette feuille, il se rapporte sur l'ensemble des feuilles. Dans le tableau Prescription, celui ci grandit tout seul et prolonge les formules dès que j'ajoute un nom. Cependant, les autres tableaux ne changent pas de taille en fonction de cette nouvelle information. Sachant que ce tableur n'ai pas pour mon utilisation personnelle mais pour aider mes collègues dans leur travail afin de leur faciliter la tâche sachant qu'ils ne sont pas spécialement à l'aise avec les formules dans Excel, c'est pourquoi, je souhaite leur simplifier la tâche au maximum.

Je vous remercie pour vos éclaircissements. Bien sûr, si vous me dîtes que ce n'est pas possible, je n'aurais plus qu'à leur dire d'apprendre à agrandir le tableau manuellement.

Bonjour,

J'ai reçu le fichier via la messagerie privée et peux le déposer ici (si tu confirmes que les noms ont été anonymisés !?)
Dans ce type de situations, on n'a guère besoin que d'une ou deux feuilles qui représentent la structure et illustrent la demande. Le fichier serait donc plus "léger". Je peux "élaguer" aussi, après ta confirmation.

Oui oui, vas-y, tu peux.

Re-bonjour,

Je ne sais pas pourquoi je posais la question de la confidentialité : j'ai conservé les seuls prénoms (qui suffisent ici)
J'ai aussi supprimé plein de feuilles et de colonnes.

De ce que j'ai compris, tu as un "tableau structuré " dans la feuille Prescription. Dans cette feuille, la tableau se redimensionne donc à mesure que tu ajoutes/supprimes des lignes. Tu voudrais que dans chaque autre feuille du classeur, la liste des noms-prénoms se recopie à l'identique (en s'étendant ou se réduisant).

J'ai ajouté une formule dans une feuille que j'ai nommée "Test ". La formule est copiée jusqu'en ligne 30 (il suffit de la copier vers le bas sur un nombre de lignes que tu n'atteindras pas). Ce n'est sans aucun doute qu'une des solutions possibles.

Ceci étant, j'ai bien vu que tes feuilles étaient protégées, mais avec une solution telle que celle que tu mets en place, le risque existe tout de même que quelqu'un ajoute, supprime, permute des lignes ... les données que tu aurais encodées en regard d'une personne (et celles plus bas) seraient décalées et ton fichier irrémédiablement bousillé !

Ceci étant, j'ai bien vu que tes feuilles étaient protégées, mais avec une solution telle que celle que tu mets en place, le risque existe tout de même que quelqu'un ajoute, supprime, permute des lignes ... les données que tu aurais encodées en regard d'une personne (et celles plus bas) seraient décalées et ton fichier irrémédiablement bousillé !

Oui, j'en ai conscience, mais je ne sais pas comment protéger à ce point sans les empêcher d'écrire dans le document, cela en utilisant la version en ligne.

J'ai ajouté une formule dans une feuille que j'ai nommée "Test ". La formule est copiée jusqu'en ligne 30 (il suffit de la copier vers le bas sur un nombre de lignes que tu n'atteindras pas). Ce n'est sans aucun doute qu'une des solutions possibles.

Par contre, de cette façon, les tableaux dans les feuilles suivantes ne sont plus structurés, n'est ce pas?

Re,

Il n'y avait pas de tableaux dans les feuilles Janvier à Décembre !?

Peut-être qu'il vaut mieux scinder la partie encodage de la partie synthèse et consolidation ? Et puis les listes de noms-prénoms ne vont pas évoluer à un rythme d'enfer, si ?

Je ne sais pas non plus à quoi servira la feuille "Présence" qui ne reprend qu'une semaine (et si elle est destinée à la saisie de données, à quoi servent les feuilles mensuelles ?)

Bref, la question à se poser est plutôt : ne faut-il pas repenser la structure même du fichier ?
Ce n'est que mon avis, évidemment ! N'en tire pas de conclusion définitive Il me semble que j'ouvrirais un nouveau sujet, en expliquant ce que tu cherches à faire pour "ouvrir les possibles", même si je conçois que la démarche est difficile.

Styx2005 tu as parfaitement raison: dans la vesion en ligne d’excel, les macros VBA ne sont pas (encore…?…) prises en charge.

Plus plus de détails: https://excellons.org/office-scripts-introduction/

Il s’agit donc de convertir en office-script le code VBA proposé.

Dis-moi si tu as besion d’aide…

Rechercher des sujets similaires à "meme nombre lignes tables differentes"