MàJ automatique d'une liste de prix complexe

jbgeldof

XLDnaute Nouveau
Hello à tous.
J'espère que vous passez tous un excellent dimanche et que le temps est chez vous plus clément que chez moi :)

Ok alors essayons d'être claire et précise.

J'ai une liste de prix (originale)en monnaie étrangère. Je rajoute donc le montant de chaque produit en €.
J'ai splitté la liste générale en sous catégories ( en copiant bêtement sur un autre onglet, donc je suppose qu'il y a une formule pour ça que je ne connais pas non plus) : chaussures, bottes, sandales, ... qui reprennent chaque donnée de la liste générale.

Chaque semaine je reçois une mise à jour de cette liste de prix (originale) : nouveaux produits, produits existants mis en promotion, les produits sortis de la collection sont supprimés de la liste.

Les onglets sont comme suit : Originale - shoes - sandals - boots - bags - G - moyenne

Mes besoins :

- Quand la nouvelle liste de prix arrive pouvoir la copier / coller dans l'onglet original et que tout se mette à jour
- que les autres onglets prennent en compte les modifs : nouveautés , suppressions, promotions, prix et moyennes...

Merci d'avance pour votre aide, j'espère que j'aurais été assez claire.
 

Modeste

XLDnaute Barbatruc
Re : MàJ automatique d'une liste de prix complexe

Bonjour jbgeldof et bienvenue à toi!

Les explications ont l'air assez complètes ... n'hésite pas à joindre un petit fichier avec 30 à 50 lignes dans ta feuille originale et 2 des feuilles dans lesquelles il faudrait faire la répartition. Veille simplement à ce que ton exemple ne contienne pas de données confidentielles, mais que le contenu soit suffisamment représentatif de la situation réelle.
 

Modeste

XLDnaute Barbatruc
Re : MàJ automatique d'une liste de prix complexe

Re-bonjour jbgeldof,

Finalement, le temps s'est un peu gâté aussi, par ici :p: les explications qui semblaient claires ... me le semblent un peu moins, avec le fichier (à moins que Robert -que je salue- n'en ait compris plus que moi :confused:)
- Tu évoquais des articles supprimés qui étaient supprimés de la liste mise à jour ... et voilà qu'ils y apparaissent toujours (mais en bleu!?)
- J'avais imaginé (visiblement à tort!) une liste en colonne unique ... et j'en trouve une ribambelle (de colonnes)
- Tu parlais de catégories, on ne trouve plus que des lettres!?
- Une lettre identifie-t-elle la catégorie?
- Dans chaque colonne de ta liste, n'y a-t-il chaque fois qu'une et une seule lettre? Cette lettre sera-t-elle présente à chaque mise à jour, dans la même colonne?
- Comment faut-il gérer les couleurs dans ta feuille 'Original"?

Je m'en voudrais de paraître te faire "lanterner" pour le plaisir, mais je m'en voudrais tout autant de prendre le temps de proposer une solution ... pour m'apercevoir ensuite que "j'avais tout faux" :eek:

Peux-tu, dès lors, reprendre les explications de manière détaillée ... sauf si quiconque y voit plus clair!?
 

jbgeldof

XLDnaute Nouveau
Re : MàJ automatique d'une liste de prix complexe

Désolée Modeste, j'ai voulu simplifier le tableau d'exemple... j'aurais pas du

en tous cas oui. le fichier que je reçois comporte le même nombre de colonne, je me suis dis que cela pouvait être interessant de le montrer dans le fichier, mais j'avais oublié de le dire au début.
- Pour les fichiers supprimés, j'ai omis de dire que je les avais en bleu dans ma liste, que je devais depuis cette liste les supprimer de mon site.
- Pour les catégories, comme j'ai dis j'ai voulu simplifier vu que je n'avais pas mis les titres des colonnes, j'ai utilisé la lettre de référence pour créer les onglets : 1ere colonne tout commence par D ( shoes), à côté c'est X ( Boots),..., j'ai donc créé les onglets avec les lettres au lieu des titres.

Une lettre par catégorie, toujours la même.

Désolée pour cette confusion, j'ai la tête en vrac à force de chercher une solution et je m’emmêle les pinceaux. Merci pour ta patience Modeste :)
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : MàJ automatique d'une liste de prix complexe

Bonsoir le fil, bonsoir le forum,

En pièce jointe ton fichier modifié avec le code ci-dessous :
Code:
Sub Macro1()
Dim dl As Long 'déclare la varialbe dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)
Dim dc As Byte 'déclare la variable dc (Dernière Colonne)
Dim col As Byte 'déclare la variable col (COLonne)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim o As Object 'déclare la variable o (Onglet)
Dim dest As Range 'déclare la variable dest (cellule de DESTination)

Application.ScreenUpdating = False 'masque les changements à l'écran
dl = Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne dl
Set pl = Range("A3:A" & dl) 'définit la plage pl
dc = Cells(3, Application.Columns.Count).End(xlToLeft).Column - 2 'définit la dernière colonne dc
For col = 4 To dc Step 3 'boucle de la colonne 4 à dc par pas de 3
    Set pl = Application.Union(pl, Range(Cells(3, col), Cells(dl, col))) 'redéfinit la plage pl
Next col 'prochaine colonne de la boucle
For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl
    If cel.Value <> "" Then 'condition 1 : si la cellule cel n'est pas vide
        On Error Resume Next 'gestion des erreur (en cas d'erreur passe à la ligne suivante)
        'sélectionne l'onglet dont le nom est la première lettre de la cellule cel
        'provoque une erreur si l'onglet n'existe pas
        Sheets(Left(cel.Value, 1)).Activate
        If Err <> 0 Then 'condition 2 : si une erreur a été générée
            Err = 0 'annule l'erreur
            Sheets.Add after:=Sheets(Sheets.Count) 'ajoute un onglet en dernière position
            ActiveSheet.Name = Left(cel.Value, 1) 'nomme l'onglet avec la première lettre de la cellule cel
        End If 'fin de la condition 2
        On Error GoTo 0 'annule la gestion des erreurs
        Set o = ActiveSheet 'définit l'onglet o
        'définit la cellule de destination dest (A1 si A1 est vide sinon, la première cellule vide de la colonne A de l'onglet o)
        Set dest = IIf(o.Range("A1") = "", o.Range("A1"), o.Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0))
        Range(cel, cel.Offset(0, 2)).Copy dest 'copy cel et ses deux cellules associées et les colle dans dest
    End If 'fin de la condition 1
Next cel 'prochaine cellule cel de la boucle
Sheets("Original").Activate 'active l'onglet "Original"
Application.ScreenUpdating = True 'affiche les changements à l'écran
End Sub
Le fichier :
 

Pièces jointes

  • Jbgeldof_v01.xls
    70.5 KB · Affichages: 69

jbgeldof

XLDnaute Nouveau
Re : MàJ automatique d'une liste de prix complexe

Robert :) Merci :)

Juste une petite question de blonde... je ne pige rien à ton code, d'où sort-il? comment puis-je l'utiliser? je ne savais même pas qu'excel bossait avec des codes pareils...

Pour ce qui est de la feuille, je vais surement paraître inculte mais je ne trouve aucune formule, je suppose donc que le code magic susmentionné remplace la formule....

Tu pourrais m'expliquer ça comme si j'étais la plus bête... lol

Merci d'avance Robert
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : MàJ automatique d'une liste de prix complexe

Bonsoir le fil, bonsoir le froum,

Excel, comme toute la suite Office, peut fonctionner avec le langage VBA (Visual Basic pour Application). C'est ce que l'on appelle les macros. Le raccourci clavier [Alt]+[F11] ouvre l'éditeur VBE de ce langage (Visual Basic Editor). Tu vas te retrouver avec la fenêtre Microsoft Visual Basic divisée en trois partie :
• 1, en haut à gauche : la partie affichant les projets VBA
• 2, en dessous à chauche : la fenête des propriétés
• 3, à droite : le code

Dans ton cas, la majorité du code est écrite dans le module Module1. Il faut donc double-cliquer dans la partie 1 sur Module1 pour voir le code s'afficher dans la partie 3.
Cela va te permettre de voir le code mais bien sûr ça va te sembler, comme à chacun d'entre nous pour la première fois, un langage barbare. J'ai pris le soin de commenter chaque ligne pour te permettre de comprendre un petit peu...
 

jbgeldof

XLDnaute Nouveau
Re : MàJ automatique d'une liste de prix complexe

Hello Robert,

Merci encore pour cette découverte étonnante.
Pour mon tableau je copie alors tout le code sur mon tableau actuel?
Puis comment je sauvegarde ce changement?
Est-ce que je dois repartir de 0?

Quand je reçois ma nouvelle liste hebdomadaire, je copie - colle dans la page originale ou y a une autre manipulation à faire?

Alors là je croyais me débrouiller avec excel, je me rends compte que je suis une vraie débutante lol...
 

jbgeldof

XLDnaute Nouveau
Re : MàJ automatique d'une liste de prix complexe

Coucou Robert ou Modeste,
Si vous aviez le temps pour me montrer en directe comment cela fonctionne, par teamviewer ou autre, voir comment l'intégrer à mon fichier directement.... ce serait super de votre part.

Contactez moi en MP pour qu'on s'organise si vous acceptez. Merci d'avance, c'est chou :D
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : MàJ automatique d'une liste de prix complexe

Bonjour le fil, bonjour le forum,

Dans le fichier que je t'ai proposé tu effaces toutes les anciennes données et tous les onglets autres que Original.
Tu colles en A3 tes nouvelles données et tu cliques sur le bouton...
Pour que ça fonctionne il faut que les données soient par bloc de trois colonnes (comme dans ton exemple). La macro sait calculer le nombre de lignes et le nombre de colonnes.
Tu enregistres ce fichier sous un autre nom et tu refais cette opération chaque fois que tu reçois de nouvelles données.
 

jbgeldof

XLDnaute Nouveau
Re : MàJ automatique d'une liste de prix complexe

Hello tout le monde,

J'en reviens à votre bon coeur de partager avec moi votre génie... :)

Voilà il se trouve que j'ai du faire quelques modifs sur la liste de prix et que du coup, eh bien le super boulot que vous m'aviez fait ne sert plus à rien.

Voilà, avant la conversion en EURO existait déjà sur le fichier original, maintenant, plus.
Autre modifications, avant on les triait par catégories D, B, X, ...
Maitinenant on les trie par prix : <5€, 5€-8€, 8€-10€,...

Est-ce que vous pensez que vous pourriez me remodifier le code afin que la mise à jour soit à nouveau possible?

J'ai bien tenté par moi même, mais je suis vraiment pas douée lol.

Merci pour votre aide et votre réponse rapide.
 

Pièces jointes

  • Exemple liste reçue chaque semaine (10x plus importante que l'exemple).xlsx
    15.4 KB · Affichages: 51
  • exemple new auto update requis.xlsx
    20.5 KB · Affichages: 47

Modeste

XLDnaute Barbatruc
Re : MàJ automatique d'une liste de prix complexe

Bonjour jbgeldof,

Comme la première fois, j'ai avant tout des questions:
- si la conversion en euro n'est plus présente dans le fichier et qu'il faut "splitter" sur base (précisément) du montant en euros, on fait quoi? Tu indiques le taux de change à chaque fois que tu dois mettre à jour ton fichier? D'après ce que j'entends aux infos, j'imagine qu'il doit fluctuer un brin :rolleyes:
- dans ta feuille "<5€", en colonne C, il y a parfois des formules et parfois des valeurs. Les valeurs n'étant pas identiques aux résultats des formules si on les recopie ... où est l'erreur?
- ces montants calculés (... ou pas) ne correspondent pas à ceux de la feuille "original": uniquement parce que le taux de change a évolué d'une fois à l'autre?
- quand tu écris "entre 5€ et 8€, entre 8€ et 10€. ..." un montant d'une valeur de 8.00 € précisément, on le place dans quelle tranche (de 5 à 8 ou de 8 à 10) :confused:
- peut-on considérer que les feuilles -une fois créées- ne changeront plus (juste pour éviter la gestion des erreurs :p)
- dans les différents onglets à mettre à jour, dans les colonnes C, D et E, tu dois retrouver les formules ou simplement les valeurs?
- quant aux couleurs de police, tu nous demandes si nous pouvons en faire quelque chose :confused: Ben sans doute, mais quoi?
 

jbgeldof

XLDnaute Nouveau
Re : MàJ automatique d'une liste de prix complexe

Hello Modeste,

Comme toujours tu viens à mon secours et je t'en remercie.

A lire tes remarques j'ai l'impression d'être nulle, mais mieux vaut que les choses soient carrées, claires et justes surtout lol.

Alors voici :

1/ Il faudrait biensure à chaque mise à jour du fichier faire référence au taux donné à ce moment là. Je ne sais pas si il faudra que je le fasse manuellement à chaque fois ou pas, à vous de me dire. Evidemment, si je peux juste mettre le taux dans une case et que tout le fichier se convertisse ce serait un gain de temps super.


2/ Pour ce qui est du mix formules et valeurs c'est parce que quand je fais des copiers/coller parfois la formule saute, mais vu que c'est surtout le résultat final qui compte, soit le prix de vente, je ne m'en suis pas trop préoccupée.
Si les montant ne correspondent pas c'est surement de ma faute, dans la précédente aide que j'avais reçue de vous tous ici, quand ça mettait à jour en fait ça ne faisait que rajouter à nouveau toutes les références, je jouais donc avec "supprimer les doublons" pour n'avoir qu'une seule entrée par référence. Mais il se peut que du coup j'ai ajouté des erreurs... (ZUT) si d'ailleurs tu as moyen de me rajouter la gestion des doublons ce serait le super top. :)

3/Une valeur nette va dans l'onglet le plus grand : ici par exemple le 8 se mettrait dans le 8€-10€.

4/Normalement, sauf avis contraire de la direction, les feuilles ne changeront plus, ce seront toujours les mêmes onglet, la même mise en forme du fichier original et les mêmes calculs à faire.

5/Quand tu demande si j'ai besoin de retrouver des formules ou des valeurs, je te réponds que j'utilise surtout les formules pour éviter les erreurs, si dans ton code tu peux inclure la formule et que seules les valeurs apparaissent dans le fichier, c'est bon pour moi aussi.

6/Pour les couleurs de police ce n'est qu'un détail, mais si ,éventuellement, y aurait moyen de faire un onglet regroupant les nouveautés, les promos et les éjectés et que chacun ait son onglet.... je ne suis pas contre.

Je ne sais pas si pour vous ceci est du basic VBA mais pour moi cela ressemble à une montagne infranchissable........ J'ai l'impression de demander l'impossible lol.

Une fois de plus merci à toi Modeste pour le génie que tu mets à ma disposition. J'espère que ce coup-ci j'aurai pu te renseigner correctement sur les infos manquantes. Si je peux abuser et demander d'avoir, comme la dernière fois, outre le code, mais aussi le tableau avec le "bouton" déjà configuré, j'apprécierai, car l'insertion du code relève encore de chinois pour moi ;)

Je te souhaite de passer une excellente journée...
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 165
Messages
2 085 880
Membres
103 009
dernier inscrit
dede972