Connexion classeurs fermés et liste déroulante [Résolu/Fermé]

Signaler
Messages postés
272
Date d'inscription
samedi 21 avril 2007
Statut
Membre
Dernière intervention
28 août 2015
-
Le Pingou
Messages postés
9517
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
30 décembre 2019
-
Bonjour
Ne trouvant pas de réponse, je me tourne vers vous.

j'ai un classeur excel qui me sert de base de données avec des valeurs associées à des aliments

J'ai un deuxième classeur qui me sert à personnaliser mes recettes avec les éléments suivants :
Colonne A : liste déroulante avec le nom des ingrédients du classeur 1
Colonne B : une quantité de l'ingrédient
Colonne C : la multiplication entre la quantité de l'ingrédient et la valeur de ce même ingrédient donnée par le classeur 1.

Or il faut que la base de données soit impérativement ouverte pour obtenir les valeurs dans la colonne C et un liste déroulante dans la colonne A.

Comment faire ?
Ou quelle macro dois je utiliser pour ouvrir en arrière plan la base de données et la fermer automatiquement lors de la fermeture du classeur ?

Merci

3 réponses

Messages postés
351
Date d'inscription
vendredi 17 avril 2015
Statut
Membre
Dernière intervention
1 janvier 2017
29
C'est tout à fait faisable, mais il faut pour cela paramétrer Excel pour qu'il autorise les macros à fonctionner, chose qui n'est pas le cas par défaut. Par la suite, il faut mettre en place cette macro.
Ces 2 classeurs sont-il dans le même dossier ?

Je suppose que le but de la manoeuvre est que les liaisons se fassent ?
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 80117 internautes nous ont dit merci ce mois-ci

Cedricle2905
Messages postés
272
Date d'inscription
samedi 21 avril 2007
Statut
Membre
Dernière intervention
28 août 2015
6
Bonjour
Merci de votre réponse.
C'est deux classeurs ne sont pas dans le même dossier c'est pourquoi je voulais insérer le lien dans la cellule A1. Ce même lien serait récupérer par la macro pour ouvrir le classeur en arrière plan.
Mais je ne sais pas faire cela ....
Fifousalinas
Messages postés
351
Date d'inscription
vendredi 17 avril 2015
Statut
Membre
Dernière intervention
1 janvier 2017
29
Il n'est pas nécessaire de mettre le chemin du classeur à ouvrir dans une cellule si celui-ci n'est pas amené à être déplacé ou renommé. Son chemin peut être placé dans la macro qui l'ouvrira tout simplement.
Sans vouloir être indiscret, ce serait un problème de les placer dans le même dossier maintenant ? Vous avez peur de perdre les liaisons existantes ? Il y a une fonction pour les faire suivre si vous déplacez cette base de données....

A savoir que si ils sont dans le même dossier, la macro et les liaisons fonctionneront même sur un autre ordinateur, ou depuis une clé USB. Il suffit que les 2 restent dans la même "racine" (dossier)

Vous avez donc 2 classeurs. Celui "avec des valeurs associées à des aliments" qui contient des valeurs, et l'autre "qui me sert à personnaliser mes recettes" dont vous vous servez plus fréquemment. Seul ce dernier a des liens qu'il va chercher dans le 1er, le 1er n'étant qu'une base de données utile au second.

Vous souhaitez que lorsque vous ouvrez celui "qui me sert à personnaliser mes recettes", l'autre s'ouvre pour mettre à jour les liens et données et reste ouvert en arrière plan tant que vous ne refermez pas celui "qui me sert à personnaliser mes recettes"

J'ai bon ?
Cedricle2905
Messages postés
272
Date d'inscription
samedi 21 avril 2007
Statut
Membre
Dernière intervention
28 août 2015
6 > Fifousalinas
Messages postés
351
Date d'inscription
vendredi 17 avril 2015
Statut
Membre
Dernière intervention
1 janvier 2017

Presque =)
Je préférerai que les liens restent "mobile" étant donné que c'est la première fois qu'un tel travail est fait. Il vos mieux un cahier des charges drastique au début quitte à le simplifier par la suite.
De plus les recettes (classeur 2) ne seront pas forcément dans le même dossier c'est pourquoi je préfère avoir un dossier base de donné et des dossiers recettes distincts.

Ainsi comment écrire une macro avec les caractéristiques suivantes :
Lors de l'ouverture du classeur recette (classeur 2), la base de données (classeur 1) s'ouvre en arrière plan et non visible dans la barre de tâche. Cette base de données (classeur 1)aurait son lien dans une cellule (ex A1) du classeur de la recette (classeur 1).

Lors de la fermeture, la base de données (classeur 1) se ferme aussi

Merci

Le classeur ouvert "en arrière plan" sera forcément visible dans la barre de tâche.
Pour faire simple, on met une macro automatique à l'ouverture du classeur2 (Workbook_open). A l'ouverture de ce classeur, elle ouvre le classeur1 puis se cale sur l'affichage du classeur2 détenteur de la macro.....puis on travaille dans le classeur2 qui est au 1er plan. Dans la barre de tâches, il n'y aura qu'un icône Excel, mais si on met le pointeur dessus, il affichera 2 classeurs (En quoi est-ce gênant ?)

Pour la fermeture, on sera obligé de passer par une autre macro qui dans un premier temps enregistrera le classeur1 et le fermera dans son emplacement d'origine, puis enregistrera le classeur2 dans son emplacement d'origine également, mais ne le fermera pas Il devra être fermé par vos soins par la croix.
Ca ne demandera pas d'être enregistré puisque ça aura été fait par la macro juste avant, sauf si après cette macro vous y modifiez quelque chose bien sûr
Je ne maitrise pas Excel à 100%, mais je ne connais pas de manipulation par macro qui permette de dire à une macro de fermer également le classeur qui détient la macro, car par définition, la macro ne peut être exécutée que si son classeur est actif. La macro prend fin quand elle arrive à l'instruction "End" et dans ce cas, le "End" sera forcément après l'instruction "ActiveWorkbook.close" > problème !!!

On peut donc exécuter une macro et plusieurs chemins distincts, c'est pas un soucis, mais ces chemins doivent être renseignés quelque part. Soit directement dans la macro, soit par un système de vases communicant de chemins de dossiers ou de fichiers renseignés dans des cellules.
Messages postés
9517
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
30 décembre 2019
989
Bonjour,
Juste au passage, s'il s'agit uniquement de la liste déroulante, vous pouvez le faire avec le classeur fermé en procèdent comme suit : par exemple :
Liste sur autre classeur fermé

---Dans le classeur Cla_BD.XLS:

-Nommer le champ contenant la liste (A2:A5) [Maliste]

---Dans le classeur Cla_2.XLS:

-Sélectionner D2:D10
= Cla_BD.xls!Maliste
-Valider avec Maj+Ctrl+Entrée

-Sélectionner D2:D10
-Insertion/Nom/Définir
Maliste
DECALER($D$2;;;NB.SI($D$2:$D$10;"<>#N/A"))


Fifousalinas
Messages postés
351
Date d'inscription
vendredi 17 avril 2015
Statut
Membre
Dernière intervention
1 janvier 2017
29
Ah bin voilà, je suis dépassé !!! lol
Quand je dis que je connais pas tout !!!
Cedricle2905
Messages postés
272
Date d'inscription
samedi 21 avril 2007
Statut
Membre
Dernière intervention
28 août 2015
6
Bonjour
Merci pour vos réponses
Mais je n'arrive pas à faire la minip dans le cla_2 ...
Messages postés
9517
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
30 décembre 2019
989
Bonjour,
Pouvez-vous me préciser exactement ce que vous avez réalisé sur le classeur de donnée (correspond au Cla_BD.xls) ?
Pour : Fifousalinas, rassurez-vous ce que vous avez proposé est juste. S'il s'agit uniquement d'une liste déroulante alors ma proposition permet de se passer de macro.


Salutations.
Le Pingou
Fifousalinas
Messages postés
351
Date d'inscription
vendredi 17 avril 2015
Statut
Membre
Dernière intervention
1 janvier 2017
29
Merci, ça me rassure !!
Moi j'aurais copier le contenu du classeur distant dans un onglet caché avant de le refermer, au moins il n'y aurait qu'un classeur.
Je n'ai jamais réussi à faire un menu déroulant sans que les données de ce menu soient dans la même page.......
Le Pingou
Messages postés
9517
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
30 décembre 2019
989
Bonjour Fifousalinas,
Essayer une fois de voir, dans l'aide Excel (touche : F1) ce que vous trouvez en mettant comme recherche : liste déroulante ... très intéressant.... !
Salutations.
Le Pingou
Cedricle2905
Messages postés
272
Date d'inscription
samedi 21 avril 2007
Statut
Membre
Dernière intervention
28 août 2015
6
J'ai trouvé la solution toujours avoir la BDD dans le classeur ...
Le Pingou
Messages postés
9517
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
30 décembre 2019
989
Bonjour,
Alors là c'est vous qui le dite, mais ce n'est pas nécessaire.
Salutations.
Le Pingou