MAJ de référence composant
Bonjour,
Réponds à ces questions d'abord pour supprimer l'inutile :
Pourquoi x feuilles et pas coller seulement dans Référentiel ? Ca ne sert à rien de dupliquer les données
Pourquoi 1 ligne vide ?
A quoi sert la colonne n° ?
Pourquoi écrire gros qui oblige à faire un zoom arrière et rend les listes déroulantes illisibles ?
Ensuite ce que je ferais (sous réserve d'adaptation au fur et à mesure de l'avancée) :
- dans référentiel!I:I une liste sans doublon triée des références (macro au sortir de la feuille pour maj après modifs) :
Private Sub Worksheet_Deactivate()
Dim datas, dict, lig As Long, s As String, echange As Boolean
datas = [B2].Resize(Cells(Rows.Count, 2).End(xlUp).Row).Value
Set dict = CreateObject("Scripting.Dictionary")
For lig = 1 To UBound(datas)
If datas(lig, 1) <> "" Then dict(datas(lig, 1)) = 1
Next lig
datas = dict.keys
Do
For lig = 1 To dict.Count - 2
echange = False
If datas(lig) > datas(lig + 1) Then
s = datas(lig)
datas(lig) = datas(lig + 1)
datas(lig + 1) = s
echange = True
End If
Next lig
Loop Until Not echange
[I2].Resize(dict.Count) = Application.Transpose(datas)
End Sub- si ta liste est sur une autre feuille il faut nommer la plage. Crée un nom dynamique sur cette liste pour ta liste de choix
Ex formule pour le nom : =DECALER(Référenciel!$I$2;;;NBVAL(Référenciel!$I:$I)-1;)
- créer un nom dynamique sur le référentiel B:G pour les plages de tes formules
Ex : =DECALER(Référenciel!$B$2;;;NBVAL(Référenciel!$B:$B)-1;6)
D'ailleurs pour ta formule tu pourrais utiliser la syntaxe INDEX(matrice, no_lig, no_col)
pour avoir une formule unique.
Ex : =SIERREUR(INDEX($X:$AC;PETITE.VALEUR($AD$1:$AD$3000;LIGNES($1:1));COLONNE());"")
que tu peux tirer à droite et vers le bas.
eric
Eric,
Je viens de parcourir ta réponse....
Mais dans un premier temps, je vais répondre à tes questions.
Pourquoi x feuilles et pas coller seulement dans Référentiel ? Ça ne sert à rien de dupliquer les données !
- Chaque feuille représente toute la nomenclature composants d'un modèle (une tondeuse pour tout te dire).
J'ai besoin de tous ces onglets pour que plus tard les utilisateurs de ce 'fichier global' puisse aller consulter les composants d'un modèle précisément. Ces utilisateurs ne connaissant pas ou peu Excel, inutile de leur demander d'utiliser des filtres ou autres manip sur l'onglet 'Référentiel'....
Ex : Un lien les emmènera directement sur l'onglet de la nomenclature du modèle souhaité....
Pourquoi 1 ligne vide ?
Effectivement, celle dernière peut être supprimée !
A quoi sert la colonne n° ?
Uniquement voir le nombre de composant par modèle. Je te l'accorde c'est idiot, donc à squeezer !
Pourquoi écrire gros qui oblige à faire un zoom arrière et rend les listes déroulantes illisibles ?
Écrire gros ou ? Sinon, aucun problème à diminuer les tailles de police là ou tu l'envisage.
As tu compris l'utilité de ce fichier ?
Je vais devoir le construire moi même en renseignant tous les composants via ces onglets correspondant à nos modèles et le faire vivre ensuite avec d'éventuels mise à jour de composants, pour qu'au final d'autres s'en servent avec la plus grande facilité possible
Pascal.
J'avoue ne pas tout comprendre tes consignes ainsi que le langage VBA que tu m'indique
tu as juste à le coller dans le code Feuille Référenciel.
Ca te crée la liste sans doublon triée en I. C'est tout prêt et tu peux laisser cette feuille triée comme ça t'arrange.
Ces utilisateurs ne connaissant pas ou peu Excel, inutile de leur demander d'utiliser des filtres ou autres manip sur l'onglet 'Référentiel'....
Ex : Un lien les emmènera directement sur l'onglet de la nomenclature du modèle souhaité....
Il suffit de montrer une fois en général.
Ex : Un lien les emmènera directement sur l'onglet de la nomenclature du modèle souhaité....
Tu peux aussi faire une liste déroulante qui t'emmène sur la feuille filtrée en fonction du choix.
Sinon, aucun problème à diminuer les tailles de police là ou tu l'envisage.
Moi ça va aller, je ne l'utiliserai pas. Tu fais comme tu le sens.
Désolé Eric, mais là je décroche et ne comprends pas ta logique...
Certainement mon amateurisme d'Excelien amateur
J'ai mis ton code, mais je ne vois pas l'utilité de créer cette liste de référence en 'I'....
Je souhaite rester sur mon modèle, avec tous mes onglets. Sa construction te parait certainement non conforme (et je le comprends bien), mais dans mon esprit (d'amateur
Je reste donc avec ces deux problèmes principaux...
1/ En 'C5', ma liste déroulante de données doit être faite à présent sur l'onglet 'Référentiel' à partir de 'B3'
2/ En 'K5' cellule verte, la mise à jour des références ne doit plus se faire sur cette feuille en 'X1' MAIS sur tous les onglets 'HRG 416', 'HRG 466', 'HRG 53'6..... 'HRH 536 K4' à partir de 'B3' ! oui, car un même composant peut figurer sur plusieurs de ces onglets !
Amicalement
Pascal.
1/ En 'C5', ma liste déroulante de données doit être faite à présent sur l'onglet 'Référentiel' à partir de 'B3'
C'est justement ce que te faisait le bout de code que je t'ai passé.
Tu avais juste à le coller et faire le nom dynamique.
Je l'ai fait.
2/ En 'K5' cellule verte, la mise à jour des références ne doit plus se faire sur cette feuille en 'X1' MAIS sur tous les onglets 'HRG 416', 'HRG 466', 'HRG 53'6..... 'HRH 536 K4' à partir de 'B3' ! oui, car un même composant peut figurer sur plusieurs de ces onglets !
Une BdD c'est sur 1 feuille.
Si tu préfères t'embêter à faire tes maj sur 10 feuilles libre à toi mais ça sera sans moi.
D'ailleurs ça commence, dans ta boucle des feuilles tu as oublié de tenir compte que tu en as inséré une autre...
Et les lignes vides y sont toujours. Je me demande si tu as vraiment lu '13 règles d’or pour parfaitement gérer vos données sur Excel' ?
Du coup j'ai mis la liste pour C5 dans la feuille Traçabilité pour ne pas être trop gêné par ta macro de maj.
eric
Bonjour Eric,
Comment vas tu en ce lundi !
Je viens de lire ton message et dans la mesure ou cette nuit m'a porté conseil... Il faut que je repense un petit peux mon fichier de façon plus simple et en me dispensant d'avoir (effectivement) tous ces onglets...
Je vois ça...
Bonne journée à toi Eric !
Pascal.
Bonsoir Eric,
J'ai retravaillé mon fichier chez moi ce soir en rentrant du travail, à savoir :
J'ai n'ai gardé que trois onglets. 'Recherche + MAJ' / 'Traçabilité' et 'Référentiel'
Le Référentiel se trouve à présent sur un onglet à part. J'y ai mis des entêtes mais pas de ligne ni de colonne superflus
Miracle ! J'ai (enfin) réussi à faire ma liste de choix en 'C3'par rapport à un autre onglet (nommer une plage...). J'ai su faire grâce à toi !
--->
Idem pour l'historique
Il ne doit pas y avoir beaucoup de syntaxe à modifier, mais là , je sais po faire
Merci Eric,
Pascal.
C'est quand même plus propre et plus simple non ?
Miracle ! J'ai (enfin) réussi à faire ma liste de choix en 'C3'par rapport à un autre onglet (nommer une plage...). J'ai su faire grâce à toi
C'est bien mais... tu aurais dû repartir du dernier fichier que j'avais mis.
J'ai dû refaire toute cette partie là. A moins que tu ne veuilles plus d'une liste triées sans doublons ?
Cette liste est mise à jour automatiquement après modif du référentiel.
D'ailleurs tu devrais contrôler tes ref. Tu en as plusieurs qui ne diffèrent que d'un espace, pour excel c'est 2 valeurs différentes et ton extraction sera incomplète.
Des fois tu as des "-", des fois non, des fois des " ", des fois non, des fois tu as un suffixe " - M1", des fois ".M1" ça ne permet pas une maintenance facile. Il faut fixer des règles et les respecter.
Quand tu auras fiabilisé ta liste de ref on pourra peut-être ajouter un contrôle de la nouvelle ref basée sur la longueur (mini et maxi) et/ou présence et position des "-" pour limiter les erreurs de saisie.
Comme maintenant tu as une BdD qui ressemble à une BdD j'ai pu t'ajouter l'extraction par macro.
Donc plus de formules à ce niveau là, et en prime tu peux récupérer les couleurs et mises en forme.
Teste si tout est ok et si je n'ai rien oublié
eric
Eric,
Tout me semble parfait ! J'ai seulement été étonné dans ma liste déroulante, de ne pas voir m'a toute toute première référence !?
Du coup et après moult réfléchissements
Concernant le - , ou les espaces manquants dans mes référence de composants... Bref, une saisie des références olé olé, pas d'inquiétude, il est prévu que je refasse entièrement mon référentiel propre, en respectant toutes ces choses. Le référentiel actuel ne sert que pour tester la chose.
Je viens de comprendre (enfin) l'utilité de la colonne 'F' 'Références' que tu as créé
Question 1 : N'ayant plus tous mes autres onglets, j'aimerai un moyen ultra simple pour l'utilisateur de base , d’accéder à toute la nomenclature mais d'un modèle uniquement (sans passer par le 'Référentiel' et utiliser les filtres...)
Crois tu qu'avec une simple macro on puisse faire ça ?
Question 2 : Sur l'onglet 'traçabilité', entre la colonne 'A' et 'B', je souhaiterai insérer la colonne 'Modèle' puis 'Composant'
C'est possible ça ?
Un grand merci à toi Eric pour le temps que tu me consacre
Pascal
C'est quoi ce fichier ???
Repars du dernier que je t'ai fourni.
Je ne vais pas passer mon temps à tout reconstruire à chaque fois.
Très fatigué hier soir
Je t'ai mis en pièce jointe un ancien fichier... Excuses moi encore pour cette bourde.
Voici le bon...
Eric,
Concernant le - , ou les espaces manquants dans mes référence de composants... Bref, une saisie des références olé olé, pas d'inquiétude, il est prévu que je refasse entièrement mon référentiel propre, en respectant toutes ces choses. Le référentiel actuel ne sert que pour tester la chose.
Je viens de comprendre (enfin) l'utilité de la colonne 'F' 'Références' que tu as créé
Question 1 : N'ayant plus tous mes autres onglets, j'aimerai un moyen ultra simple pour l'utilisateur de base , d’accéder à toute la nomenclature mais d'un modèle uniquement (sans passer par le 'Référentiel' et utiliser les filtres...)
Crois tu qu'avec une simple macro on puisse faire ça ? En quittant un onglet, comment retirer automatiquement un filtre ensuite ?
Question 2 : Sur l'onglet 'traçabilité', entre la colonne 'A' et 'B', je souhaiterai insérer la colonne 'Modèle' puis 'Composant'
C'est possible à faire ça ?
Excuse moi encore pour le mauvais fichier Eric
Bonjour,
1) ajouté une liste de validation Modèle
2) j'ai commencé en insérant 2 colonnes et adaptant le code en conséquence mais...
tu peux avoir 6 modèles et 30 ref de touchées par la maj.
J'ai changé de fusil d'épaule et un double-clic sur une ref en C ou D te la filtre et l'affiche. Rien ne se passe si la ref n'existe plus.
J'ai laissé les 2 colonnes inutiles maintenant, ça servira en cas de besoin.
Ca a fait pas mal de modif un peu partout dans le code et j'ai été interrompu pendant les tests.
Donc teste dans tous les sens avec tous les cas de figure que tu imagines.
Fait régulièrement Ctrl+Fin sur la feuille Recherche. Tu ne dois pas arriver au-delà de la ligne 300 actuellement (nombre max de composant pour un modèle +7). Si tu as plus, essaie de te rappeler les dernières manip et signale-le moi.
Garde une copie de l'original en lieu sûr (pas de clé usb) pour rétablir en cas de problème de fichier.
eric
Journée terminée pour moi, pour toi aussi j’espère ! pfouuuuuu....
Merci Eric pour cette dernière mouture
Comme tu me l'as conseillé, je viens de 'tester' ton fichier...
1/ J'ai remarqué que pour faire une modif de réf, il ne fallait surtout pas faire un copié/collé de la 'C3' à la 'K3' puis faire la modif ensuite et valider, car plus rien ne fonctionne et une boite d'erreur apparait
Normal ! Car ça copie la liste de choix
2/ Bien vu pour le double clic en 'D' ou 'E', ça me suffit
3/ En 'C5', très bien le choix d'un modèle unique par la liste de choix !
Question : Serait il possible d'avoir un automatisme rapide pour supprimer cette liste une fois l'avoir consulté ?
Car sinon elle reste en place... Cela oblige de refaire un choix de référence en 'C3'...
D'ailleurs, en y pensant bien, il me faudrait un automatisme qui supprime tous les data de l'onglet 'Recherche + MAJ'
4/ Colonne 'B' et 'C', j'ai compris que tu souhaitais les garder, donc je vais les masquer simplement...
Pascal.
1) il faut faire un collé 'Valeur'.
J'ai ajouté le pré-remplissage de K3 avec C3
Serait il possible d'avoir un automatisme rapide pour supprimer cette liste une fois l'avoir consulté ?
J'ai ajouté un bouton RAZ, ou bien vider C3 ou C5
Eric, mon fichier est bien avancé, et grâce à toi, je pense que je vais pouvoir avancer de mon coté à présent.
Je vais pouvoir également regarder un peu plus en détail tes ligne de codes et tout ce qui fait que mon fichier fonctionne bien.
Le langage VBA relève vraiment du hiéroglyphe pour le novice que je suis, je ne sais pas si des bons bouquins (très) simples ou DVD interactifs existent, mais je me laisserai bien tenter à essayer d'y comprendre quelque chose
Le problème c'est que... je comprends vite mais il faut m'expliquer longtemps
Encore un grand merci à toi Eric
Amicalement
Pascal.
Bah, au début ça parait très obscur.
Il faut commencer par des petits trucs, en s'aidant de l'enregistrement de macro (pas le meilleur code mais au moins on récupère l'essentiel des instructions nécessaires), sans oublier l'aide excel (F1) très complète.
Regarde le B.A.BA du menu 'Cours VBA' en haut.
Bonne continuation