Colonne "récapitulatif commande" Excel qui se génère automatiquement

Fermé
Pims75 Messages postés 2 Date d'inscription lundi 18 février 2019 Statut Membre Dernière intervention 19 février 2019 - 18 févr. 2019 à 21:15
Pims75 Messages postés 2 Date d'inscription lundi 18 février 2019 Statut Membre Dernière intervention 19 février 2019 - 19 févr. 2019 à 17:32
Bonjour a tous,

Je suis un chef d'entreprise vendant des produits alimentaires.

J'ai créé un tableau excel afin de suivre l'évolution de mes stocks en fonction des entrées de marchandises (fournisseurs) et des ventes.

Cf le tableau ci dessous.

Afin d'avoir une lecture simplifiée de mon tableau (J'ai 60 références et cela croit chaque semaine) et m'assurer que je ne fais pas d'erreur lors de son remplissage (au moment de chaque vente), je souhaiterais savoir s'il y a un moyen de rajouter une colonne "récapitulatif commande" (a droite du nom du client) qui se remplirait automatiquement avec le nom et la quantité des produits sélectionnés.
Exemple:
1 Pollo en salsa tamarindo
1 soupe de tomate
2 helados de chocolate
Etc.

Je vous remercie pour votre aide.

Désolé je vends ces produits au Mexique, d'ou le tableau en espagnol.

Configuration: Macintosh / Chrome 72.0.3626.109
A voir également:

2 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
18 févr. 2019 à 22:39
Bonjour,

Le problème avec une cellule c'est que sa hauteur doit changer en fonction du nombre d'article.
Je te propose un autre solution : utiliser un commentaire qui apparait quand tu cliques sur le nom, généré par une macro VBA dans le module de la feuille concernée :
Option Explicit
Dim mem As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim tbl As Variant
Dim txt As String
Dim col As Integer
  If Not mem Is Nothing Then mem.ClearComments
  Set mem = Nothing
  If Target.Column <> 5 Or IsEmpty(Target) Or Target.Cells.Count > 1 Then Exit Sub
  tbl = Intersect(Me.UsedRange, Me.UsedRange.Offset(0, 6)).Value
  For col = LBound(tbl, 2) To UBound(tbl, 2)
    If Val(tbl(Target.Row, col)) > 0 Then
      txt = txt & Val(tbl(Target.Row, col)) & " " & tbl(1, col) & Chr(13) & Chr(10)
    End If
  Next
  If txt > "" Then txt = Left(txt, Len(txt) - 2)
  With Target
    .AddComment
    .Comment.Visible = True
    .Comment.Text Text:=txt
    .Comment.Shape.TextFrame.AutoSize = True
  End With
  Set mem = Target
End Sub

Exemple :
https://mon-partage.fr/f/gKBezm4l/

0
Pims75 Messages postés 2 Date d'inscription lundi 18 février 2019 Statut Membre Dernière intervention 19 février 2019
19 févr. 2019 à 17:32
Un grand merci pour votre réponse, c'est exactement ce dont j'ai besoin.
Je vais essayer de le mettre en place des maintenant.

Encore merci pour votre aide.

Bien cordialement
0