Création de listes déroulantes en cascade en référence à un fichier externe

KIM

XLDnaute Accro
Bonsoir les ami(e)s,
Je reviens vers vous, comme d'habitude, pour résoudre un cas bloquant et vous en remercie par avance.
Dans un répertoire fixé, J'ai un fichier de référence au format csv du nom RefInterne.csv. Les colonnes A, B, C sont des listes de données utilisées dans des fichiers excel de type XYZ040-S1-A-SURF.xls. J'en ai plus de 1000 fichiers. Mes utilisateurs doivent corriger ces fichiers col I, J, K conformement au fichier de référence col A, B et C.
Pour leur faciliter la mise à jour, je cherche une macro vba qui recherche à partir d'un répertoire donné tous les fichiers xls et créé une liste déroulante dans chaque case des colonnes I, J, K , à partir de la ligne 10, conformément aux données du fichier de référence colonnes A, B et C.
Est-ce possible ?
Ci-joints les fichiers de référence et un des fichiers excel à mettre à jour.
Merci de votre aide
KIM
 

Pièces jointes

  • RefInterne.zip
    431 bytes · Affichages: 54
  • XYZ040-S1-A-SURF.zip
    2.4 KB · Affichages: 55
  • XYZ040-S1-A-SURF.zip
    2.4 KB · Affichages: 54
  • XYZ040-S1-A-SURF.zip
    2.4 KB · Affichages: 53

Bebere

XLDnaute Barbatruc
Re : Création de listes déroulantes en cascade en référence à un fichier externe

bonjour Kim
en pièce jointe tu trouveras les fichiers utilisés pour faire le code
les fichiers dans le même dossier,ouvrir classeurKim
 

Pièces jointes

  • kim.zip
    52.1 KB · Affichages: 46
  • kim.zip
    52.1 KB · Affichages: 41
  • kim.zip
    52.1 KB · Affichages: 45

KIM

XLDnaute Accro
Re : Création de listes déroulantes en cascade en référence à un fichier externe

Bonsoir Bebere & le forum,
Merci, c'est très pratique surtout qu'il y a plus de 1500 fichiers à contrôler et à mettre à jour. Je viens tester ta solution. 2 types de modification à te solliciter, modifications de type présentation et l'autre de contrôle et validation
1- Présentatation:
a) Il n'est pas exclu d'avoir plusieurs départements dans un fichier xls. Utile que je l'envisage à l'avance. Est-il possible de commencer le Filtre listview par le Département, ensuite Bâtiment et Niveaux ? Et rajouter le Département dans la fenêtre des données (listview1).
b) Après sélection du niveau, je sélectionne une ligne de listview1 : les données s'affichent dans les cases de la 2è ligne des labels, est-il possible de rajouter à gauche de la 2è ligne le n° de la pièce sélectionnée?
2-Contrôle
a) bouton "Réini", très utile, merci

b) Quand je sélectionne une ligne, je peux modifier les données affichées directement par saisie dans la 2è ligne des labels sans passer par les listes déroulantes. Je peux saisir n'importe quoi pour "Usage principlal" et "Usage spécifique". Est-il possible que le nouveau bouton Valider affiche un message "Saisie erronnée" quand la saisie n'est pas conforme aux données de la liste déroulante et réinitialise les usages avec les données initiales ?

b) Remplacer le bouton Valider par 2 boutons
-i- bouton Valider, qui valide les choix sélectionnés dans les cellules du fichier xls actif
-ii- bouton Quitter qui sauvegarde le fichier actif et quitte le userform en gardant le fichier xls actif.
Merci d'avance
KIM
 

KIM

XLDnaute Accro
Re : Création de listes déroulantes en cascade en référence à un fichier externe

Bonjour Bebere,
En arrivant au bureau ce matin, j'ai voulu tester ton fichier Classeurkim.xls avec Excel2010. En lançant le fichier et avant d'afficher la fenètre de recherche du fichier xls à ouvrir, J'ai le message d'erreur suivant :
"Bibliothèque d'objets incorrecte ou contenant des références à des définitions d'objets introuvables".
Les références actives sont:
-Visual Basic For Applications
- Microsoft Excel 14.0 Object Library
-OLE Automation
-Microsoft Office 14.0 Object Library
-Microsoft Forms 2.0 Object Library
-Microsoft Windows Commn Controls 6.O (SP6)

Sous Excel 2003, tes macros fonctionnent avec les mêmes références sauf celles en v14.0 sont en v10.0.

Que dois-je faire pour que les macros fonctionnent sous excel2010?
Merci d'avance
KIM
 

Bebere

XLDnaute Barbatruc
Re : Création de listes déroulantes en cascade en référence à un fichier externe

bonjour Kim
pour 2010 je ne sais pas
ce que je fais pour 2003
si dans outils,références, il y a MANQUANT:,je décoche la case en début de ligne
une question Kim, le fichier RefInterne est-ce toujours le même
j'ai parfois des ennuis avec le fichier RefInterne.csv(je pense problème connu),je pense qu'avec un fichier .txt ,pas de problème
 

KIM

XLDnaute Accro
Re : Création de listes déroulantes en cascade en référence à un fichier externe

Re-bonjour Bebere,
Le fichier RefInterne.csv est toujours le même et on peut le transformer en fichier txt avec séparateur des champs le car ";". En effet quand j'ouvre maintenant le fichier csv avec un éditeur de texte , j'ai des doublequôte à chaque début et fin de ligne ce qui peut me poser d'autres problèmes. OK pour le fichier .txt.
Pour Excel2010, je vais continuer la recherche pour régler le problème.
merci d'avance
KIM
 

ChTi160

XLDnaute Barbatruc
Re : Création de listes déroulantes en cascade en référence à un fichier externe

Bonjour KIM
Bonjour Bebere
Bonjour le Fil;Le Forum

Content de pouvoir te Saluer KIM
sans oublier Bebere Bien sur mais lui il est omniprésent Lol
pour ce qui est du message d'erreur
je te joins une image de ce que j'ai comme références (Office 2007)
Outils-Références.png
je suis avec beaucoup intérêt ce Fil LOL
Bonne fin de Soirée
Amicalement
Jean marie
 

Bebere

XLDnaute Barbatruc
Re : Création de listes déroulantes en cascade en référence à un fichier externe

bonjour Jean Marie
en vérité je vous le dis,l'intérêt de Chti c'est quelque chose
Kim
changements effectués,change RefInterne.csv en en RefInterne.txt
ou si tu n'as pas de problème avec .csv tu remplaces txt dans
Fichier = Dir(Chemin & "\refinterne.txt") module1
 

Pièces jointes

  • ClasseurKim.xls
    171 KB · Affichages: 80
  • ClasseurKim.xls
    171 KB · Affichages: 72
  • ClasseurKim.xls
    171 KB · Affichages: 80

KIM

XLDnaute Accro
Re : Création de listes déroulantes en cascade en référence à un fichier externe

Bonjour Jean Marie, Bebere & le forum
@Jean Marie, ravi de te retrouver et te saluer aussi. Je testerai demain au bureau les preferences avec excel2010.
@Bebere, merci encore je vais tester et je reviens vers toi.
Bonne soirée
KIM
 

ChTi160

XLDnaute Barbatruc
Re : Création de listes déroulantes en cascade en référence à un fichier externe

Re Bonsoir
Tout le plaisir est pour moi ,car je constate , que ce fil est la suite logique de ce que tu a commencé il y a quelques Années.
En pièce jointe une solution pour éviter la transformation du fichier "*.csv"
a voir je passe par un Tableau temporaire
Le Fichier :Regarde la pièce jointe ClasseurKimChti160-V2.xlsFichier à enregistrer dans le même dossier que le Fichier "*.csv"
Le tout sans prétention
Bonne fin de Soirée
Amicalement
Jean Marie
 

Pièces jointes

  • ClasseurKimChti160-V2.xls
    68 KB · Affichages: 59
  • ClasseurKimChti160-V2.xls
    68 KB · Affichages: 55
Dernière édition:

KIM

XLDnaute Accro
Re : Création de listes déroulantes en cascade en référence à un fichier externe

Bonsoir Bebere & Jean Marie,
@Bebere,
Je viens de tester tes macros sous excel2003.
J'ai un problème dans ma mise à jour du "Complément d'usage".
Après avoir sélectionné une ligne, les 2 premiers usages sont corrects, je vide le champ Complément d'usage ou je saisi manuellement du texte qui n'est pas dans la liste énumérée. En validant j'ai le message : Entrée non valide.
Usage principal et usages spécifiques sont des listes figées mais le complément d'usage est une liste libre.
@Jean Marie,
Je viens de tester ton import csv. A l'ouverture du fichier j'ai un message d'erreur :
"Erreur d'exécution "9"
L'indice n'appartient pas à la sélection"
dans la fonction Function IniTablCSV
au niveau de la ligne : ReDim Preserve TabRecap(UBound(TblConvertCsv), X)
Merci d'avance
KIM
 

ChTi160

XLDnaute Barbatruc
Re : Création de listes déroulantes en cascade en référence à un fichier externe

Bonjour KIM, Le fil
Bonjour le Forum
Arff j'ai tenté de changer le fichier plus haut , mais il reste des traces du fichier , que j'ai voulu remplacer
je Joins donc le fichier modifié (l'erreur venait du mauvais redimensionnement, Nombre de lignes du tableau)
VB:
ReDim Preserve TabRecap(NbLgn, iCol) 'on redimensionne le tableau Temporaire
Le fichier à enregistrer dans le même dossier que le fichier ".csv"
Ci-Joint le Fichier : Regarde la pièce jointe ClasseurKimChti160-V2.xls
Bonne Journée
Amicalement
Jean marie
 

Pièces jointes

  • ClasseurKimChti160-V2.xls
    68 KB · Affichages: 64
  • ClasseurKimChti160-V2.xls
    68 KB · Affichages: 61

KIM

XLDnaute Accro
Re : Création de listes déroulantes en cascade en référence à un fichier externe

Bonjour Bebere, Jean Marie & le forum,
@Bebere,
Toujours sous excel2003, la mise à jour et la saisie fonctionnent.
1- A l'ouverture du fichier xls, les cellules des 3 usages sont en rouge quand elles ne sont pas conformes aux listes déroulantes. Quand je les corrige selon les listes déroulantes, elles restent en rouge. Est-il possible de les remettre à la même couleur que les autres après validation de la correction?
2- Pour le Complément d'usage, la saisie est possible (test OK), par contre est-il possible de les garder en rouge si la saisie n'est pas conforme à la liste déroulante et de remettre à la bonne couleur si la saisie se fait dans la liste déroulante?
3- A l'ouverture du UserForm1, toutes les cases sont vides. Est-ce une obligation de sélectionner Département, Bâtiment et niveau avant de mettre à jour les usages ? Si non, est-il possible que quand je sélectionn une ligne, les 3 cases de la listeview se remplissent aussi, car dans la col les numéros de pièces ne sont pas uniques mais je retrouve l'unicité du numéro par les 3 champs de la listview.
@Jean Marie,
L'import csv fonctionne sous excel 2003 et 2010. Merci

@Bebere, Jean Marie & le forum,

A l'ouverture de dernier fichier Classeurkim.xls de Bebere sous excel2010, J'ai toujours le message d'erreur suivant :
"Bibliothèque d'objets incorrecte ou contenant des références à des définitions d'objets introuvables". J'ai mis en place la macro d'import csv de Jean Marie dans le fichier de Bebere en pensant que c'est l'import du fichier qui bloque. J'ai importé la UserForm1 dans le fichier de Jean Marie. Le fichier devient erronnée avec le même message d'erreur.
Que faire? car la pluspart de mes collègues ont excel 2010. Mes références Excel sont les mêmes que celles de Jean Marie à l'exception de la version v14.0 au lieu de 12.0 (cf message d'hier à 8h58).

Merci d'avance
KIM
 

ChTi160

XLDnaute Barbatruc
Re : Création de listes déroulantes en cascade en référence à un fichier externe

Re Bonjour

KIM je pense (je peux me tromper Lol) que tu es victime comme Beaucoup et moi même d’ailleurs de la mise à jour qui a fait qu'un problème avec les litview est apparu (voir L'installation d'un composant MSCOMCTL.OCX )
En cherchant sur le forum , des solutions ont été données
Un des Liens :https://www.excel-downloads.com/threads/listview-objet-introuvable-dans-excel-2010.159525/
j’espère avoir pu te faire avancer dans ta recherche d'une Solution
Bonne Journée
Amicalement
Jean Marie
 

Bebere

XLDnaute Barbatruc
Re : Création de listes déroulantes en cascade en référence à un fichier externe

bonjour Kim,Jean Marie,le forum
choix département,choix bâtiment,choix niveau filtre la listview
je ne comprend pas le point 3 poste #28
tu veux un filtre sur les pièces
 

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 893
Membres
103 982
dernier inscrit
krakencolas