Besoin d'aide pour création d'une macro de mise à jour tarifs.

solalg14

XLDnaute Nouveau
Bonjour à tous,

Etant à la recherche d'aide pour la création d'une macro sur excel, je viens de découvrir votre forum.

Je suis actuellement en stage dans une entreprise et j'ai pour mission de mettre à jour de façon hebdomadaire une base de données excel comportant plus de 3000 entrées. Il n'existe pour l'instant aucune macro et tout se fait manuellement et prend donc un temps fou.

En réfléchissant un peu, je me suis dit qu'il y aurait forcément quelque chose à faire pour gagner du temps en passant la main à la machine.


Je vous explique en prenant l'exemple simplifié du fichier ci-joint.

- J'ai une base de données qui permet de gérer le tarif de différents produits.

- Dans cette base de données nous trouvons plusieurs fournisseurs différents.

- Pour chaque fournisseur, les produits proviennent de différentes usines et sont expédiés vers différents entrepôts.

- Un numéro de contrat nous est affecté par le fournisseurs. Celui-ci peut être fixe d'un mois sur l'autre mais peut aussi être actualisé.

- Enfin il existe un système de prime, bonus et malus pour chaque produit qui varient. Ils peuvent apparaître et disparaître, augmenter ou baisser.




Ce que j'aimerai donc, c'est actualiser le fichier N-1 avec le fichier N.
Toutes les données du fichier N-1 ne changent pas. Il me faut donc une macro avec une formule qui puisse détecter les données qui ont changé (grace à la date de validité des tarifs ?) et qui fasse les modifications uniquement sur celles ci en conservant les lignes à l'identique pour les lignes non actualisées.


J'espère avoir été suffisamment clair, mais n'hésitez pas à me poser des questions si vous voulez des précisions.

J'ai peut être une petite idée de la marche à suivre, mais je n'ai pas la technique pour la mettre en place dans excel.


En tout cas, je vous remercie par avance pour votre. Et sachez que ça me sera d'une très grande utilité, pour ma mission et peut être pour la suite de ma carrière.

Guillaume
 

Pièces jointes

  • Tarifs.xls
    48.5 KB · Affichages: 92
  • Tarifs.xls
    48.5 KB · Affichages: 96
  • Tarifs.xls
    48.5 KB · Affichages: 94
Dernière édition:
C

Compte Supprimé 979

Guest
Re : Besoin d'aide pour création d'une macro de mise à jour tarifs.

Bonsoir Solalg14,

sachez que ça me sera d'une très grande utilité, pour ma mission et peut être pour la suite de ma carrière
Et bien ta carrière est mal barrée si tu nous la joue comme ça :rolleyes:

Comment veux-tu que l'on puisse t'aider avec le seul fichier que tu as mis à disposition !?

Tu nous parles de fichier N-1 avec le fichier N mais un seul fichier au total :confused:

Bref, je dois être bête ... j'ai rien compris :cool:

A+
 

solalg14

XLDnaute Nouveau
Re : Besoin d'aide pour création d'une macro de mise à jour tarifs.

Tout d'abord, merci d'avoir pris le temps de répondre à mon post.

En fait, j'ai voulu simplifier les choses en créant un fichier beaucoup plus light.

N-1 correspond à la feuille "Price List Juin" et N correspond à "Price List Juillet".

En fait, je veux mettre à jour la price list de juin avec les informations de la price list de juillet.

La price list de juillet reprend une partie des lignes de la price list de juin mais les tarifs, les dates de validité, les bonus, ... ont changé.
 

ROGER2327

XLDnaute Barbatruc
Re : Besoin d'aide pour création d'une macro de mise à jour tarifs.

Bonsoir à tous
Pas claire, cette affaire... en l'absence d'indication de la clef de correspondance entre les enregistrements des deux feuilles, il est difficile de répondre.

Malgré tout, un essai pifométrique dans le classeur joint, sur la base de la procédure suivante :
Code:
[COLOR="DarkSlateGray"][B]Sub toto()
Dim i&, j&, tmp$, Dat1, Dat2, Calc&
   Calc = Application.Calculation
   Application.Calculation = xlCalculationManual
   With Sheets("Tarif N")
      Dat2 = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)).Resize(, 3).Value
   End With
   With Sheets("Tarif N-1")
      Dat1 = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)).Resize(, 3).Value
      For i = 1 To UBound(Dat2, 1)
         Dat2(i, 1) = Dat2(i, 1) & "#" & Dat2(i, 2) & "#" & Dat2(i, 3)
      Next
      For i = 1 To UBound(Dat1, 1)
         tmp = Dat1(i, 1) & "#" & Dat1(i, 2) & "#" & Dat1(i, 3)
         For j = 1 To UBound(Dat2, 1)
            If Dat2(j, 1) = tmp Then Sheets("Tarif N").Rows(j).Copy Destination:=.Rows(i): Exit For
         Next
      Next
   End With
   Application.Calculation = Calc
End Sub[/B][/COLOR]
ROGER2327
#3881


Mardi 24 Gidouille 137 (Saint Gris-gris, ventre, SQ)
20 Messidor An CCXVIII
2010-W27-4T22:36:18Z
 

Pièces jointes

  • Tarifs_3881.xls
    34 KB · Affichages: 108

solalg14

XLDnaute Nouveau
Re : Besoin d'aide pour création d'une macro de mise à jour tarifs.

Merci pour cette réponse.

En fait, le fichier N-1 contient l'ensemble des informations. C'est notre base de données.
Le fichier N est celui qui contient les mises à jours de la base de données.

Donc en fait, toutes les lignes du fichier N existent dans le fichier N-1 mais certaines cellules ne sont pas les mêmes comme le tarif et la validité par exemple.

Le nom du fournisseur, l'usine et l'entrepôt ne changent pas.


C'est compliqué cette histoire et j'ai un peu de mal à expliquer ce que je veux.





Ce que je souhaiterai faire concrètement, c'est regrouper les deux fichiers en un seul pour pouvoir regrouper les même produits afin d'avoir l'ancien tarif au dessus du nouveau. Et ce qu'il faudrait, c'est que la macro détecte les cellules qui ont changé et qu'elle fasse un copier coller sur la ligne du dessus afin de l'actualiser.
 

ROGER2327

XLDnaute Barbatruc
Re : Besoin d'aide pour création d'une macro de mise à jour tarifs.

Re...
(...)
C'est compliqué cette histoire et j'ai un peu de mal à expliquer ce que je veux.
(...)
Ça a effectivement l'air compliqué.
La proposition précédente est-elle :
  1. à côté de la plaque ?
  2. en partie correcte ?
    Si oui, que lui manque-t-elle ?
À défaut d'une définition complète du problème, un classeur avec quatre onglets, deux montrant la situation des deux feuilles avant intervention, deux montrant la situation des deux feuilles après intervention serait peut-être susceptible de favoriser des réponses...​
ROGER2327
#3887


Samedi 28 Gidouille 137 (Poche du Père Ubu, V)
24 Messidor An CCXVIII
2010-W28-1T16:27:48Z
 

Statistiques des forums

Discussions
311 723
Messages
2 081 934
Membres
101 844
dernier inscrit
pktla