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

Mise à jours Prix de mon fichier

  • Initiateur de la discussion Initiateur de la discussion megansport
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

megansport

Guest
Bonjour au forum

Voilà j'ai un gros fichier avec lequel je travaille actuellement, hier nous avons reçu une mise à jour des prix, j'aimerai si cela est possible d'intégrer la nouvelle liste de prix dans mon ancien fichier cad remplacer les anciens prix par les nouveaux.

Nous avons une références unique ( réf HD) et j'aimerai grâce à cette référence faire cette manipulation

Voici un fichier

Merci de votre aide
 

Pièces jointes

Re : Mise à jours Prix de mon fichier

Merci pour votre aide, elle est d'un grand soutien, je crois que nous y sommes presque mais comme d'habitude il y a toujours un mais
j'ai essayer d'intégrer la macro de HASCO mais elle m'envoie un message d'erreur.
Je ne vois ce qui bloque, voici le fichier type sur lequel je travaille et sur lequel la macro se déclenche puis bloque , voir si je dois modifier quelque chose
Merci
 

Pièces jointes

Re : Mise à jours Prix de mon fichier

Re,

Dans ton fichier la macro n'y ai pas. comment veux-tu que je sache où elle bloque!

Il faut que je recommence ce que j'ai déjà fait?

A+
 
Re : Mise à jours Prix de mon fichier

Slt
Désolé j était en train de regarder, bon cela avance , je n'ai plus le message d'erreur mais il y a certaines réferences ou la mise à jour ne fait pas voila le fichier
Merci
 

Pièces jointes

Re : Mise à jours Prix de mon fichier

Re,

Dans le fichier joint j'ai rajouté une colonne avec formule et mis les valeurs retournées par la macro en colonne M. Ceci pour vérification.

J'ai remplacer la ligne Application.MAtch... par Application.VLOOKUP

Après tests et vérifications, supprimer la ligne de code :

Code:
plg.Offset(, 11).Value = PrixActuels
et la remplacer par celle-ci pour que les valeurs se mettent en B
Code:
plg.Offset(, DecalColPrix).Value = PrixActuels

A+
 
Re : Mise à jours Prix de mon fichier

Re

désolé pour l'absence, travail oblige, aprés verification la macro ne modifie pas les valeurs, j'ai modifié la macro selon ce que vous m'avez dit à part la colonne M qui s'incremente, les valeurs ne se mettent pas à jours

Merci
 

Pièces jointes

Re : Mise à jours Prix de mon fichier

RE,

Pas de problème. J'ai du posté le mauvais fichier

Vérifie que la constante decalColPrix soit égle à 4

Macro corrigée:
Code:
Sub MiseAjourPrix_2()
    Const DecalColPrix As Long = 4   'indice de décalage de colonne des prix par rapport à la colonne B de chaque feuille Articles
    Dim oldCalculation As XlCalculation
    Dim RefArticles As Variant    'Tableau des référence sur la colonne B de chaques feuille Articles
    Dim PrixActuels As Variant  'Tableau des prix actuel sur la colonne F de chaque feuille articles
    Dim NouveauxPrix As Variant    'Tableau des deux colonne A et B de la feuille nouveauxprix
    Dim idx As Variant    'variant de recherche
    Dim sh As Worksheet    'feuille de recherche
    Dim plg As Variant    'plage de départ
    Dim i As Long, j As Long    ' indices de boucles
    'On Error GoTo FIN:
    With Application
        oldCalculation = .Calculation
        .Calculation = xlCalculationManual
        .ScreenUpdating = False
        .EnableEvents = False
    End With
    Set sh = Sheets("nouveauxprix")
    NouveauxPrix = sh.Range("A2:B" & sh.Cells(sh.Rows.Count, 1).End(xlUp).Row).Value
    For Each sh In Worksheets
        If sh.Name <> "nouveauxprix" Then
            Set plg = sh.Range("B2:B" & sh.Cells(sh.Rows.Count, 2).End(xlUp).Row)
            If plg.Row > 1 Then
                RefArticles = plg.Value
                PrixActuels = plg.Offset(, 4).Value
                For j = 1 To UBound(RefArticles)
                    idx = Application.VLookup(RefArticles(j, 1), NouveauxPrix, 2, False)
                    If Not IsError(idx) Then PrixActuels(j, 1) = CDbl(idx)
                Next j
 
                 plg.Offset(, DecalColPrix).Value = PrixActuels
 
            End If
        End If
        Erase RefArticles
        Erase PrixActuels
    Next sh
FIN:
    With Application
        '.Calculation = oldCalculation
        .ScreenUpdating = False
        .EnableEvents = False
    End With
    If Err.Number > 0 Then
        MsgBox "Une erreur c'est produite pendant de la mise à jour des prix!", vbExclamation, "Mise à jour des prix"
    End If
End Sub
A+
 
Dernière modification par un modérateur:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

S
  • Question Question
Réponses
2
Affichages
1 K
S
Réponses
4
Affichages
1 K
stage_ferrit
S
Réponses
5
Affichages
1 K
S
Réponses
0
Affichages
2 K
Serious E
S
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…