XL 2010 Comment faire une base de données sur Excel

Lynattendu

XLDnaute Junior
Bonjour,
Je débute avec Excel et je me suis lancé dans la création d’un fichier excel pour m’aider dans mon boulot à passer les commandes en fonction des menus ( recettes) et du nombre de convives.
Mais je bloque déjà. Je ne sais pas comment faire pour enregistrer mes recettes ( dans une base de données ou excel si c’est possible) et faire apparaître le uniquement le nom des recettes (une fois enregistrer) dans une feuille ranger par catégorie. Ce tableau contenant le nom des recettes classe par catégorie va me servir pour créer mes menus. Et ce n’est pas fini, si avec votre aide, j’arrive à trouver comment enregistrer les recettes et faire fonctionner la feuille 3. Après j’aimerais en cliquant sur le nom d’une recette la faire apparaître dans le menu de manière a constituer mes menus. Et pour finaliser mon projet c’est de pourvoir en cliquant sur la case commande, obtenir la quantité des aliments a commander en fonction du nombre des convives et des menus. ( feuilles 4 et 5)
honnêtement, je ne sais meme pas si c’est faisable mais Excel a l’air d’être une vrai «machine de guerre » et je me dis que ça doit être possible. Il me reste juste a trouver comment. Si quelqu’un peut me conseiller, je suis preneuse. Merci d’avance pour m’avoir lu et pour votre aide éventuelle.
 

Pièces jointes

  • excel-commande-menu-recette.xlsx
    25.7 KB · Affichages: 30
Solution
Bonjour,

Pour commencer j'ai continuer à travailler sur le fichier et j'ai ajouter d'autres fonctionnalité (Voir Pièce jointe).

Le bouton 7 ne sert qu'a afficher rapidement une recette pour pouvoir faire le teste des macros sans retaper toutes la recette. Je ne pensais pas le garder après la fin de la création du document, pareille pour la feuille 'Exemple Recette'.
On peut ajouter un cellule qui indique numéro de la recette à afficher, mais dans la nouvelle version (Pièce jointe) il est possible d'afficher une recette déjà crée dans la feuille Création grâce à son nom. Et dans la feuille commande recette on choisir une recette et voir la quantité selon le nombre de convives.

Attention toutes les modifications ne sont pas enregistrer...

Ethiryn - Glarilak

XLDnaute Nouveau
Bonjour Lynattendu,

J'aimerais avoir plusieurs précision sur ton problème :
- Comment créé une recette ? et ou doit-elle être enregistrer ?
- Quelle doit être l'utilité de la feuille 'Liste des recettes pioche' ?
- Où doit t'on remplir Commande semaine et commande semaine soir dans la feuille création menu ?
- Pour les feuilles Commande jour et commande semaine y a t-il besoin d'un enregistrement. Exemple, enregistrer les commandes pour dans 3 semaines ? Si oui ou doit-t'il se faire ?

J'espère ne pas avoir mis trop de question:cool:, et pour ton informations ce que tu souhaite faire et réalisable avec les macros de EXCEL.;)

Ethiryn - Glarilak
 

Lynattendu

XLDnaute Junior
Bonjour,
Dans la feuille 1 ( création recette) je crée la recette. Sur la feuille 2 ( commande recette) j’ai les quantités des ingrédients a commander en fonction du nombre de convives ( car mes recettes sont pour 5- 6 personnes et je dois Cuisiner pour 250 300 personnes voir plus. La feuille liste des recette pioche c’est la que j’aimerais qu’apparaisse le nom des recettes pour pouvoir en cliquant dessus les faire apparaître dans la feuille menu ( pour créer mes menus) . Je vais rajouter une feuille ( base) ou j’aimerais que les recettes « créer » soit stocker dedans ( nom recette/ catégorie/ ingredient1/ ingredient2...etc/ quantité1/ quantité2/ ..etc unité1/ unité2/..etc.) mais mon problème c’est que je ne sais pas comment faire que ça s’enregistre dans la feuille ( base) une fois que j’ai inscrit toutes mes infos dans la feuille 1 ( création recette) j’aimerais que la recette s’enregistre dans la feuille base quand je clique sur enregistrer pas avant.
Merci beaucoup de votre aide c’est très sympa.
 

Ethiryn - Glarilak

XLDnaute Nouveau
Il est très simple de copier les données que quant le bouton enregistrer et cliquer. Dans le fichier le bouton est représenter par une cellule, resteras t-il comme cela où voulez vous le transformer en bouton que l'on peut déplacer sur toutes la feuille ?

Le code qui sera nécessaire si pour copier les données d'une feuille à une autres est le suivant :
Code:
Sheets("création recette").Range("A1") = Sheets("Base").Range("S1")
Ce code est à adapter selon les lignes, colonne feuille ou il faut coller le texte.
Sheets désigne la feuille
Range la cellule
Il faut donc mettre à gauche du "=", la feuille et la cellule dans lesquels on veut copier la données et à droite la feuille et la cellule de départs.

Si tu veux que je l’insère directement dans ton fichier dit le moi et dans ce cas il faudrait avoir le fichier avec la feuille Base.

Quant tu veux crée une recette qu'écrit-tu dans chaque cellule ? Pourrait-tu mettre un ou plusieurs exemples bidon pour montrer le résultat attendu ?

Pour répondre à la question comment sélectionner une recette pour crée le menu, voici un code qui fonctionne :
En code de la feuille 3 (liste des recettes pioche) :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error Resume Next
    If Target.Value <> "" And Target.Row > 3 Then
        Nom_Recettes_Selection = Target.Value
        Sheets("creation menu").Activate
    End If
End Sub
En code de la feuille 4 (liste des recettes pioche) :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim Colonne As Object, Ligne As Object
    Set Colonne = CreateObject("Scripting.Dictionary")
    Set Ligne = CreateObject("Scripting.Dictionary")
    Colonne.Add 3, "": Colonne.Add 4, "": Colonne.Add 5, "": Colonne.Add 6, "": Colonne.Add 7, ""
    Ligne.Add 4, "": Ligne.Add 6, "": Ligne.Add 8, "": Ligne.Add 10, "": Ligne.Add 12, "": Ligne.Add 14, ""
    Ligne.Add 16, "": Ligne.Add 19, "": Ligne.Add 21, "": Ligne.Add 23, "": Ligne.Add 25, "": Ligne.Add 27, ""
    Ligne.Add 29, "": Ligne.Add 31, ""
    If Colonne.Exists(Target.Column) And Ligne.Exists(Target.Row) And Nom_Recettes_Selection <> "" Then
        Target.Value = Nom_Recettes_Selection
        Nom_Recettes_Selection = ""
        Sheets("liste des recettes pioche").Activate
    End If
End Sub
En ajoutant un module il faut déclarer la variable suivante :
VB:
Global Nom_Recettes_Selection As String
 
Dernière édition:

Lynattendu

XLDnaute Junior
Bonjour,
Merci pour tes réponses, mais je suis vraiment vraiment débutante et je ne sais même pas comment ni où mettre les lignes de code que tu m’as si gentiment écrite ( et merci beaucoup pour les explications qui vont avec car au moins j’apprends pleins de choses alors merci). si tu veux bien j’aimerais essayer de les mettre moi même mais je ne sais pas. Est ce que tu peux m’expliquer ou et comment faire si c’est trop demander et trop long a expliquer ? Ah et la case enregistrer en bouton se serait mieux mais je ne sais pas non plus comment faire. J’ai encore une info, j’aimerais que lorsque j’ai cliquer sur enregistrer, je puisse créer une nouvelle recette mais toujours sur cette feuille. Je ne sais pas si je m’explique bien. Je te joins le fichier avec la feuille base et une recette africaine que j’aime bien. Merci encore.
 

Pièces jointes

  • excel-commande-menu-recette.xlsx
    28 KB · Affichages: 12

Ethiryn - Glarilak

XLDnaute Nouveau
La première chose à faire pour pouvoir écrire le code macro c'est avoir un fichier EXCEL qui acceptent les macros.
Pour ton apprentissage :
-.xlsx est un fichier EXCEL sans macro
-.xlsm est un fichier EXCEL avec macro
Pour modifier ton classeur et qu'il accepte les macros, il suffit de le d'enregistrer sous le fichiers en sélectionnant .xlsm en extension. Il ne faudra utiliser plus que ce fichier, l'autre sera inutile.

Une fois que c'est fait il faut activer l'onglet développeur si ce n'est pas fait. Pour l'activer Fichier => Options => Personnaliser le ruban => A droite cocher la case au niveau de Onglet développeur.

Pour le bouton, va dans l'onglet Développeur => Insérer => ActiveX => Contrôle ActiveX Bouton Et tu pourras créé un bouton enregistrer. Ensuite Clique sur propriété dans l'onglet développeur puis dans (Name) change le nom pour facilement le reconnaître.

Puis pour créé du code en vba il suffit de faire le raccourcis Alt + F11.

Dans la nouvelle fenêtre, à gauche apparaît la liste des modules, feuilles du classeurs,...
Pour insérer le code que je t'ai mis dans le poste précédent. Sélectionne 'liste des recettes' dans l'écran noir colle le code correspondant, fait pareille avec la feuille 'création menu' puis après clique droit sur une feuille et insérer un module. Dans celui-ci copier le code correspondant.

Pour pouvoir réécrire une nouvelle recette, il suffit de vider les cellules pour sa au lieu de Range("A1")=Range("A2") il suffit de lui dire de rentrer Range("A1")="".

Une question dans la feuille 'commande recette' veux tu qu'il s'affiche toujours la recette activer dans la feuille 'creation recette' ou veux tu pouvoir choisir laquelle tu veux afficher ?

T'es feuilles Unité et Catégories pourrait être fusionner en une seule, que l'on pourrait nommer Liste. On pourrait dedans ajouter un recensement de toutes les recettes du fichier.

Personnellement je pense que la méthode de création de ta feuille données n'est pas tout à fait au points, puisque si tu as plus que 20 ingrédients tu dois ajouter 3 nouvelles colonne, est le tout n'est pas forcements très lisible à cause de taille de toutes les colonnes.
Moi je te propose quant même une autre solution à toi de choisir laquelle veut-tu.
Voici les colonnes que je propose, pour chaque recette il y a aura plusieurs ligne avec pour chacune un ingrédient.
Nom de la recette | Ingrédient | Quantité | Unité
 
Dernière édition:

Ethiryn - Glarilak

XLDnaute Nouveau
Ayant eu du temps cette après-midi j'ai modifier le classeur que tu m'as donnée un peu dans tout les sens pour essayer d’intégrer les première fonctionnalités que tu as demandé.
Certaine partie on peut-être trop été modifier par rapport à ce qui était attendu:oops:, si c'est le cas n'hésite pas à m'en faire part, tout peut être modifier. Mais il faut faire attention au macro qui sont adapter au fichier, il faut donc les adapter ensuite.
Dans le classeur sur plusieurs des feuilles j'ai fait un résumer de ce que j'ai fait sur cette feuille dans une cellule, lit le pour comprendre le fonctionnement, c'est cellules peuvent être retirer sans problème.
Tu peux tout à fait crée ton fichiers et t'inspirer de ce que j'ai fait ou reprendre le fichier tout fait.
Je suis toujours dispo pour à toutes autres question. ;)

Ethiryn - Glarilak
 

Pièces jointes

  • excel-commande-menu-recette.xlsm
    63.1 KB · Affichages: 20
Dernière édition:

Lynattendu

XLDnaute Junior
Bonjour,
Merci beaucoup pour ton super boulot. et toutes tes explications, c'est cool. je pense que je vais continuer sur le fichier tout fait, je vais en faire une copie ( par sécurité) et continuer dessus car j'ai encore pleins de trucs a faire fonctionne et rajouter. Encore merci pour ton aide.
Pour la feuille la base c'est super, c'est tout a fait comme cela que je l'imaginais, mais j'avais du mal a la transcrire correctement.( je me complique la vie peut-être, j'aurais du y penser ton idée est beaucoup plus visuel et pratique. Merci
Liste des recettes pioche c'est nikel , tout se met dedans au fur et à mesure.
Pour la creation des menu le tableaux fonctionne très bien, il me reste a faire fonctionner les autres fonctions mais je verrais après.
car tu m'as donné une super idée. j'ai vu qu'en cliquant sur le bouton7 la recette de la thiboudienne revenait et c'est génial.Car si j'arrive a rajouter un numéro aux recettes enregistrer peut être qu'avec le bouton 7 en lui indiquant le numéro de la recette, il va refait apparaitre la recette ( ex: n°10) dans creation recette et ainsi je pourrais savoir la quantité d'aliment a commander en fonctionne du nombre de convives. . Puisque la recette qui apparait dans creation recette est lier a commande recette. ça doit être possible c'est sur, Excel c'est un logiciel vraiment beaucoup plus puissant que je l'imaginais.Tu dois très certainement savoir comment faire mais je ne voudrais pas abuser, tu m'as déjà énormément aidé. Merci encore pour ton aide.
 

Lynattendu

XLDnaute Junior
Rebonjour,
ah j'ai oublié avec tout ça, de répondre a ta question. la case commande dans creation de recette. je l'avais mis pour passer sur la feuille commande recette en cliquant dessus, pour pouvoir modifier le nombre de convives m'indiquant ainsi les quantité d'aliments a commander mais c'est inutile je vais l'enlever car j'ai juste a passer d'une feuille a l'autre surtout si j'arrive a faire réapparaitre les recettes enregistrer grace au bouton7.
 

Pièces jointes

  • fichier recette commande.xlsm
    57.3 KB · Affichages: 5

Lynattendu

XLDnaute Junior
rebonjour,
dit moi si je ne fais pas erreur: pour pouvoir refaire apparaitre les recettes dans le fichier creation recette, il faut que je refasse le tableau de la base comme celui de creation recette?
nom recette/nb convives/catégorie/numéro/ fruits et légumes/viande/Poisson/Sec/Frais/surgelés/Quantité/unités
 

Pièces jointes

  • fichier recette commande-en cours de moidif.xlsm
    58.8 KB · Affichages: 7

Ethiryn - Glarilak

XLDnaute Nouveau
Bonjour,

Pour commencer j'ai continuer à travailler sur le fichier et j'ai ajouter d'autres fonctionnalité (Voir Pièce jointe).

Le bouton 7 ne sert qu'a afficher rapidement une recette pour pouvoir faire le teste des macros sans retaper toutes la recette. Je ne pensais pas le garder après la fin de la création du document, pareille pour la feuille 'Exemple Recette'.
On peut ajouter un cellule qui indique numéro de la recette à afficher, mais dans la nouvelle version (Pièce jointe) il est possible d'afficher une recette déjà crée dans la feuille Création grâce à son nom. Et dans la feuille commande recette on choisir une recette et voir la quantité selon le nombre de convives.

Attention toutes les modifications ne sont pas enregistrer automatiquement dans la feuille création.
Et pour le moment on ne peut que supprimer une recette déjà créé depuis cette page. La modification d'un ingrédient, le réenregistrement après modifications,... ne sont pas encore programmer. Il demandera donc un nouveau nom à chaque réenregistrement.

Je pense, après t'es explication que le bouton 'Commande recette' peut être utiliser sans problème.:)

Et non il n'y a pas besoin de changer la feuille Base, puisqu'il y a une colonne catégories qui correspond à la colonne pour de l'ingrédient. ;)

J'ai deux petites questions moi aussi, les cellules colonne H feuille 'création menu' doivent servir de bouton pour faire les commandes sur les feuilles commande du jour et de la semaine ? Et seconde question faut-il enregistrer les résultat des commandes, pour pouvoir retrouver la commande des semaines passée, ou futur ?

Deux dernière chose :
- Si tu préfère crée ton fichier en t'aidant du mien tu peux.
- N'hésite pas à regarder le code que j'ai taper, et pour le comprendre tu peux cherche sur internet ou me demander le fonctionnement des formules et autres fonction utiliser !:D

Ethiryn - Glarilak
 

Pièces jointes

  • excel-commande-menu-recette.xlsm
    77 KB · Affichages: 62
Dernière édition:

Lynattendu

XLDnaute Junior
Bonsoir,
tu as raison, pas besoin de rajouter un numéro, le faites de retrouver la recette avec le nom c’est plus simple.
Idem pour le bouton.
Oui les cellules colonne H « création menu » dans l'idée doivent servir pour passer les commandes des recettes du menu EN FONCTION du nombre de convives à remplir ( car les recettes sont pour 4-6 pers et je prépare pour 200 pers et beaucoup plus par jour. le nombre de convives varie tous les jours, je ne peux pas me permettre d’acheter trop ou de manquer. Actuellement je calcul tout a la manuellement ça me prend un temps fou. C’est pour celà que je me suis lancé dans ce fichier car un copain m’a dit que je pouvais le faire avec excel ) en tout cas sans ton aide se serait pas aussi avancé et certainement pas aussi clair et en prime j’apprends pleins de truc et le code c’est très sympa, je suis même surprise de comprendre aussi bien et vite. Honnêtement je pensais me lancer dans une galère qui finirait par m’aider. Et là, le fichier évolue vite grâce a ton aide, alors encore merci.
Ah oui ce serait un super plus si je pouvais retrouver les menus et les commandes des semaines passées et futures.
Ton fichier va me simplifier la vie plus vite que le miens. Je vais très certainement utiliser le tiens si tu n’y vois pas d’inconvénient. Mais j’aime beaucoup découvrir excel, je regarde ton code des feuilles et je fais des essais, en modifiant des tout ptit trucs de ton code pour vérifier que j’ai bien compris le code et sa fonction. Je pense que lorsque je le fichier sera au point. Je me lancerais dans un autre fichier pour autre chose, histoire d’apprendre et j’aurais pleins d’autres questions sur le code et les fonctions possible avec Excel. Mais bon un chose après l’autre. En tout cas bien merci.
 

Ethiryn - Glarilak

XLDnaute Nouveau
L'idée de modifier un les paramètres et voir ce que cela change est une très bonne idée ! ;) L'idée de crée un autre fichier ensuite en est une toutes aussi bonne.
Moi je veux bien continuer à ajouter d'autres fonctions, j'ai commencer à crée celle supprimer ou modifier un ingrédient par un Click droit, mais je ne serais pas dispo la semaine pour bosser dessus, seulement le weekend, donc je ne prévoit pas de répondre tout le temps en semaine. :confused: Mais si des question te viens pose les je pourrais peut être y répondre dans la semaine ou plus dans le weekend, ou un autre membre du forum pourras le faire. ;)
Ethiryn - Glarilak
 

Lynattendu

XLDnaute Junior
Bonjour,
C’est super que tu sois ok pour ajouter d’autres fonctions car le classeur Excel avance bien grâce a toi, moi je débute vraiment et c’est compliqué pour moi. en plus j’ai vraiment besoin que tout fonctionne. Ah j’ai une question, j’essai de reproduire la fonction annulé une recette de la feuille création de recette au menu j’ai rajoute la case annuler menu et enregistrer menu. J’ai modifier le code que t’as utilisé pour la feuille création recette . Mais ça ne fonctionne pas car je ne vois pas comment tu fais pour indiquer que c’est en cliquant sur la Case annuler menu que tout doit s’effacer. J’ai trouvé pour quels sont les cases a effacer mais pas que c’est la case annuler menu qui efface ( qui fait l’action) . Sinon t’inquiete pas, réponds quand tu peux, quand tu veux, tu n’as aucune obligation tu le sais. En plus, du 7 au 16 je ne vais plus pouvoir avoir accès a internet, le réseau ne passe pas où je vais être. Merci beaucoup pour ton aide.
 

Lynattendu

XLDnaute Junior
Bonjour Ethiryn-Glarilak,
Désolé pour mon absence. Je suis de retour, je ne voudrais pas abuser mais par hasard aurais tu eu le temps de rajouter quelques fonctions ( modifier un ingrédient, conserver en mémoires les menus, commandes). Très honnêtement ça m'aiderais énormément, je ne sais pas comment faire et je manque aussi de temps. En tout cas merci beaucoup pour toute ton aide. Tu m'as déjà beaucoup apporté. Si tu le veux bien pourrais tu me mettre en pièce jointe ton fichier si ce n'est pas trop abuser de ta gentillesse. Merci.
 

Discussions similaires

Réponses
5
Affichages
128
Réponses
5
Affichages
310

Statistiques des forums

Discussions
312 100
Messages
2 085 294
Membres
102 854
dernier inscrit
ADRIENVR