Recopie de valeurs en Vba entre deux feuilles de taille différentes

smash

XLDnaute Nouveau
Bonjour à tous,

Mon problème est le suivant :

J'ai un classeur avec 2 feuilles -> Prévu et Réalisé
La feuille Prévu contient des données qui seront figées dans le temps (pas de suppression/insertion possible)
C'est donc une base de données fixe qui va servir de référence.

La feuille Réalisé va toujours reprendre l'intégralité des lignes de la feuille Prévu sauf qu'ici il pourra avoir des nouvelles lignes (pas de suppression possible). En faites les données proviennent d'une source externe et l'utilisateur fait un copier-coller des valeurs dans cette feuille.

Sur cette feuille Réalisé j'ai besoin de reporter les valeurs de la colonne "cout total" présentes dans la feuille Prévu et ceci pour chacune des lignes correspondantes avec comme référence la position de la ligne et le nom en A.
Mon problème est que justement le nombre de lignes va varier et en plus j'ai des doublons dans la première colonne qui sert de référence entre les deux feuilles.

L'idée sera alors de faire une comparaison des deux feuilles, d'identifier les nouvelles lignes dans Réalisé et faire la copie des valeurs en excluant ces nouvelles lignes du traitement.
Il est je pense nécessaire de rendre la référence unique mais comme il y a des nouvelles lignes par la suite dans la feuille Réalisé je ne sais pas comment maintenir cette correspondance entre les deux feuilles.
En définissant la référence comme unique un recherchev du coup pourrait fonctionner.

Ce traitement devra être ensuite intégré dans un code vba car cela doit être automatisé.

D'avance merci pour votre aide :p
 

Pièces jointes

  • exemple.xlsx
    11.7 KB · Affichages: 37
  • exemple.xlsx
    11.7 KB · Affichages: 43
  • exemple.xlsx
    11.7 KB · Affichages: 40

sh4mbala

XLDnaute Nouveau
Re : Recopie de valeurs en Vba entre deux feuilles de taille différentes

Oi smash!

Après avoir regardé ton classeur j'ai pensé qu'il y avait quelques modifs à faire (j'espère que je ne me trompe pas! ^^)

La première chose c'est que tes données ne sont pas "hiérarchisées" et cela crée des soucis même au niveau de tes totaux/sous-totaux. Si je prend l'exemple dans le prévu, les travaux 1 totalisent 320 heures, alors que si on additionne le détail des heures des postes Mr1, Mr2, Mr3 et M1, M2 et M3 on obtient un total de 80. Comme tu peux le remarquer, dans tes totaux tu additionne tes sous-totaux et de ce fait tes résultats sont apparemment erronés.

La solution à tout ça peut être de hiérarchiser tes infos. Comme tu peux le voir dans la feuille "Réalisé" sur le fichier que je t'up, chaque poste appartient à un "Travail", à une "Tâche" et à un "Equipement". Ainsi, chaque poste est unique et cela nous permet de tout remettre en forme sans se tromper avec un TCD (voir feuille "Réalisé TCD").

Pour le problème des additions, j'ai ajouté une colonne Clef (la colonne G en gris) qui concaténère (pas français ce mot... ^^) les colonnes de A à D afin de créer un identifiant unique pour chaque poste. La technique paraît un peu barbare, mais somme toute assez efficace pour peu que chaque travail et tâche soit identifié sans doublon. Ainsi, si tu utilises la même technique pour prévu, tu pourras additionner sans problème tes lignes et ce dans n'importe quel ordre car chaque ligne sera unique. Un passage par un TCD te permettras alors de remettre tout ça en forme pour que ce soit plus lisible.

Bon, j'espère ne pas avoir été trop brouillon dans mes explications et t'avoir aidé un peu! ;)
 

Pièces jointes

  • exemple.xlsx
    20.4 KB · Affichages: 41
  • exemple.xlsx
    20.4 KB · Affichages: 45
  • exemple.xlsx
    20.4 KB · Affichages: 44

smash

XLDnaute Nouveau
Re : Recopie de valeurs en Vba entre deux feuilles de taille différentes

Salut,

Merci pour cette réponse rapide et je te rassure assez claire.
Pour les sous totaux / totaux finaux en effet il y a une erreur de ma part quand j'ai construit cet exemple.

Mon fichier réel fait plusieurs centaines de lignes en réalité et l'agencement des données doit être conservé car j'ai d'autres macro par la suite qui effectuent des regroupements. L'idée de hiérarchisation est cependant intéressant :) Je vais essayer de creuser dans ce sens.
Par contre la mise en œuvre risque d'être assez complexe et lourde c'est pourquoi je réfléchissais plutôt à une solution en Vba.

Merci
 

sh4mbala

XLDnaute Nouveau
Re : Recopie de valeurs en Vba entre deux feuilles de taille différentes

Après je me doute que ça ne doit pas être facile d'adapter tout ça, mais disons que ça pourrait sans doute être bénéfique sur le long terme (après je ne connais pas la situation concrètement donc je m'avance un peu ^^) car le fait d'avoir des postes uniques et sans doublons te permettrait de gérer tes données comme tu veux, sans trop de prendre la tête. D'autant plus, et ça j'en ai bouffé pas mal malgré ma jeune carrière :D, l'empilement de macros VBA peut devenir un vrai casse tête dès qu'une erreur se présente...

Du coup pour ton problème, je reste un peu impuissant car je vois pas comment faire ça (identifier chaque poste de "Prévu" pour le copier sur la feuille "Réalisé") sans différencier chaque M1, M2, Mr1, Mr2 etc.
 

Discussions similaires

Réponses
16
Affichages
466
Réponses
8
Affichages
357

Statistiques des forums

Discussions
312 111
Messages
2 085 392
Membres
102 882
dernier inscrit
Sultan94