Automatisation paniers vente au détail

Bonjour à tous,

J'ai dans l'idée de faire un fichier qui permettrait de suivre les ventes d'un commerce de vente au détail, on y entre le produit vendu, le moyen de paiement, le prix de vente etc ...

En l'état ce que j'ai fais fonctionne, mais ce n'est absolument pas facile d'utilisation ni très lisible, malheureusement je suis pas capable de faire bien mieux, et je crois que ce que j'aimerais requiert l'utilisation de macros, et là c'est le drame ...

Je m'explique, à chaque client les vendeurs renseignent dans le tableau les produits vendus, ce qui compose un panier, puis sautent une ligne pour passer au client suivant, ce qui, à la fin de la journée, rend le tableau très peu lisible ...

Du coup, je me demandais si il étais possible de colorer toute une ligne lorsque celle-ci est vide, c'est à dire entre deux paniers, afin de pouvoir différencier les paniers.

Également, dans l'idéal il faudrait que le montant total du panier se calcul de manière automatique, mais je n'ai aucune idée de comment mettre ça en place, étant donné que les paniers ne sont jamais identiques, il peut y avoir un panier de 8 lignes, puis en suite un panier de une ligne ...

Voilà, si quelqu'un a un peu de temps à m'accorder, et une solution à me proposer je suis preneur

Merci beaucoup !

Bonjour,

Pour passer d'un champ à l'autre : touche TAB. En bout de ligne, ici J16, il passe à la ligne.

Ma contribution ci-jointe.

Bonjour Oxydum,

Je te remercie pour le coup de main, mais ça ne correspond pas à ce que j'avais imaginé, j'ai refais le fichier modèle pour illustrer les modifications que je fais manuellement et que j'aimerais automatiser.

Il s'agit donc dans le fichier des lignes noires et du total panier, ce sont les deux actions que j'aimerais automatiser, tout en gardant si possible une présentation qui se rapproche de celle-ci.

Tu penses qu'il existe une solution à cette problématique ?

Encore merci pour ton temps et pour le coup de main.

La problématique que tu décris n'impose que des contraintes, celle d'introduire des sous-totaux dans des cellules fusionnées va être fatale. Je conseille d'y renoncer.

Pour les lignes vides colorées je ne suis pas adepte non plus, je te propose d'étudier ce classeur pour voir ce qu'on peut faire à partir de mes propositions.

S'il faut un sous-total par panier, pourquoi pas ajouter une colonne dans ce sens ?

Bonjour oxydum,

Je vois qu’effectivement ça va être plus difficile que prévu ...

Ton tableau est excellent, mais j'ai peur qu'il soit "trop" difficile d'utilisation pour les vendeurs, qui devront s'occuper de le remplir entre chacun des clients.

Le but est de limiter au maximum les manipulations et de garder une parfaite lisibilité quand à la fin de la journée ils ont 300 ou 400 lignes.

C'est pour cette raison que le principal était de mettre en place une délimitation entre les paniers, et calculer automatiquement le total de chacun des paniers, d'ailleurs tu parles d'ajouter une colonne en ce sens, tu as une idée de la manière dont celle-ci s'adapterait dans le tableau ?

A nouveau merci pour le coup de main

Voilà comment la chose évolue... la première colonne différencie automatiquement les paniers, si le vendeur est "@" alors changement de panier et MFC en noir.

J'ai aussi au passage rendu dynamique les tableaux de listes, ce qui permet d'ajouter un vendeur sans devoir changer les formules. Voir le gestionnaire de noms dans Formules.

C'est excellent ! Je ne savais même pas qu'il était possible d'en faire autant avec Excel, et ce sans utiliser de macro il me semble ?

Je t'embête encore un peu, mais comme ça dépasse de très loin mes compétences, tu pense qu'il serait possible de renvoyer à la ligne une fois le prix de vente entré ? Étant donné que les dernières cellules de chaque ligne sont des calculs automatiques, les vendeurs n'ont pas besoin d'aller jusque là.

En effet, sans vba...

mais pour aller à la ligne, il faut gérer ça avec du code.

ALT-F11 :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("TabSaisie")) Is Nothing Then
  If Target.Column > 6 Then
    Cells(Target.Row + 1, 1).Select
    If Target.Row > Range("TabSaisie").Rows.Count + 18 Then
      Range("TabSaisie").ListObject.ListRows.Add AlwaysInsert:=True
    End If
  End If
End If
End Sub

Comme ça :

Désolé,

J'ai fait une petite modif pour être plus précis dans l'ajout de ligne en fin de tableau.

Bonjour,

Merci infiniment pour le coup de main !

Je vais (encore) t'embêter, mais entre temps nous avons fait quelques modifications sur le tableau, tu penses que je peux ajouter des colonnes à gauche du tableau sans risquer de "casser" ce que tu as paramétré ?

J'imagine que c'est idiot comme question, mais je suis pas super à l'aise avec Excel alors dans le doute ...

Encore merci !

Si tu dois rajouter des colonnes, il faut modifier le 6 ici (dans l'éditeur VBA ALT-F11) sur la ligne If Target.Column > 6 Then

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("TabSaisie")) Is Nothing Then
  If Target.Column > 6 Then
    Cells(Target.Row + 1, 1).Select
    If Target.Row > Range("TabSaisie").Rows.Count + 18 Then
      Range("TabSaisie").ListObject.ListRows.Add AlwaysInsert:=True
    End If
  End If
End If
End Sub

et bien sûr recopier la mise en forme...

Bonjour,

Du coup j'ai fais les quelques modifs dont je parlais, sur la seconde feuille que j'ai appelé "RECAP" où je mets les tableaux récapitulatifs de la journée, je n'ai pas pu reprendre la formule pour additionner tous les totaux paniers, j'ai l'impression qu'il considère que toute les lignes sont remplies, même si elles ne le sont pas

Je te mets le fichier, au cas où tu aurais une solution

Encore merci, c'est top !

J'ai fait un peu de mise en forme sur ton Récap, et les formules pour le tableau structuré "TabSaisie"

Je te remercie, mais pour le petit tableau avec le total journalier et le panier moyen, est ce qu'il est possible de faire en sorte que le total journalier corresponde à l'addition des "Totaux paniers", et que le nombre de vente corresponde au nombre de panier, pas au nombre d'article vendus ?

Ainsi le panier moyen correspond bien au total journalier, divisé par le nombre de panier, donc de client.

Le libellé des cellules est pas très explicite, je veux bien l'admettre

Sans vouloir abuser de ton temps et par simple curiosité, comment as tu fais pour qu'une ligne s'ajoute automatiquement sur les petits tableaux "Moyen de paiement" et "Vendeur" ? Il me semble que ça fonctionnait déjà avant que tu utilises du VBA.

T'es au top !

J'ai corrigé les totaux.

Pour ajouter automatiquement des lignes à un tableau, il suffit de sélectionner les données et par le menu Accueil : Mettre sous forme de Tableau. Ensuite dans le menu formules, gestionnaire de nom, lui donner un nom, TabVendeurs, TabPaiements...

Effectivement je viens de tester, faut le savoir !

Merci pour la correction, je crois que tout est bon, plus qu'à expliquer aux vendeurs comment le tableau fonctionne, sans qu'ils cassent tout

Ça va être très utile, merci milles fois !!

Bonjour,

Les vendeurs commencent aujourd'hui à utiliser le fichier que tu as créé, pour le moment tout à l'air de fonctionner !

En revanche on travail aussi sur MAC, et le fichier ne fonctionne pas, j'ai systématiquement un message d’erreur qui m'indique que tout ne sera pas fonctionnel et effectivement les tables que tu avais faites pour sélectionner les paniers et les vendeurs ne fonctionnent pas sous MacOS, mais c'est sûrement un problème lié à la suite Office sur Mac.

J'ai une petite question, c'est une amélioration facultative mais est ce que tu as connaissance d'une méthode pour que les menus déroulants s'affichent automatiquement une fois sur la cellule, au lieu d'avoir à se placer sur la cellule et en suite cliquer sur la flèche pour faire apparaître ce menu ?

Merci d'avance, si tu suis encore cette conversation

Bonjour,

Pour mac je ne peux rien dire...

Pour la saisie des listes, j'ai ajouté le test sur les colonnes 4 et 7 et fait au plus simple :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("TabSaisie")) Is Nothing Then
  If Target.Column > 8 Then
    Cells(Target.Row + 1, 1).Select
    If Target.Row > Range("TabSaisie").Rows.Count + 18 Then
      Range("TabSaisie").ListObject.ListRows.Add AlwaysInsert:=True
    End If
  End If
  If Target.Column = 4 Or Target.Column = 7 Then
    SendKeys "%{down}"
  End If
End If
End Sub

Il existe aussi un raccourci clavier pour ouvrir le menu :

ALT et Flèche en bas

C'est exactement ce qu'il me fallait, une fois de plus MERCI !

Rechercher des sujets similaires à "automatisation paniers vente detail"