Tableau Excel alimentant un second

Bonsoir à tous,

Je suis face a un problème sur excel et j'aimerais solliciter vos connaissances si jamais cela est possible.

Je travaille sur 2 tableaux excel.

le premier tableau qui est un récap des commandes passées dans ma société est alimenté par mes collègues.

le second sur lequel je travaille reprend une partie des colonnes du premier.

mes collègues sont sensées compléter le tableau 2 également mais elles oublient .

Afin d'éviter les oublis je suis donc obligée de repasser sur ce tableau régulièrement et je perd du temps.

je voulais donc créer mon deuxième tableau dans un deuxième onglet du premier tableau et le faire alimenter automatiquement.

J'ai donc fait un copié collé du premier tableau dans mon deuxième onglet en faisant copier avec liaison.

c'est parfait puisque les cellules que je modifie dans le tableau 1 se modifient dans le tableau 2.

MAIS…. et oui il fallait bien un MAIS…. si mes collègues ajoutent une ligne dans le premier tableau pour ajouter une commande, cette insertion de ligne ne se fait pas dans le deuxième tableau…

y a t il une solution pour que ce soit possible?

merci d'avance pour votre aide

Bonjour et

Je pense qu'il vaut mieux procéder par extraction des colonnes qui t'intéressent via un filtre avancé. Et ensuite répercuter sur le premier tableau les modifications que tu apportes.

  • As-tu une trame de ton fichier ?
  • Quelles sont les colonnes susceptibles d'être modifiées ?

Sujet "approchant" : les données sont extraites, et les modifications (sur une seule colonne ici) sont rajoutées à la feuille-"maître" :

https://forum.excel-pratique.com/viewtopic.php?p=874649#p874649

Bonjour et merci pour ta réponse.

je te joins les deux tableaux pour que ce soit plus facile.

dans le premier WINTER, mes collègues rentrent tous les détails de leurs commandes pour une saison.

Elles les rentrent au fur et a mesure qu'elles les reçoivent donc ce tableau voit son nombre de lignes accroitre au fil des semaines/ mois…elles insèrent de nouvelles lignes a chaque fois qu'une nouvelle commande est créee

Dans le deuxième tableau, celui sur lequel je dois travailler, elles rentrent certaines informations identiques aux infos du premier tableau, et moi, au fur et a mesure que les commandes sont livrées je le complète.

le problème c'est que dans le premier tableau il y a souvent des modifications.

déjà il y a de nouvelles commandes qu'elles oublient parfois de rentrer dans le deuxième tableau, mais aussi des commandes annulées, des quantités changées, des dates de livraison modifiées.

en l'état des choses je n'ai pas le moyen de m'assurer que les infos entre ces 2 tableaux sont totalement identiques si ce n'est en repassant ligne par ligne ou en faisant le total des quantités sur chaque tableau pour vérifier que c'est toujours pareil.

et c'est source d'erreur qui peuvent être très embêtantes.

j'ai essayé de faire une copie du tableau 1 avec liaison. en faisant cela toute info modifiée dans le tableau winter se met a jour dans mon tableau livraison mais si une nouvelle commande est insérée, ca ne la prend pas en compte.

alors franchement si tu pouvais m'expliquer comment réussir a avoir ces 2 tableaux reliés ce serait magnifique!

merci d'avance

9livraisons.xlsx (28.28 Ko)
12winter.xlsx (64.42 Ko)

Bonjour Abipea, Steelson

Pour commencer, pourquoi utiliser 2 fichiers si vous avez un problème de cohérence !?

Il est simple de donner l'accès à une seule feuille pour la saisie des commandes

@+

Bonjour Bruno,

merci pour ton retour.

je ne peux pas faire un seul tableau.

c'est comme ça dans cette société et ils ne veulent pas changer.

je ne pense pas qu'ils aient conscience que ce soit une source d'erreur.

d'autre part le tableau 1 est utilisé par un service et le tableau 2 par un autre

dans le premier WINTER, mes collègues rentrent tous les détails de leurs commandes pour une saison.

Elles les rentrent au fur et a mesure qu'elles les reçoivent donc ce tableau voit son nombre de lignes accroitre au fil des semaines/ mois…elles insèrent de nouvelles lignes a chaque fois qu'une nouvelle commande est créee

Dans le deuxième tableau, celui sur lequel je dois travailler, elles rentrent certaines informations identiques aux infos du premier tableau, et moi, au fur et a mesure que les commandes sont livrées je le complète.

le problème c'est que dans le premier tableau il y a souvent des modifications.

2 fichiers, cela change un peu la donne.

Est-ce que les informations modifiées sur le second fichier doivent être répercutées sur le premier ?

merci pour ton retour

deux fichiers c'est mieux mais si c'est deux onglets dans un fichier ce n'est pas grave.

ce sera toujours mieux que 2 fichiers totalement indépendants.

le deuxieme fichier n'a pas besoin de remettre a jour le premier.

uniquement le premier qui alimente le deuxieme

Re,

deux fichiers c'est mieux mais si c'est deux onglets dans un fichier ce n'est pas grave.

ce sera toujours mieux que 2 fichiers totalement indépendants.

le deuxieme fichier n'a pas besoin de remettre a jour le premier.

uniquement le premier qui alimente le deuxieme

Vous n'avez pas dû me comprendre au post précédent

C'est ce dont je voulais parler mais ce n'est pas grave, vous êtes entre de bonnes mains

Je prends, mais je vais avoir quelques questions de compréhension pour proposer une solution intéressante (et simple).

Les questions tomberont demain à 4h ou 5h si je fais la grasse matinée

Désolée Bruno! En effet en relisant le mail précédent j ai répondu à côté!

Je suis très très nulle sur Excel donc forcément ca n’arrange pas la compréhension...

Pas de problème pour les questions vers 4/5h steelson... je serai dispo...

Bonjour,

Mes quelques questions :

  • As-tu un exemple des 2 fichiers ?
  • Quand tu recopies du fichier 1 vers le fichier 2, est-ce que tu écrases donc les informations que tu avais modifiées ?
  • Y a -t-il un identifiant de chaque ligne ? est-il unique (sinon ce n'est pas identifiant) ou doit-on prendre en compte une autre informations pour identifier la ligne, comme un indice, une date, etc. ?

Bonjour,

• Je t’ai inclus les deux fichiers dans ma réponse un peu plus haut.

C est vraiment ceux avec lesquels je travaille.

Je peux te les renvoyer sans problème si jamais tu ne peux pas les ouvrir.

• Le fichier 1 est le fichier le plus important.

C est celui que mes collègues mettent à jour.

Il reprend toutes les commandes de la société, de leur création à leur livraison dans notre entrepôt.

Il est donc très complet: numéro de cde, réf, qte, prix, fournisseur, date de production, date de départ fournisseur, mode de paiement etc,...

Moi je suis à la logistique je n ai pas besoin de toutes ces infos. Par contre je dois renseigner quand part la marchandise de chez moi pour aller chez le client et comment.

Je dois avoir le numero de cde, qte, date de livraison chez mon client mais je ne veux pas du prix, mode de paiement etc... donc ces colonnes sont supprimées.

Par contre je dois ajouter d’autre infos: le nom de mon transporteur , la date de départ etc.

Donc si dans mon tableau 1 des infos sont modifiées plusieurs fois il faut Qu elles soient toujours modifiées dans le tableau 2. Elles n’écraserait pas ce que je remplis puisque les infos que je remplis sont dans des colonnes qui n’existent pas dans le tableau 1.

• n’y a pas d’identifiant par ligne. Mais Chaque ligne est une commande. Elle a donc un numéro de commande propre, une réf, un numéro de cde client etc...

J’espère t’avoir aidé avec ces réponses

A dispo si tu as besoin d’autres infos

Merci beaucoup pour ton aide

merci

je regarde dans la journée

CONFIRMED DELIVERY DATE est bien une information qui vient du fichier des commandes ?

Il n'y a pas le même nombre de lignes, qu'est-ce qui fait que les lignes sont ensuite supprimées ? quel critère ?

On pourrait recopier à l'identique les lignes (en respectant les colonnes dupliquées), mais est-ce qu'en amont on peut insérer des nouvelles lignes ou en supprimer ... ?

Alors:

Oui confirmed delivery date vient bien du tableau 1

Normalement il y a le même nombre de lignes dans les 2 tableaux car ils reprennent tous les 2 les mêmes commandes c est juste que les 2 tableaux étant protégés je t’ai fait des copié collé dans deux feuilles Excel et je n ai pas repris le même nombre de lignes pour les 2, désolée.

Il est fréquent que des lignes soient ajoutées en plein milieu du tableau.

En fait les commandes sont classées par fournisseur. Par exemple ligne 1 à 25 fournisseur 1, ligne 27 à 49 fournisseur 2.

Si une nouvelle commande arrive pour le fournisseur 1 ma collègue va insérer une ligne apres la ligne 25 etc...

Il est fréquent que des lignes soient ajoutées en plein milieu du tableau.

C'est là la grande difficulté, il faut donc regarder s'il s'agit d'une ligne nouvelle ou pas t y ajouter les valeurs de 4 colonnes du fichier 2.

OK c'est noté.

Proposition ... teste bien car j'ai fait des modifications de dernière minute !

Pour éviter de perdre des données,

  • je conserve l'ancien onglet (le dernier)
  • je recrée un nouvel onglet en important les données du premier fichier et en ajoutant les colonnes supplémentaires renseignées
  • de plus, je compare les données et je mets sur fond jaune les éventuelles évolutions (quantité, date etc.)

Tu peux ensuite épurer de temps en temps ton fichier en supprimant les premiers onglets. Ce qui importe, c'est ec que tu as écrit dans le dernier onglet.

Lance la macro import par Alt+F8, elle te demandera de choisir le "fichier 1". C'est tout.

Option Explicit
Option Base 1

Sub import()
'                                           importation      ancien           nouveau
Dim Nom_Fichier As Variant, wb As Workbook, tbl1 As Variant, tbl2 As Variant, tbl3 As Variant, col() As Variant, i%, j%, k%

    ' numéro des colonnes à importer, si 0 on passe
    col = Array(0, 22, 3, 4, 5, 6, 7, 8, 9, 10, 11)

    Nom_Fichier = Application.GetOpenFilename("Fichiers Excel (*.xlsx), *.xlsx")
    If Nom_Fichier = False Then Exit Sub

    Set wb = Workbooks.Open(Nom_Fichier)
    tbl1 = wb.ActiveSheet.UsedRange.Value
    wb.Close
    tbl2 = Sheets(Sheets.Count).UsedRange.Value
    Sheets.Add after:=Sheets(Sheets.Count)

    ' clonage, réserve de 4 colonnes pour reprendre les données pré-inscites
    ReDim tbl3(1 To UBound(tbl1), 1 To UBound(col) + 4)
    For i = 1 To UBound(tbl1)
        For j = 1 To UBound(col)
            If col(j) <> 0 Then tbl3(i, j) = tbl1(i, col(j))
        Next
    Next

    ' mise en exergue des différences et mise en place des 4 dernières colonnes
    For i = 1 To UBound(tbl3)
        For k = 1 To UBound(tbl2)
            If tbl3(i, 4) = tbl2(k, 4) And tbl3(i, 6) = tbl2(k, 6) And tbl3(i, 7) = tbl2(k, 7) Then
                For j = 1 To UBound(col)
                    If tbl3(i, j) <> tbl2(k, j) Then Cells(i, j).Interior.Color = 65535
                Next
                For j = UBound(col) + 1 To UBound(col) + 4
                    tbl3(i, j) = tbl2(k, j)
                Next
            End If
        Next
    Next

    ' copie des résultats et de l'en-tête colorée
    Range("A1").Resize(UBound(tbl3), UBound(tbl3, 2)) = tbl3
    Sheets(Sheets.Count - 1).Rows(1).Copy Destination:=ActiveSheet.Range("A1")
    Cells.EntireColumn.AutoFit

End Sub
8livraisons.xlsm (36.86 Ko)

Nota: s'il faut récupérer les données sans ouvrir le fichier, je pense que c'est possible mais il faut que je modifie.

Essaie déjà comme ça.

bon….

alors…. forcement comme je suis super nulle tu te doutes bien que ce que tu viens de m'expliquer est aussi clair que du chinois...

j'ai ouvert le fichier que tu as joint qui est le fichier sur lequel je travaille habituellement

j'ai lancé le macro et selectionné import mais la je n'ai pas en choix le tableau numero 1 que mes collègues remplissent.

du coup je t avoue que je suis totalement perdue.

est ce que ce que tu viens de m'envoyer sera un onglet dans leur tableau ou un fichier a part et comment sera t il lié au tableau 1?

desolee pour ces questions qui doivent te paraitre d'un niveau amateir mais c'est bien a ce niveau que je suis

Rechercher des sujets similaires à "tableau alimentant second"