Questions fonctions VBA

Bonjour tout le monde

En cette belle et chaude journée, une question me taraude de bon matin.

Pour faire clair, je vais vous expliquer via un exemple ce que je souhaiterais réaliser sur excel :

Chaque semaine je dois envoyer à ma direction l'etat de nos stocks sur quelques références, ce tableur se présente comme cela :

Réf Poids PMP Prix

5487 320 1.25 400

3548 751 2.37 1779.87

4879 987 0.8 789.6

2534 27 3.58 96.66

Ce tableur comporte environ 500 références, ma direction ne s'interesse qu'a une cinquantaine, donc chaque lundi matin, je recherche une par une les cinquante références en copier/collant le poids/pmp/prix des réf qui m’intéressent. Travail relativement fastidieux...

Je souhaiterais donc automatiser cette opération en disant a Excel: Copie dans ce tableur le poids/pmp/prix de la référence N°3548 et N°2534 présentes dans cet autre tableur.

J'arrive donc a automatiser l'opération mais selon le N° de ligne et pas selon les références et chaque semaine les références changent de N° de ligne.

Voila j'espère avoir été clair, sinon n'hésitez pas a me demander des précisions

Dans l'attente de vous lire

Bonjour,

un TCD t'aidera à voir clair mais si tu donnes une liste des produits à "garder" , tu peux auparavant filtrer sur ces références puis faire un TCD ...

11stlakxlp.xlsx (12.31 Ko)

Bonjour

Bonjour à tous

Un essai à tester. Te convient-il ?

Bye !

18classeur1-v1.zip (16.84 Ko)

Merci pour vos réponses, malheureusement un message s'affiche disant que les macros sont désactivés, je pense que c'est mon entreprise qui empêche d'ouvrir des macros "non signés" par un membre de l'entreprise, je regarde ça ce soir chez moi


Ou alors, pouvez vous me faire un copier/coller des commandes de la macro?

Sans macro alors...

19classeur1-v1.zip (96.35 Ko)
Stlak- a écrit :

Ou alors, pouvez vous me faire un copier/coller des commandes de la macro?

Qu'à cela ne tienne :

Option Explicit

Dim fst, fs, f, ln, cell, lgn

Sub Suivi()

    Application.ScreenUpdating = False
    Set fst = Sheets("Stock")
    Set fs = Sheets("Suivi")
    Set f = ActiveSheet

    fs.Range("A1").CurrentRegion.Offset(1, 0).ClearContents
    For ln = 2 To f.Range("A" & 65536).End(xlUp).Row
        Set cell = fst.Range("A2:A" & fst.Range("A" & 65536).End(xlUp).Row).Find(f.Range("A" & ln), lookat:=xlWhole)
        If Not cell Is Nothing Then
            fst.Range("A" & cell.Row & ":D" & cell.Row).Copy
            lgn = fs.Range("A" & 65536).End(xlUp)(2).Row
            fs.Range("A" & lgn).PasteSpecial xlPasteAll
        Else
            MsgBox "La référence ''" & Range("A" & ln) & " '' n'existe pas dans le stock.", 16
        End If
    Next ln
    fs.Select
    Range("A1").Select
End Sub

Merci à vous pour vos réponses !

J'ai réussi à activer les macros et c'est exactement ce que je cherchais.

Par contre en analysant vos lignes de progra, je ne comprends pas comment vous indiquez à Excel les références a suivre ??

Bonjour

Stlak- a écrit :

je ne comprends pas comment vous indiquez à Excel les références a suivre

Pour ce qui me concerne :

La macro passe l’une après l’autre toutes les valeurs de la colonne A de la feuille ‘’Ref suivis’’

Pour chacune de ces valeurs, elle regarde si il existe la même valeur dans la colonne A de la feuille ‘’Stock’’.

Si il n’en existe pas, elle passe à la valeur suivante.

Si il en existe une, elle copie la ligne de la feuille ‘’Stock’’ où se trouve cette valeur et la colle à la suite sur la feuille ‘’Suivi’’, puis passe à la valeur suivante.

OK ?

Bye !

Rechercher des sujets similaires à "questions fonctions vba"