XL 2019 VBA fonction transfert

Jamie0d9

XLDnaute Nouveau
Bonjour,

Je sollicite votre aide car je n'arrive pas à trouver de solution à mon problème.

J'ai un fichier qui me sert de gestionnaire pour des commandes de tenues. J'avais reçu l'aide du très sympathique PierreJean à l'époque.
Dans ce fichier, un onglet commande permet d'enregistrer la commande du client. Un second onglet permet de générer un bon de retrait pour cette commande. A partir de ce bon de retrait, un onglet statistiques permet de récupérer les informations du dernier bon imprimé et ajoute les quantités en fonction des articles commandés.

Aujourd'hui, j'ai plus d'articles à considérer mais je n'arrive pas à adapter le code pour qu'il me fasse le transfert convenablement.

Je mets en PJ mon fichier test.

Merci d'avance à ceux qui prendront le temps de me lire et pour les réponses éclairées.
 

Pièces jointes

  • Cmdes uniformes test.xlsm
    79.5 KB · Affichages: 15
C

Compte Supprimé 979

Guest
Bonsoir Jamie0d9

Une petite modification de formule pour supprimer le Si() à rallonge
Quelques changements au niveau des données des différentes tenues et tailles
Un modification du nombre de colonne traitée et voilà

A nous dire
 

Pièces jointes

  • Jamie0d9_Cmdes uniformes test.xlsm
    78.9 KB · Affichages: 3

Jamie0d9

XLDnaute Nouveau
Mille Merci BrunoM45,
Je n'avais pas pensé à la fonction RECHERCHEV, très efficace.
Cependant, dans l'onglet "commande" le sélecteur de taille ne fais pas la différence entre ce qui est "haut" (chemises, polos, t-shirt,...) et ce qui est "bas" (jupe, bermuda, pantalon,...).

Comment amener ce dernier à choisir la liste de taille à afficher en fonction du type haut ou bas ?

Merci beaucoup pour ton aide
 
C

Compte Supprimé 979

Guest
Re,

Cela semble déjà le cas sur le fichier mis à disposition 🤔 ;)

Voici le fichier corrigé et amélioré, tu me diras

@+
 

Pièces jointes

  • Jamie0d9_Cmdes uniformes v2.xlsm
    87.2 KB · Affichages: 3

Jamie0d9

XLDnaute Nouveau
Oui effectivement ça le faisait à l'origine mais avec l'ajout de nouvelles références il faut adapter le code
Regarde dans l'onglet params je t'ai expliqué un peu la logique que j'essais de mettre en place

Merci beaucoup pour ces améliorations portées, plutôt que de retenir tous les codes ce sélecteur est beaucoup plus pratique.
 

Pièces jointes

  • Jamie0d9_Cmdes uniformes v2.xlsm
    83.6 KB · Affichages: 2
C

Compte Supprimé 979

Guest
Salut Jamie0d9

Encore plus simple avec cet idée d'ajouter une colonne "Haut", "Bas" 👍
En la mettant juste à côté des 3 autres et en étendant le nom définit.
Plus besoin d'utiliser la 1ère partie du code de la feuille

Voici la formule à utiliser dans la validation de données ;)
VB:
=INDIRECT("Tailles" & RECHERCHEV(B17;ListeTenues;4;FAUX))

Voici le fichier

A+
 

Pièces jointes

  • Jamie0d9_Cmdes uniformes v3.xlsm
    81.8 KB · Affichages: 5

Jamie0d9

XLDnaute Nouveau
Bonjour,

Je me rends compte que l'onglet statistiques ne fonctionne pas comme il devrait.
Le code permettait de transférer les données des "Bon de Commande/Retrait" en les classant directement dans les tableaux correspondant de la manière suivante :
transfert automatique vers "statistiques" en fonction du produit et de la taille mais si "pantalon" transfert vers ligne correspondant (deuxième tableau) en fonction de la taille

Comment prendre en compte les nouvelles données dans le deuxième tableau dans le code?
 

Jamie0d9

XLDnaute Nouveau
Autant cela a été simple de comprendre les précédentes modifications, autant j'ai du mal à comprendre le code que tu as réécrit .A vrai dire, il y a beaucoup de fonctions que je n'avais jamais vu auparavant (RngArt, LigCde, ...).
Je prendrais le temps de l'analyse pour mieux comprendre.
Merci mille fois BrunoM45
 

Phil69970

XLDnaute Barbatruc
Bonjour @Jamie0d9 , Bruno

Euh la nuit a du être difficile:D

A vrai dire, il y a beaucoup de fonctions que je n'avais jamais vu auparavant (RngArt, LigCde, ...).

VB:
' Définir les variables
  Dim Col As Long, NbCol As Long, LigEntete As Long
  Dim dLigCde As Long, LigCde As Long, LigStat As Long
  Dim RngTot As Range, RngArt As Range
  Dim Article As String, Taille As String, Nb As Single
  Dim ShtCde As Worksheet, ShtStat As Worksheet

Ce sont des ..... variables comme Bruno l'a écrit....
De plus elle sont assez parlante
dLigCde ==> dernière ligne commande
LigCde ==> D'habitude on met For i = ..... mais Bruno àa voulu rendre le code plus parlant....
ShtCde ==> Feuille "Bon de Commande-retrait"
etc....

il aurait pu écrire :
VB:
Dim Var1&, Var2&,i&, j& 'etc

Mais c'est plus compliqué à lire le code.

@Phil69970
 

Discussions similaires