Excel: données (validation) [Résolu/Fermé]
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
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
A voir également:
- Excel: données (validation)
- Excel: données (validation) ✓ - Forum - Excel
- Excel Données Validation ✓ - Forum - Excel
- EXCEL Données Validation ✓ - Forum - Excel
- Liste données Validation NON VISIBLE excel ✓ - Forum - Excel
- Excel condition validation données ✓ - Forum - Excel
5 réponses
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.
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.
michel_m
- Messages postés
- 16376
- Date d'inscription
- lundi 12 septembre 2005
- Statut
- Contributeur
- Dernière intervention
- 25 janvier 2021
Bonjour
macro à installer dans le module "Thisworkbook"
déclenchement par double clic sur l'article choisi
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
michel_m
- Messages postés
- 16376
- Date d'inscription
- lundi 12 septembre 2005
- Statut
- Contributeur
- Dernière intervention
- 25 janvier 2021
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 ?
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 ?
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.
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.
michel_m
- Messages postés
- 16376
- Date d'inscription
- lundi 12 septembre 2005
- Statut
- Contributeur
- Dernière intervention
- 25 janvier 2021
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
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
balooka
- Messages postés
- 8
- Date d'inscription
- mardi 8 septembre 2009
- Statut
- Membre
- Dernière intervention
- 4 novembre 2011
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.
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.
balooka
- Messages postés
- 8
- Date d'inscription
- mardi 8 septembre 2009
- Statut
- Membre
- Dernière intervention
- 4 novembre 2011
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.
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.
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.
michel_m
- Messages postés
- 16376
- Date d'inscription
- lundi 12 septembre 2005
- Statut
- Contributeur
- Dernière intervention
- 25 janvier 2021
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
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
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.
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.
pijaku
- Messages postés
- 12238
- Date d'inscription
- jeudi 15 mai 2008
- Statut
- Modérateur
- Dernière intervention
- 26 janvier 2021
Bonjour ar168, Michel_m,
J'avoues suivre ce sujet car il est vrai que c'est toujours intéressant de suivre les travaux de Michel... Mais en plus ce cas peux m'aider pour une application au taf.
J'interviens juste pour souligner l'opinion de michel : c'est faisable facilement ( peut-être) en Excel. Il est en effet aisément réalisable d'insérer soit une inputbox (solution la plus simple mais la plus aléatoire au niveau de la saisie par l'utilisateur), soit un petit UserForm pour demander la quantité.
En reprenant le code de michel, en supposant que la quantité doive être stockée en colonne C feuille "commande", et en partant sur une simple InputBox sans test (et donc libre cours à toutes les fantaisies dse bug possible et imaginable par l'utilisateur...), on peux faire quelque chose comme :
Je précise bien que la modification que j'ai apporté au code de michel n'est vraiment pas optimisée...
J'avoues suivre ce sujet car il est vrai que c'est toujours intéressant de suivre les travaux de Michel... Mais en plus ce cas peux m'aider pour une application au taf.
J'interviens juste pour souligner l'opinion de michel : c'est faisable facilement ( peut-être) en Excel. Il est en effet aisément réalisable d'insérer soit une inputbox (solution la plus simple mais la plus aléatoire au niveau de la saisie par l'utilisateur), soit un petit UserForm pour demander la quantité.
En reprenant le code de michel, en supposant que la quantité doive être stockée en colonne C feuille "commande", et en partant sur une simple InputBox sans test (et donc libre cours à toutes les fantaisies dse bug possible et imaginable par l'utilisateur...), on peux faire quelque chose comme :
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 Dim Quantite ' 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 Do Quantite = InputBox("Saisir la quantité désirée", "Quantité") If Not IsNumeric(Quantite) Then MsgBox "Veuiller saisir un nombre entier" End If Loop While Not IsNumeric(Quantite) .Cells(Ligvide, "B") = Target .Cells(Ligvide, "C") = Quantite .Activate End With End If Exit Sub doublon: MsgBox "Article déjà commandé!", vbCritical, "Cuisine didactique" End Sub
Je précise bien que la modification que j'ai apporté au code de michel n'est vraiment pas optimisée...
michel_m
- Messages postés
- 16376
- Date d'inscription
- lundi 12 septembre 2005
- Statut
- Contributeur
- Dernière intervention
- 25 janvier 2021
tu deviens là le gourou d'une secte, celle des vrais utilisateurs d'Excel.
si c'est de l'humour c'est raté
si les vrais utilisateurs.... si c'était une secte, on n' essaierait pas de t'aider bénévolement
quant à me comparer à un gourou... :-((
pour m'amuser,je vais quand m^me essayer de faire un vrai-faux look e-commerce simplifié....
ca risque d'^tre long quand même
si c'est de l'humour c'est raté
si les vrais utilisateurs.... si c'était une secte, on n' essaierait pas de t'aider bénévolement
quant à me comparer à un gourou... :-((
pour m'amuser,je vais quand m^me essayer de faire un vrai-faux look e-commerce simplifié....
ca risque d'^tre long quand même