|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Gestion comptable Inscription : avril 2011 Messages : 4 ![]() |
Bonjour à toutes et à tous,
Ceci est mon premier fil sur le forum et je suis un debutant. Veuillez me pardonner pour ma question J'ai cherché une solution simple, sans résultat... Je dispose d'une liste de fournisseurs (mise à jour régulière de celle-ci!) Fichier indépendant nommé "Liste_fournisseurs" je gère différent pôles achat utilisant chacun un fichier excel pour renseigner leur dépenses. que l'on nommera respectivement "Achat_pôle_1", "Achat_pôle_2", etc. Comment utiliser mon fichier fournisseur pour créer une liste de choix dans leur fichier respectif (qui tiendra donc compte des mises à jour), en y intégrant une saisie semi automatique? D'avance, merci pour votre aide. Cornouaie. |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Philippe TulliezDéveloppeur et formateur VBA, Excel et Word. Inscription : janvier 2010 Messages : 1 305 ![]() |
Bonjour,
Il y a deux possibilités. L'une par VBA, l'autre en utilisant les fonctions, la liaison et la Validation de données. Prenons le deuxième cas. La validation de données ne peux faire référence à des cellules se trouvant sur une autre feuille ou un autre classeur que si celles-ci sont nommées. Donc, la première chose à faire, c'est de nommer la colonne où se trouve les noms des fournisseurs dans le classeur "Liste_fournisseurs". Ensuite dans les classeurs "Achat_pôle_1", "Achat_pôle_2" appliquer la validation de données en faisant référence à ce nom, puis utiliser les fonctions de recherche tel que RECHERCHEV (didacticiel à consulter) pour aller chercher les divers renseignements. Cette opération doit être faite avec les classeurs concernés ouverts. Ainsi il y aura une liaison entre ces classeurs. SI l'on utilise la technique des listes et Data Base dynamiques, la validation de données faisant référence à ces listes ou Data Base dynamique ne fonctionneront pas parce-que la fonction DECALER ne marche pas depuis un autre classeur. L'alternative à cet inconvénient et c'est ce que j'adopte comme solution est de créer une feuille supplémentaire dans le classeur qui est en liaison avec le fichier de référence ici les classeurs "Achat_pôle_1", "Achat_pôle_2", dans cette feuille, je place cette formule. Code :
=SI(LIGNE()-1<=nbFou;'Z:\Nom du chemin\[Liste_fournisseurs.xls]Fournisseurs'!A2;"") Ensuite j'effectue toutes mes recherches depuis cette feuille en utilisant les listes et DataBase dynamique (avec la fonction DECALER.
__________________
Philippe Tulliez http://philippe.tulliez.be Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau) Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Gestion comptable Inscription : avril 2011 Messages : 4 ![]() |
Bonjour corona,
Je suis vraiment désole, mais je n'ai pas compris la marche à suivre J'ai nommer la colonne "c_fournisseurs" dans mon fichier "l_fournisseurs" (Cf Pièce jointe) Si j'ai bien compris, ni la validation de données, ni la fonction décaler ne fonctionne d'un classeur à l'autre. J'ai donc crée un onglet "l_fournisseurs" dans les fichiers "achat_pôle" pour y transférer la liste. C'est là que je dois utiliser la fonction "recherchev"? A priori, je n'ai qu'une seule information à extraire du fichier l_fournisseurs, le nom. Quelle fonction utiliser pour cela en sachant que la liste n'est pas exhaustive? Ensuite, je devrais gérer le problème de la saisie semi-automatique avec "Décaler" si j'ai bien compris. Votre formule est à mettre dans la première cellule de la colonne "l_fournisseur" des fichiers "achat_pôle"? Merci pour votre indulgence. Cornouaie Petit Edit: J'ai réussi à faire fonctionner ta formule. merci! Mais pour mettre à jour la liste le fichier "l_fournisseur" doit être ouvert. quelle solution pour ce problème? une macro qui demande l'ouverture du fichier source à chaque fois que les utilisateurs ouvriront leur fichier "Achat_pôle"? Je passe à la suite, la liste de choix avec saisie semi-auto. J'ai vraiment l'impression d'être un boulet |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() Philippe TulliezDéveloppeur et formateur VBA, Excel et Word. Inscription : janvier 2010 Messages : 1 305 ![]() |
Bonjour,
J'ai écrit une grosse bêtise en affirmant que l'on pouvait utiliser la validation de données en faisant référence à un autre classeur à condition d'utiliser une plage nommée. J'ai répondu un peu vite sans le vérifier. J'avais palier à ce problème, en créant une feuille dans le classeur qui faisait appel à une database se trouvant sur un autre classeur. J'ai placé deux classeurs exemples ici Un classeur nommé Modèle Facture et l'autre FactDataBase Modèle facture à une feuille (Facture) qui contient un modèle de facture et deux autres feuilles linkCli et linkArt qui ont un lien avec les feuilles Clients et Articles du classeur FactDataBase Les feuilles du classeur Modèle facture sont protégées mais sans mot de passe. Sur la feuille Facture du classeur Modèle Facture, il y a deux listes (Validation de données) une en D10 et sur la plage B21:B45 La feuille linkCli ne peux recevoir que 3 clients (c'est pour l'exemple) Si un quatrième client est ajouté dans le classeur database, un message va s'afficher en K2 pour signaler qu'il y a dépassement. Je pense que la lecture des formules utilisées sera plus parlant qu'une longue explication Attention : lors de la première utilisation du classeur Modèle facture, il faudra modifier la liaison.
__________________
Philippe Tulliez http://philippe.tulliez.be Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau) Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
|
|
|
00
|
|
|
#5 | |
|
Invité de passage
![]() Gestion comptable Inscription : avril 2011 Messages : 4 ![]() |
Bonjour,
Merci tout d'abord pour le fichier, ça permet de mieux comprendre le raisonnement. 2 questions: Dans le fichier "modèle facture" feuille "Facture" pour choisir le client avec validation de données, tu utilise une liste "dbrCli", je ne la retrouve pas. Je trouve bien la liste des codes clients dans la feuille " linkCli" mais pas le nom de la liste "dbrCli". Et comment procède tu exactement pour importer la liste des clients avec ta formule. Citation:
Je dois recopier la formule dans toute la colonne? Si oui, à quoi sert le "Ligne()>NBval? Merci d'avance. Sans vouloir abuser, je cherche la solution pour mettre à jour la liste à chaque ouverture du fichier, sans résultat. Cornouaie. |
|
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() Philippe TulliezDéveloppeur et formateur VBA, Excel et Word. Inscription : janvier 2010 Messages : 1 305 ![]() |
Bonjour,
Réponses aux questions 1) La liste dbrCli est une liste dynamique qui est référencée à l'aide de la formule DECALER et n'est donc pas visible avec la liste proposée dans la Zone des noms mais on la trouve si l'on fait Insertion/Nom/définir... (pour Excel 2003) ou encore mieux à l'aide de la touche F3. 2) Oui, il faut recopier cette formule sur autant de lignes qu'il n'y a de record dans la DataBase d'où la formule que j'ai mis en K2 sur la feuille Facture qui contrôle si le nombre de lignes dans la feuille linkCli est équivalent au nombre de lignes dans la feuille Clients A propos de : Code :
=SI(LIGNE()>NBVAL([FactDataBase.xls]Clients!$A:$A);"";[FactDataBase.xls]Clients!B3) NBVAL([FactDataBase.xls]Clients!$A:$A) donne le nombre de cellules remplies dans la feuille du classeur référencé. Donc cette formule fait le lien avec la cellule de la feuille Clients du classeur FactDataBase se trouvant sur la même ligne tant que LIGNE() n'est pas supérieur à NBVAL() dans le cas contraire il ne met rien dans la cellule "".
__________________
Philippe Tulliez http://philippe.tulliez.be Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau) Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
|
|
|
00
|
|
|
#7 | |
|
Invité de passage
![]() Gestion comptable Inscription : avril 2011 Messages : 4 ![]() |
Bonjour,
Je m'arrache les cheveux ... Les formules fonctionnent et j'obtiens ma liste de choix, mais avec toutes les valeurs vides... NBVAL compte les cellules non-vides, donc comme j'applique la formule Citation:
y'a t'il une solution pour ne compter que les cellules dont la valeur est non nulle. Je désespère. Merci d'avance. Cornouaie. Petit Edit: J'ai trouvé une solution pour le comptage des cellules non vides. J'utilise "NB.Si" avec =">""" en critère. J'obtiens la liste exacte dans ma liste de choix. Me reste à solutionner le problème de la saisie semi auto et la mise à jour de la liste. Je continue mes essais! |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com