Excel: données (validation)

Résolu
ar168 -  
 ar168 -
Bonjour,

Pour la rédaction des bons de commandes, j'utilise un fichier Excel: le bon est sur la 1ère feuille, et "le base de donnée" sur la 2ème. Le client effectue son choix via le menu déroulant grâce à la fonction validation des données.

Est-il possible de travailler à l'envers? Autrement dit le client coche la cellule correspondant à son choix dans la 2ème feuille "base de donnée" et l'indication de l'article s'insère dans la première feuille bon de commande, dans une colonne définie en partant de la ligne 10 (par exemple)...

J'ai peu d'espoir que cela soit possible avec Excel, mais...

D'avance merci pour vos astuces

5 réponses

  1. ar168
     
    Bonjour,

    Le tableau est visible à l'adresse
    http://cjoint.com/?0KehEvnx7xF

    Actuellement il fonctionne de façon "classique".

    Exemple, dans l'onglet "commande", clique sur B10. Un menu déroulant s'ouvre. Choisi un article (seul les 29 premiers articles sont encodés). Il te reste juste à encoder la quantité souhaitée, et le tour est joué!

    Très simple!... sauf que certains "clients" veulent une vue d'ensemble des produits disponibles. Cette liste existe, sous l'onglet épicerie. En principe elle est protégée, afin qu'un "petit malin" ne modifie pas cette base de données.

    Serait-il possible, en allant sous l'onglet épicerie, de pouvoir cliquer sur un article et que celui-ci s'insère ans l'onglet commande, en B10, le suivant en B11 etc...

    Je sais que le client devra de toute façon revenir dans "commande" pour préciser la quantité... mais bon, certains estiment que les chemins détournés sont parfois plus simples! En fait il faudrait à mon avis abandonner Excel et passer sous Acces pour créer un véritable système style e-commerce: tu cliques sur un objet, une fenêtre s'ouvre pour indiquer la quantité, et le tout génère un bon de commande visible, mais impossible à modifier. Exemple: http://www.collectandgo.be/cogo/fr/home

    On peut rêver... je me débrouille sous Excel, mais Acces, c'est l'inconnu total!

    A nouveau merci pour l'aide et les astuces.
    0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    macro à installer dans le module "Thisworkbook"
    déclenchement par double clic sur l'article choisi

    Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
    Dim secteur As String
    secteur = UCase(ActiveSheet.Name)
    derlig = Columns("B").Find("*", , , , , xlPrevious).Row
    If secteur <> "commande" _
         And Not Intersect(Target, Range("B1:B" & derlig)) Is Nothing _
              And Target.Count = 1 Then
         With Sheets("commande")
              lig = .Columns("B").Find(secteur, .Range("B8"), , , xlPart).Row
              ligvide = .Columns("B").Find("", .Cells(lig, "B")).Row
              .Cells(ligvide, "B") = Target
         End With
    End If
    End Sub

    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      ci joint maquette
      https://www.cjoint.com/?3KejcvjDCMv

      si tu ne connais pas VBA, tu dis pour l'installation de la macro

      Le déclenchement "double-clic" a été choisi pour marquer une action volontaire

      il serait intéressant d'insérer en ligne 1 des secteurs de produit des étiquettes de champs .

      du fait que l'on emploie VBA, on pourrait se dispenser d'écrire tes formules dans la feuille "commande"; à toi de voir...

      petite interrogation amicale:
      Tu vends de l'alcool aux enfants ?
      0
    2. ar168
       
      petite interrogation amicale:
      Tu vends de l'alcool aux enfants ?


      Zut, je suis découvert...

      Rassure-toi, c'est à usage (à dose "homéopathique") des cuisines didactiques dans les cours de cuisine!

      Pour revenir au bon lui-même, je regarde vos propositions et reviendrai vers vous pour la suite.

      Merci à tous.
      0
    3. ar168
       
      J'ai ouvert la maquette, fais un double-clic sur un article de l'onglet épicerie... et il ne se passe rien
      Je dois avoir raté un épisode...
      0
    4. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      1/as tu le ruban développeur de présent sur ton Excel?

      2/ Il faut télécharger et non ouvrir le lien
      0
    5. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Si l'onglet Développeur n'apparait pas dans le ruban:
      Cliquez sur le bouton Office,
      puis sur le bouton Options Excel.
      Cliquez sur le menu Standard.
      Cochez l'option Afficher l'onglet Développeur dans le ruban.
      Cliquez sur le bouton OK pour valider.

      source:https://silkyroad.developpez.com/Excel/NouveautesExcel2007/#LIII-B-8

      puis
      bouton office- centre gestion confidentialité - parametres du centre de gestion...-activer les macros
      0
  3. balooka Messages postés 8 Statut Membre
     
    J'aurais fait beaucoup plus simple :
    copie des tableaux avec liaison dans la première feuille. On coche les lignes voulues dans les différentes feuilles . On applique un filtre des lignes cochées sur la première feuille.
    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Effectivement très facile avec des enfants...
      0
  4. balooka Messages postés 8 Statut Membre
     
    Je n'ai pas compris la question... ou alors j'ai mal expliqué ma solution. Ma manip n'est à faire qu'une fois, après c'est transparent. Il n'y a plus qu'à cocher dans les différentes feuilles, et le reste se fait tout seul.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ar168
     
    Pour michel_m:

    Les macros étaient désactivés... méa culpa!

    Maintenant, tout marche à merveille.

    Encore une petite question: il est possible d'éviter les doublons dans une feuille. C'est égalent possible avec cette macro?

    A nouveau, un GRAND merci.
    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      il est possible d'éviter les doublons dans une feuille. C'est égalent possible avec cette macro?

      Je regarde, apparemment: oui.

      mais en ce moment on a pas mal de coupures ou micro-coupures car on est en "épisode cévenol" dans mon coin :-/
      donc, sois patient!
      0
    2. ar168
       
      Aucune urgence, rien ne presse.
      0
    3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      et voilà! avec d'autres petites améliorations

      Option Explicit
      
      Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
      Dim Secteur As String, Derlig As Integer, Lig As Integer, Ligvide As Integer
      
      Secteur = UCase(ActiveSheet.Name)
      Derlig = Columns("B").Find("*", , , , , xlPrevious).Row
      If Secteur <> "commande" _
           And Not Intersect(Target, Range("B1:B" & Derlig)) Is Nothing _
                And Target.Count = 1 Then
           With Sheets("commande")
                If Application.CountIf(.Columns("B"), Target) > 0 Then GoTo doublon
                Lig = .Columns("B").Find(Secteur, .Range("B8"), , , xlPart).Row
                Ligvide = .Columns("B").Find("", .Cells(Lig, "B")).Row
                .Cells(Ligvide, "B") = Target
                .Activate
           End With
      End If
      
      Exit Sub
      
      doublon:
      MsgBox "Article déjà commandé!", vbCritical, "Cuisine didactique"
      End Sub
      
      0
    4. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      petite remarque:

      en relisant ton post:
      En fait il faudrait à mon avis abandonner Excel et passer sous Acces pour créer un véritable système style e-commerce: tu cliques sur un objet, une fenêtre s'ouvre pour indiquer la quantité, et le tout génère un bon de commande visible

      c'est faisable facilement ( peut-être) en Excel
      0
    5. ar168
       
      Dans la famille Office: Word et Excel: les bases, y compris le publipostage (c'est déjà pas mal!)

      Access, c'est la planète Mars pour moi!

      Si tu me dis qu'Excel peut faire le travail que je croyais réservé à Access, je dis BRAVO, mais je t'avoue que tu deviens là le gourou d'une secte, celle des vrais utilisateurs d'Excel.
      0