XL 2013 Gestion Bourse aux vêtements

Xav33820

XLDnaute Nouveau
Bonsoir,

Je fais partie d'une association et nous organisons des bourses aux vêtements.
Nous gérons une partie de la bourse avec des fichiers excels (listings des vendeurs, listes des vêtements déposés) et, le reste manuellement.
En effet chaque vendeurs (avec un numéro de vendeur) a sa liste excel de vêtements, avec le descriptif et le prix sur une première feuille et, sur la deuxième les étiquettes se remplissent automatiquement. Ensuite il découpe et accroche chaque étiquettes sur ses vêtements.
Nous avons environ 300 vendeurs ayant environ 26 articles chacun.
Le jour de la bourse, un acheteur passe en caisse avec des articles de différents vendeurs. Nous découpons chaque étiquettes et calculons le montant à payer. Une fois la bourse terminée, nous reprenons chaque étiquettes que nous classons par vendeur, nous allons ensuite reporter dans le listing de chaque vendeur ce qu'il a vendu, nous calculons ensuite le montant de ses ventes, bref beaucoup de temps et parfois d'erreurs.
Du coup j'aimerai que le jour de la vente quand une cliente passe en caisse, nous puissions saisir les articles qu'elle achète (à l'aide du numéro de vendeur et du numéro d'article). Le prix s'afficherait automatiquement. Il faudrait ensuite que dans le listing du vendeur la case vendue de l'article se remplisse automatiquement, pour ne pas avoir à reprendre la totalité des étiquettes.
Pourriez-vous m'aider s'il vous plaît ?
Merci pour vos conseils.

En PJ, le fichier qui est envoyé à chaque vendeur.
 

Pièces jointes

  • liste informatisee.xlsx
    27 KB · Affichages: 24

fanfan38

XLDnaute Barbatruc
Bonjour
Ci joint ma proposition...
Les fichiers client doivent être dans le même répertoire que ce fichier et avoir comme nom le N° du client suivie de .xlsx
En double cliquant sur le N° du client (colonne J) on importe ses données (le nom et le prénom c'est une option que tu peux supprimer…). Le N° de client doit impérativement être en colonne J...
Quand tu mets OUI à vendu le fichier client se met à jour….
Je me suis permis de modifier le fichier client… (ils doivent tous être identique)
A+ François
 

Pièces jointes

  • 600.xlsx
    26.1 KB · Affichages: 15
  • liste informatisee.xlsm
    20.8 KB · Affichages: 16

Xav33820

XLDnaute Nouveau
Bonjour
Ci joint ma proposition...
Les fichiers client doivent être dans le même répertoire que ce fichier et avoir comme nom le N° du client suivie de .xlsx
En double cliquant sur le N° du client (colonne J) on importe ses données (le nom et le prénom c'est une option que tu peux supprimer…). Le N° de client doit impérativement être en colonne J...
Quand tu mets OUI à vendu le fichier client se met à jour….
Je me suis permis de modifier le fichier client… (ils doivent tous être identique)
A+ François
Merci pour ce travail, pourrais-tu m'expliquer ce que tu as fait, stp, j'aime bien comprendre.
Merci d'avance
Xavier
 

fanfan38

XLDnaute Barbatruc
Bonjour,
En fait quand tu double clic sur le nom d'un fichier celui ci s'ouvre.
On va chercher les données nécessaire dans ce fichier que l'on copie sur le fichier principal et on referme le fichier
lors de la lecture des données une variable additionne les prix pour les recopier en fin de liste
Quand on change une cellule de la colonne D si celle ci est égale à OUI on ouvre le fichier correspondant et on le met à jour...
Les 2 macros sont sur la feuille 1 (clic droit sur l'onglet de cette feuille et visualiser le code...)
Bonne journée
A+ François
 

Xav33820

XLDnaute Nouveau
Bonjour,
En fait quand tu double clic sur le nom d'un fichier celui ci s'ouvre.
On va chercher les données nécessaire dans ce fichier que l'on copie sur le fichier principal et on referme le fichier
lors de la lecture des données une variable additionne les prix pour les recopier en fin de liste
Quand on change une cellule de la colonne D si celle ci est égale à OUI on ouvre le fichier correspondant et on le met à jour...
Les 2 macros sont sur la feuille 1 (clic droit sur l'onglet de cette feuille et visualiser le code...)
Bonne journée
A+ François
Bonjour,

Puis-je me permettre de demander encore quelques améliorations qui nous feraient gagner du temps ?

Si oui, voici mes demandes :
- Certaines personnes (les bénévoles de l'asso) peuvent avoir une liste contenant 3 feuilles (par exemple, 6, 6 Bis et 6 Ter), est-ce possible de gérer également ce genre de liste ? Sachant qu'il y a également la possibilité d'avoir jusqu'à 26 articles sur chaque feuille.

- L'asso prend 20% + 1€ sur le montant total des ventes (par numéro), est-ce possible d'automatiser ce qui sera payé à chaque déposant ?

- Enfin, y-a-t-il la possibilité de faire un récapitulatif financier quotidien de ce qui a été vendu par jour et un à la fin de la bourse aux vêtements ?

Je te remercie de ce que tu pourras faire pour notre association.

Xavier
 

fanfan38

XLDnaute Barbatruc
Certaines personnes (les bénévoles de l'asso) peuvent avoir une liste contenant 3 feuilles (par exemple, 6, 6 Bis et 6 Ter), est-ce possible de gérer également ce genre de liste ? Sachant qu'il y a également la possibilité d'avoir jusqu'à 26 articles sur chaque feuille.

Si c'est possible d'attribuer un n° de client par feuille ça m'arrangerai… lol
A+ François
 

fanfan38

XLDnaute Barbatruc
Bonjours
Alors: très bien le fichier de lolo (efface le , il y a des données privé)
Mais c'est beaucoup trop de boulot pour utiliser ce genre de fichier
Perso je l'ai divisé en 3: 8, 8 bis et 8 ter… car si l'utilisateur n'a pas les pages pleine, c'est va être la galère pour mettre vendu sur des feuilles différentes...
Le montant de l'asso c'est fait
le montant par date aussi (changer la 1ere date si nécessaire). Si plus longtemps sélectionner la dernière colonne et l'étirer...
J'ai ajouté un bouton effacer tout pour les ventes suivantes (n'efface que les cellules qui n'ont pas de formule)
Tu fais signe pour d'autre modif (a savoir que je vais devoir m'absenter quelques jours prochainement... Mais je ne sais pas quand pour l'instant)...
A+ François
 

Pièces jointes

  • 8.xlsx
    29 KB · Affichages: 9
  • 8bis.xlsx
    29 KB · Affichages: 9
  • 8ter.xlsx
    29 KB · Affichages: 8
  • liste informatisee.xlsm
    32.5 KB · Affichages: 9

Xav33820

XLDnaute Nouveau
Bonjours
Alors: très bien le fichier de lolo (efface le , il y a des données privé)
Mais c'est beaucoup trop de boulot pour utiliser ce genre de fichier
Perso je l'ai divisé en 3: 8, 8 bis et 8 ter… car si l'utilisateur n'a pas les pages pleine, c'est va être la galère pour mettre vendu sur des feuilles différentes...
Le montant de l'asso c'est fait
le montant par date aussi (changer la 1ere date si nécessaire). Si plus longtemps sélectionner la dernière colonne et l'étirer...
J'ai ajouté un bouton effacer tout pour les ventes suivantes (n'efface que les cellules qui n'ont pas de formule)
Tu fais signe pour d'autre modif (a savoir que je vais devoir m'absenter quelques jours prochainement... Mais je ne sais pas quand pour l'instant)...
A+ François
Salut François,
Magnifique travail que tu me fais là.
Pourrais-tu m'expliquer les macros et tout ce que tu as fait pour que ça fonctionne comme ça ? (toujours dans ma quête de comprendre ce qui est fait et est réalisable via Excel)
Je te remercie du temps passé/
@+
Xavier
 

fanfan38

XLDnaute Barbatruc
Bonjour,
VB:
Private Sub CommandButton1_Click() 'reset
  Range("A2:D" & Rows.Count).ClearContents 'efface les colonne A à D
  Range("A2:D" & Rows.Count).Interior.Pattern = xlNone 'supprime les couleurs de cellule
  Range("H3:J" & Rows.Count).ClearContents 'efface les colonne h à J
End Sub

Quand tu double clic sur la feuille ça lance la macro ci dessous

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'la cellule où tu as fait le double clic s'appelle target

 If Target.Count > 1 Then Exit Sub 'si + d'une cellule sélectionnée on quitte la macro
Application.ScreenUpdating = False 'pas d'affichage des actions donc plus rapide
'Toutes les variables doivent être déclarée
 Dim i As Integer, derlig As Integer, mavar As Double, k As Integer
 Dim j As Integer, ligne As Long, w1 As Workbook, fich As String, chemin As String
 chemin = ActiveWorkbook.Path 'donne l'adresse du fichier en cours à la variable chemin
  fich = chemin & "\" & Target.Value & ".xlsx" 'nom du fichier à ouvrir


 If Target.Column = 10 Then 'si tu as double cliqué dans la colonne 10
  Set w1 = Application.Workbooks.Open(fich) 'ouverture du fichier
  derlig = w1.Worksheets("liste").Range("B34").End(xlUp).Row' recherche de la dernière ligne du fichier
  mavar = 0 'remise à zero de la variable qui servira pour le total
  For j = 8 To derlig 'boucle de la ligne 8 à la dernière ligne
     ligne = Range("C" & Rows.Count).End(xlUp).Row + 1 ' recherche de la dernière ligne du fichier liste... +1 pour ecrire sur la ligne suivante

'copie des données
     Range("A" & ligne).Value = w1.Worksheets("liste").Range("E1").Value
     Range("B" & ligne).Value = w1.Worksheets("liste").Range("A" & j).Value
     Range("C" & ligne).Value = w1.Worksheets("liste").Range("D" & j).Value
     mavar = mavar + Range("C" & ligne).Value 'modification de la variable
  Next

  Range("B" & ligne + 1).Value = "Total:"
  Range("C" & ligne + 1).Value = mavar
  Range(Cells(ligne + 1, 2), Cells(ligne + 1, 3)).Interior.ColorIndex = 8 'colorie les cellules du total
  w1.Close savechanges:=True 'fermeture du fichier sans sauvegarde
 End If

 If Target.Column = 4 Then 'si tu as double cliqué dans la colonne 4
  Range("D" & Target.Row).Value = Range("F2").Value 'recopie la date
 End If

 Application.ScreenUpdating = True 'annule la commande sinon l'aplli ne marcherai plus
End Sub

Si la feuille change (modification d'une cellule) la macro suivante se lance
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim j As Integer, derlig As Integer, w1 As Workbook, maplage As Range
 Dim fich As String, chemin As String
 If Target.Column <> 4 Then Exit Sub 'on ne veux traiter que la colonne 4
 If Target.Count > 1 Then 'si + d'une cellule changée
  If Len(Target(Target.Count).Value) > 0 Then Target.Value = "" 'on efface tout
  MsgBox ("Ne traiter qu'une ligne à la fois. ")
  Exit Sub
 End If
 If Len(Range("A" & Target.Row).Value) = 0 Then Exit Sub 'si rien n'a été saisie on quitte la macro
 Application.ScreenUpdating = False
 chemin = ActiveWorkbook.Path
 fich = chemin & "\" & Range("A" & Target.Row).Value & ".xlsx"
 Set w1 = Application.Workbooks.Open(fich)
 derlig = w1.Worksheets("liste").Range("B34").End(xlUp).Row
 For j = 8 To derlig 'on recherche la concordance
   If w1.Worksheets("liste").Range("A" & j).Value = Range("B" & Target.Row).Value Then
     If Len(Range("D" & Target.Row).Value) = 0 Then
      w1.Worksheets("liste").Range("E" & j).ClearContents 'si la vente a été annulée on efface le OUI
     Else
      w1.Worksheets("liste").Range("E" & j).Value = "OUI" 'on met OUI dans la colonne vendu
     End If
     w1.Save 'on sauvegarde
     w1.Close 'on ferme le fichier
     Exit For 'on sort de la boucle
   End If
 Next
 Application.ScreenUpdating = True
End Sub

A+ François (la touche F1 t'aidera sur le mot que tu ne comprends pas...)
 

fanfan38

XLDnaute Barbatruc
Bonsoir
J'ai repensé à tes adhérents qui avaient plusieurs feuilles...
Ci joint un essai avec 3 pages...
ATTENTION! les fichiers adhérents doivent tous être identique au fichier 8.xlsx joint
 

Pièces jointes

  • 8.xlsx
    35 KB · Affichages: 15
  • liste informatiseV2.xlsm
    34.5 KB · Affichages: 9

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 924
Membres
101 841
dernier inscrit
ferid87