Recherche et Archivage

Je suis débutant en VBA et j'aurai besoin d'aide

Je vous ai joint le fichier.

Je m’explique j’aimerai archiver les valeurs de l’onglet « BU » dans l’onglet « Archives ».par gamme et par mois (P09 septembre)

Exemple de ce que la macro devrait faire :

Onglet BU, (B6) elle copie de F8 à Q08, elle va sur l’onglet Archives et retrouve la Gamme(dans la colonne A et vient coller sur la 1ere ligne vide de C à N de cette gamme.

Pouvez-vous m’aiguiller pour que je choisisse la meilleure solution ?

Merci beaucoup

PErsonne pour m'aider

Salut,

Je veux bien t'aider, mais il faut que l'on arrive à se comprendre

Pour commencer soit bien précis. D'après moi le texte MIDLUM MR50 est dans la cellule B7 et non pas en B6 et es-tu certain de vouloir copier la ligne exemple de F8 à Q08 et non pas seulement de F8 à Q8 ?

Ensuite combien de "Gamme" as-tu au maximum ? 3 comme sur ton exemple ou il peux y en avoir plus ? Donc faut-il traiter uniquement les cas MIDLUM MR50 ou tous les cas "Gamme" possibles ?

Et à quel moment veux-tu lancer la macro ?

A te relire.

Bonsoir

Dsl je n'ai pas l'habitude au forum c'est vrai qu'il faut que je soit précis.

Il est bien dans la colonne B7, il faudrait copier la ligne de F8 à Q8 et vous avez raison je n'ai pas qu'une gamme mais une bonne trentaine dans le vrai fichier et il faut traiter tous les cas.

Je pensais demander de l'aide pour le premier cas et dupliquer cette macro en fonction du nombres de gammes

Cette macro me serait très utile car aujourd'hui j'archive toutes ces données à la main

MErci beaucoup de votre coup de main

okidoki69 a écrit :

c'est vrai qu'il faut que je soit précis.

… et que tu répondes à toutes les questions que l’on te pose

Je t’avais demandé quand veux-tu lancer la macro qui actualiserait la feuille «archives» ?

  • Par une macro événementielle (tout se fait automatiquement sans que tu t’en rendes compte) à chaque fois que tu modifies des données de la plage F6:Q6 par rapport à la gamme « DE CONSTR », de la plage F8:Q8 par rapport à la gamme « MIDLUM MR50 », etc., etc. ???
  • Lorsque tu le décideras en cliquant par exemple sur un bouton ?
  • Lorsque tu sélectionneras la feuille « Archives » ?
  • ????

Et pour continuer à essayer de comprendre :

  • Lors de la réactualisation, la valeur de la cellule K8 de la feuille « BU », elle doit être placée dans quelle cellule de la feuille «Archives» (et sur quels critères) ?
  • Et la valeur de la cellule Q8 de la feuille « BU », elle doit être placée dans quelle cellule de la feuille « Archives » (et sur quels critères) ?

A te relire.

Oups

POur le lancement de la macro un bouton serait le top .

La valeur de la céllule K8 doit être placée sur le même mois dans l'onglet Archive c'est à dire: 06 (juin) donc en colone H et sur la 1ere ligne vide qui'il trouve si c'est possible.

Pour Q8 c'est la même chose, sauf que c'est le mois 12 (décembre) donc la valeur doit aller en colonne N et sur la 1ere ligne vide qu'il trouve .

Voici un essai. Comme mon code recherche la prochaine ligne vide dans la colonne C de la feuille Archives, j'y place des 0 s'il n'a pas de valeur dans le tableau de base.

Pour l'instant aucun garde-fou n'a été prévu. A voir ce qui est nécessaire à l'usage.

A te relire.

34testi-v1.xlsm (25.71 Ko)

Merci beaucoup je vais pouvoir adapter tout ca à mon vrai fichier. C'est super sympa .

Tu as fait un heureux

Je ne comprends pas pourquoi je n'arrive pas à l'adapter à mon fichier.

Pouvez vous regarder sur la macro "report" ce qui cloche.?

18combud12.xlsm (156.81 Ko)

MErci beaucoup

Salut,

Je n’ai pas cherché à comprendre ta macro « PREPA1 ». Je l’ai simplement neutralisée car elle bloque.

Autrement j’ai corrigé ton adaptation de ma macro et ça semble fonctionner. J’ai laissé tes inexactitudes dans le code (sous forme de commentaires) afin que tu puisses t’en rendre compte.

Cordialement.

30combud12-v1.xlsm (158.75 Ko)

Merci beaucoup je vais charger toutes mes données voir ce que ca donne mais ca m'a l'air de fonctionner super .

Mon fichier fonctionne nickel

Mais j’aimerai si possible que la macro décale l’écart des deux dernières lignes avant d’archiver les données que je puisse garder cet écart.

Je m’explique : mon fichier calcul l’écart des deux dernières lignes en ligne 9 donc si j’archive mes données à l’aide de la macro cet écart va être remplacé par mes données et donc annulé.

Il faudrait que cet écart soit déplacé en ligne 10 et qu’ensuite la macro archive les données en ligne 9.

8testi-v1.xlsm (26.28 Ko)

Salut,

Tu as placé un premier fichier sur le Forum et j’ai créé un code en fonction de ce fichier («Testi»).

Ensuite tu as indiqué que mon code ne fonctionnait pas sur ton fichier «ComBud12» et j’ai modifié mon code en fonction de sa nouvelle configuration, pas du tout identique à celle du premier fichier

Maintenant tu reviens à la charge, mais tu places sur le fil un fichier de même configuration que le fichier «Testi»

Pourquoi ??

En finale, quelle configuration vas-tu utiliser ????

A te relire.

Yvouille a écrit :

Salut,

Tu as placé un premier fichier sur le Forum et j’ai créé un code en fonction de ce fichier («Testi»).

Ensuite tu as indiqué que mon code ne fonctionnait pas sur ton fichier «ComBud12» et j’ai modifié mon code en fonction de sa nouvelle configuration, pas du tout identique à celle du premier fichier

Maintenant tu reviens à la charge, mais tu places sur le fil un fichier de même configuration que le fichier «Testi»

Pourquoi ??

En finale, quelle configuration vas-tu utiliser ????

A te relire.

Je suis dsl je me suis planté de fichier.

C'est bien le fichier combuild et la ligne d'écart que je veux garder est en jaune dans le fichier.

Pour votre infos mon fichier de travail est un énorme fichier avec des données confidentielles c'est pour ça que je passe par des petits fichiers sur le forum, juste pour récupérer les lignes de la macro.

Vous m'avez déjà vraiment aidé j'ai un fichier bien sympa maintenant

Merci

13combud12-v1.xlsm (159.25 Ko)

Re,

Je crois que j’ai vu d’où vient l’erreur.

J’ai remplacé la ligne

.Cells(l + m - 1, k) = Tableau_A(k - 7)

par

.Cells(l + m, k) = Tableau_A(k - 7)

et l’inscription des nouvelles données se fait une ligne plus loin.

okidoki69 a écrit :

... et qu’ensuite la macro archive les données en ligne 9.

Je n’ai pas compris ce que tu veux dire. Désires-tu que la macro enregistre en plus le fichier à la fin du transfert ?

Cordialement.

10combud12-v2.xlsm (160.68 Ko)

Non non c'est normal le -1 car j'ai une ligne qui fait l'écart des deux dernières lignes. Ce n'est pas une ligne de données d'archive mais un =A2-A1 = A3 lol.

Je veux juste que qu'avant d'archiver les données de la macro qu'elle décale la ligne d’écart de +1. pour pas qu'elle l'écrase .

J'ai du mal à m'expliquer c'est vrai que c'est pas évident à comprendre

Je n'arrive pas à comprendre ce que tu veux dire. Tente d'expliquer ton problème en décrivant exactement ce que tu fais, ce que fait ton code et ce que tu désirerais qu'il fasse à la place.

Utilise des références de ligne, de cellule, de feuille, autrement je n'arrive pas à te comprendre.

Cordialement.

Aujourd'hui mon fichier sauvegarde mes données de l'onglet PREPA dans l'onglet Données Bu.

Il cherche la première ligne vide dans l'onglet Données BU pour pouvoir archiver.

Je lui dit de copier ces données à la première ligne vide -1 .

Et j'aimerais lui dire de faire un copier coller spécial formule de la ligne -1 avant de lancer ma macro d'archive ou dans la macro mais dans un premier tps car sur cette ligne j'ai mon écart.

7combud12-v1.xlsm (159.22 Ko)

Exemple:

Onglet Données BU

Gamme Midlum MR50,

de G9 à R9 il y a l'ecart entre G8 et G7 et cet écart j'aimerais le garder pour G9 à G8 une fois que j'aurai archiver mes valeurs.

En gros un copier coller spécial formule de la ligne G9 en G10, avant d'archiver mes données sur la ligne G9 devrais faire l'affaire.

Re,

Peut-être que je t'ai compris

Après le ligne :

 .Cells(l + m - 1, k) = Tableau_A(k - 7)

qui écrase tes anciennes formules, j'ai rajouté une nouvelle ligne inscrivant les formules désirées après coup :

.Cells(l + m, k).FormulaR1C1 = "=R[-1]C-R[-2]C"

Cordialement.

17combud12-v3.xlsm (152.44 Ko)

MErci nickel

Rechercher des sujets similaires à "recherche archivage"