Gestion de commandes VBA

Bonjour,

Je voudrais savoir si il est possible à l'aide d'un bouton "Enregistrement de cde", de recopier les données saisies en jaunes de la feuille "Bon de cde" sur la feuille "Suivi de cde".

Merci pour vos suggestions

156suivi-cde-2016.xlsx (29.08 Ko)

Bonjour

Un essai à tester. Te convient-il ?

Bye !

Bonjour,

Merci pour votre réactivité.

Est-il envisageable de laisser vierge les éléments à saisir après l'enregistrement.

Sinon C'est parfait.

Cordialement,

Bodegue

Nouvelle version.

Bye !

Dans la nouvelle version il manque des éléments si plusieurs références commandées lors de la copie dans le fichier "suivi de cde".

Ah Oui !

Nouvelle version.

Bye !

81cde-2016-v3.xlsm (41.03 Ko)

Merci !

Bonjour,

Peux-tu me m'expliquer cette partie.

For i = 8 To Range("A" & Rows.Count).End(xlUp).Row

lgn = fs.Range("A" & Rows.Count).End(xlUp)(2).Row

For k = 1 To 6

colB = Choose(k, 5, 5, 2, 1, 2, 5)

colS = Choose(k, 1, 2, 5, 3, 4, 6)

ln = Choose(k, 1, 3, 5, i, i, i)

fs.Cells(lgn, colS) = fb.Cells(ln, colB)

fb.Cells(ln, colB) = ""

Next k

Next i

MsgBox "Le bon de commande " & Range("E1") & " a été enregistré."

Merci

    For i = 8 To derln
…
    Next 

i

Cette boucle permet de passer toutes lignes de la feuille ‘’Bon de cde’’ depuis la ligne 8 jusqu’à la dernière ligne de données du bon.

        For k = 1 To 6
…
        Next k

Pour chaque ligne on fait une nouvelle bouche pour s’occuper de 6 cellules : les 3 qui ne changent pas, E1,E3 et B5 (tant pis, on les prendra 6 fois en compte, c’est plus simple) et les 3 de caque lignes de données à partir de la ligne 8.

A chaque tour de boucle, la fonction ‘’Choose’’ permet de faire correspondre chacune de ces 6 cellules de la feuille ‘’Bon de cde’’ à la cellule où on doit écrire son contenu sur la feuille ‘’Suivi de cde’’.

Exemple :

Avant de faire la 1ère boucle k, on définit la ligne lgn où on va écrire sur la feuille ‘’Suivi de cde’’ les valeurs de la boucle relative à la ligne 8 de la feuille ‘’Bon de cde’’.

Puis, au 1er tour de boucle de k, on a k qui vaut donc 1 et dans les fonctions ''choose'', on prend la première des valeurs suivantes, donc l

colB vaut 5 ; colS vaut 1 ; ln vaut 1

Et on a ainsi les 4 valeurs qui permettent de reporter les données de la première des 6 cellules de la feuille ‘’Bon de cde ‘’ dans la cellule de la feuille ‘’Suivi de cde’’

A la 2ème boucle de k on aura :

colB= 5, colS =5, ln = 3 et lgn qui vaut toujours 8

et ainsi de suite

OK ?

Bye !

Un grand merci pour ces explications.

Rechercher des sujets similaires à "gestion commandes vba"