Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Problématique de conservation de valeur à un instant T

Leché

XLDnaute Junior
Bonjour,

Je suis face à une problématique qui me bloque, je m'explique :
Je dispose de 2 fichiers :

Fichier A
--> Onglet A : Saisie d'une date , d'une référence et d'une quantité ;
--> Onglet B : Récupération des valeurs de l'onglet A + recherche V des références saisie dans un fichier B, renvoyant le temps , qui est multiplié par la quantité (saisie onglet A) ;

Fichier B
--> Onglet A : Liste des références et pour chaque référence , un temps définie ;

Le fichier B est MaJ fréquemment.
Cependant je souhaite conserver le temps a l'instant T en "sauvegarde".

Dans l'idée , je pensais figer les lignes (donc le calcul) dans un troisième fichier (Fichier C), qui me sauvegarde les données en brute, lors de la fermeture du fichier A.

Mais je ne voit pas comment compiler les données entre deux saisies. Du moins , comment faire la différence entre ma sauvegarde ayant déjà des données, et ajouter seulement ce qui a été rajouté depuis la dernière sauvegarde, sans modifier les lignes déjà existantes (ce baser sur la date ?).

Ci-joints deux fichiers pour la modélisation des données.

Je suis ouvert à toute proposition, afin de pallier à ma problématique.

Cordialement,
 

Pièces jointes

  • FICHIER A.xlsx
    13.3 KB · Affichages: 3
  • FICHIER B.xlsx
    8.6 KB · Affichages: 3

vgendron

XLDnaute Barbatruc
Hello

Je ne vois qu'une solution par macro
à chaque fois que tu ajoutes des données, la macro va chercher le fichier B pour récuperer les données et inscrire le résultat dans le fichier A

question.. l"onglet B du fichier A: c'est quoi son intérêt??
pourquoi ne pas mettre directement le résultat de la colonne D dans l'onglet A??
 

Leché

XLDnaute Junior

Merci pour ton retour.
L'onglet B, est un onglet "masqué" ajoutant des informations que la personne saisissant les infos dans l'onglet "A" n'a pas besoin de voir. (Pour épurer le fichier) Mais dans l'idée oui, cela revient au même.

J'ai prévu d'utiliser Power Querry pour compiler l'ensemble de mes fichiers justement (car je vais avoir une dizaine de fichier A). Mais en amont je dois garder mes valeurs.

Cdt,
 

vgendron

XLDnaute Barbatruc
En PJ tes deux fichiers avec une macro dans le fichier A
les tableaux de données doivent etre sous forme de table structurée

comme j'ai commencé à travailler avant ton retour, je n'utilise pas l'onglet B, mais directemnet l'onglet A
il te suffit d'adapter si besoin
 

Pièces jointes

  • FICHIER A.xlsm
    32.2 KB · Affichages: 3
  • FICHIER B.xlsx
    9.2 KB · Affichages: 1

Laurent78

XLDnaute Occasionnel
Bonjour,

Si je comprends bien, l'idée est d'historiser les temps.
Une piste : dans le classeur B, j'ajouterai une colonne date de prise en compte (donc plusieurs lignes pour une même "référence"), cela permettrait d'une part de garder une trace de quand le temps affecté à la tâche à été modifié et d'autre part, d'en tenir compte dans le classeur A. En espérant être clair

Du coup, on doit pouvoir faire quelque chose sans VBA et sans PowerQuery (FILTRE, SOMME.SI, SOMMEPROD, etc ....), à creuser
@+
Laurent
 

Leché

XLDnaute Junior
Top , super. (désolé pour le retour aussi tardif)

Après avoir adapter le code, j'ai une erreur sur cette ligne :

.ListColumns("Temps TT").DataBodyRange(i) = Valeur * .ListColumns("QT").DataBodyRange(i) * Valeur


Sais-tu d'où cela peut venir ? (j'ai bien déclaré ma variable Valeur en amont)

Bonne journée,
 

vgendron

XLDnaute Barbatruc
Bonjour

Sans voir ton fichier modifié ni savoir ce que tu as modifié dans le code.. pas facile
mais vu le message "Incompatibilité de type", je dirais que ta colonne "QT" ne contient pas de nombre, mais du texte.. et faire une multiplication avec du texte. bah.. on ne sait pas faire
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…