Import données fichier externe et répartir par onglet

KIM

XLDnaute Accro
Bonjour le forum, bonjour les ami(e)s,
Dans le fichier joint RechercherColorierCondition_v1.xlsm, Jean-Marie et Jacky67 m'ont aider à identifier et colorier les références de l'onglet Base selon une condition des données de cette référence dans les onglets de détails. Les données de ces onglets sont liées à un seul onglet "References" du fichier externe DetailsRef.xlsm.
Ce fichier externe est issu d'une extraction d'une base de données, Il peut y avoir de nouvelles références ou des réfrences qui disparaissent.
Est-il possible de lire, à partir du fichier RechercherColorierCondition_v1.xlsm, les données de l'onglet "References" du fichier externe DetailsRef.xlsm, créer les onglets qui correspondent au 1er mot de la col C et répartir les données correspondantes (Col B, C, F, K, O) dans les col A, B, C, D, E de chaque onglet concerné avec les titres de chaque col à partir de la ligne 2. ensuite rajouter une col F = E-(D-C)?
SI l'onglet existe déjà dans le fichier RechercherColorierCondition_v1.xlsm, le supprimer et le recréer avec les nouvelles données.
Je vous remercie par avance de votre aide.
Ci-joints les 2 fichiers
Bien amicalement
KIM
 

Pièces jointes

  • RechercherColorierCondition_v1.xlsm
    32.1 KB · Affichages: 22
  • DetailsRef.xlsm
    28 KB · Affichages: 27

KIM

XLDnaute Accro
Re le fil et le forum,
@chris, c'est une nouveauté pour moi, il faut la regarder à tête reposée. je le ferai et te tiendrai au courant.

@Si...,
A l'exécution de la macro de la feuille "Stock", génère le message d'erreur suivant : "La methode paste de la classe worksheet a échoué" et s'arrête à la ligne "ActiveSheet.Paste".

@jean-marie,
J'ai profité de ton développement qui lit un fichier externe fermé et crée plusieurs onglets et je l'ai appliqué à une autre base dans laquelle je n'ai pas de problème dans le nom des onglets. Elle fonctionne, MERCI encore
Pour ton dernier développement, les 1és tests sont concluants. Je testerai lundi avec un fichier réel.
Si tout va bien, je proposerai cette solution. J'intègrerai le filtre que SI.. propose dès que j'arrive à tester sa solution.
Pour modifier les couleurs et éviter de regarder le code est-il possible de paramétrer les couleurs dans le module Mdl_Variables ?
Je te remercie pour ta patience. Tes 2 propositions créer un seul onglet et créer plusieurs onglets sont utilisées.
Merci à vous tous pour votre collaboration
Amicalement
KIM
 

KIM

XLDnaute Accro
Re, Jean-Marie,
Dans ta dernière version du poste #30, la macro ne garde dans l'onglet References que les données dont le stock mini est à 0. Logiquement il faut garder seulement toutes les données dont le code existe dans l'onglet Base.
J'ai rajouté un bouton qui supprime les couleurs.
Bonne journée. Il fait beau et faut profiter du soleil.
Amicalement
KIM
 

ChTi160

XLDnaute Barbatruc
Re
Tu dis :"seulement toutes les données dont le code existe"
c'est a dire dans l'exemple les Blancs et les rouges ?
tu dis "J'ai rajouté un bouton qui supprime les couleurs."
Où , Quand et Pourquoi ? Lol
Tu dis :"Pour modifier les couleurs et éviter de regarder le code est-il possible de paramétrer les couleurs dans le module Mdl_Variables ?"
Oui , on crée des Constantes qui ont les valeurs des Couleurs necesssaires
Ex :
Public Const Color_Existe as String =3
On remplace le 3 partout ou il y a
. Interior.ColorIndex=3
par
Interior.ColorIndex=Color_Existe
Le fichier modifié .
Bonne fin de Journée
Amicalement
Jean marie
 

Pièces jointes

  • RechercherColorierCondition_1.6.1.xlsm
    63.2 KB · Affichages: 21

KIM

XLDnaute Accro
Bonjour le fil,
@Si...,
Le bouton "Lister les Désignations" dans la feuille Menu génère le message d'erreur suivant :
"La methode paste de la classe worksheet a échoué" et s'arrête à la ligne "ActiveSheet.Paste" ?
As-tu une idée ? Merci d'avance

@jean-marie,
Ta dernière version répond exactement à l'évolution de ma demande. Une seule feuille à créer dans laquelle je retrouve les données de la feuille base de couleur blanc et rouge. J'ai rajouté la macro de SI... qui supprime les couleurs de la feuille Base. Un simple controle avant de lancer ta macro.
Merci de ton soutien et de ta patience.
Bonne fin de journée ensoleillée
Amicalement
KIM
 

ChTi160

XLDnaute Barbatruc
Bonjour KIM
Bonjour Le Fil,Le Forum
Ok !
Mais dans la feuille "Base" les Cellules sont d'abord remises en Blanc (sauf Bleues) ,lors de la boucle.
mais bon , y a surement une raison lol
n'hésite pas si besoin !
Bonne fin de Journée
Amicalement
jean marie
 

KIM

XLDnaute Accro
Re le fil,
Bonsoir Jean-Marie,
A l'exécution, tellement c'est rapide on ne voit pas que les cellules de la feuille Base sont remises en Blanc. J'ai regardé le code et exécuté pas à pas pour m'en rendre compte.
Merci Jean marie,
Merci Chris et SI... pour votre collaboration.
Amicalement
KIM
 

Si...

XLDnaute Barbatruc
Bon_jour

@Si...,
A l'exécution de la macro de la feuille "Stock", génère le message d'erreur suivant : "La methode paste de la classe worksheet a échoué" et s'arrête à la ligne "ActiveSheet.Paste".

Cela vient peut-être que ton tableau [Sto] n'est pas bien redimensionné (comme je l'ai fait pour alléger des macros).
Puisque tu sembles intéressé, je donne une dernière version avec le chargement séparé (autre macro) de la possibilité de "filtrer" selon l'initiale et, maintenant, selon plusieurs critères.

Nota : je n'ai pas intégré le coloriage dans l'onglet Menu mais ce serait simple à faire.
 

Pièces jointes

  • Si...ColorierCellules2.xlsm
    62 KB · Affichages: 17

KIM

XLDnaute Accro
Bonsoir Jean marie, Bonsoir SI...
Bonsoir le fil et le forum
@jean marie
J'ai testé ton dernier fichier sur un fichier réel. J'ai un message d'erreur : "Pas de cellules correspondantes" dans la macro SuppprimeColonnes sur la ligne :
VB:
 .Range(.Range(.Cells(3, 1), .Cells(UBound(Tab_New_References, 1) + 1, 1)).SpecialCells(4, 1).Address).EntireRow.Delete
Que fait cette ligne de commande?
Coment fonctionne cette macro ? Est-ce que les titres des colonnes du fichier DetailsRef non utilisées doivent-ils être vides?
Ton développement m'intéresse pour l'appliquer à d'autres fichiers source. Je souhaite le paraméter au max. Peux-tu stp paramétrer aussi les noms des onglets dans Mdl_Variables ? Ref_Source celui du fichier DetailsRef et Ref_Cible ainsi que le numero de la ligne des données de chaque onglet source et cible ?

@Si...
Merci pour ta dernière version pour l'import et le filtre. Est-ce qu'i faut filtrer sur les produits et les criteres en même temps ?
un filtre sur un ou plusieurs critères OK
Par contre le filtre sur les produits seulement génère un message d'erreur "L'indice n'appartient pas à la sélection" sur la ligne :
For n = UBound(a) To 1 Step -1
de la macro Cb_Click

Merci encore
Bonne soirée
KIM
 

ChTi160

XLDnaute Barbatruc
Bonsoir KIM
Bonsoir Si...
Bonsoir le Forum
KIM
Oui la macro dans un premier temps supprime les Lignes Vides
car on ne conserve que les Lignes trouvées les autres doivent être supprimées .
Puis les colonnes dont l’entête est vide Ex :(dans fichier fournit entêtes colonnes vides)
je pense que si pas de références à effacer , ça Bug avec (SpecialCells)
On peut imaginer faire une boucle pour éviter ça?
dis moi ce que tu veux Lol
Bonne fin de Soirée
Amicalement
Jean marie
 

Si...

XLDnaute Barbatruc
Re

J'en rajoute une couche* :p!

Vous avez parlé avec Chti (salut :)) de supprimer des colonnes. Est-ce toujours d'actualité ?

* en réalité, je le fais car j'aime bien ce problème qui me sort des routines habituelles.
 

Pièces jointes

  • Si...ColorierCellules3.xlsm
    60.2 KB · Affichages: 13

KIM

XLDnaute Accro
Bonjour Jean marie,
Bonjour Si...
Bonjour Chris et le Forum,

Jean marie,
Patient et efficace, merci.
Supprime les Lignes vides: Est-ce que cela veut dire que dans le tableau Tab_New_References les lignes vides correspondent à des codes qui ne se trouvent pas dans Base ou bien à des codes dont la col F = 0?
Je pense qu'il faut garder dans l'onglet cible tous les codes de l'onglet Base.
Concernant les colonnes à supprimer, effectivement ces colonnes sont remplies de données. En effet merci d'envisager une boucle.

SI...
Je regarde et te tiens au courant.

Merci encore et bonne journée
Amicalement
KIM
 

ChTi160

XLDnaute Barbatruc
Bonjour KIM
Re Si...
Le Forum
KIM pour ce qui est des lignes Vides .
je mets dans la Colonne "A" = x , lorsque la référence Existe (avec ou sans 0)
Ensuite je supprime les Lignes qui n'ont pas de "x" dans la Colonne "A" . mais la colonne "A" contient peut être des Données à conserver Lol , mystère ?????
tu dis :
Je pense qu'il faut garder dans l'onglet cible tous les codes de l'onglet Base.
je pense que c'est le cas dans mon fichier les l'ensemble des Codes qui existe sont conservés (Rouges et Blancs) dis moi si c'est le Cas .
tu dis :
Concernant les colonnes à supprimer, effectivement ces colonnes sont remplies de données. En effet merci d'envisager une boucle.
pourrais tu mettre en exemple la composition de La Ligne d’entêtes de la feuille "Références" que l'on importe.
Pour plus de Vision ! Lol
merci par avance
Amicalement
Jean marie
 

KIM

XLDnaute Accro
Re le fil,
SI...
Merci pour ta dernière version, je viens de la tester sur un fichier réel. Je charge les Stocks par contre la macro remplace les titres des colonnes par Colonne1, 2, etc. Y-a-t-il une raison? Dans qquelle macro ce changement de titres est traitée?
Oui effectivement, les colonnes non utilisées sont à supprimer. Une idée, coller dans Stock les 2 colonnes Code et Designation en col A et B et ensuite compléter par offset pour chaque code la col souhaitée (F, K et O) ou traiter directement dans la macro qui charge les Stocks les col à récupérer.
J'en profite pour poser une autre question, dans le filtre des produits tu prends le 1er mot avec comme séparation l'espace ou vide. Que dois-je modifier pour identifier les produits avec 2 mots, ou 3 mots ?
Est-ce paramétrable?

Merci encore, Bonne journée
KIM
 

Discussions similaires

Statistiques des forums

Discussions
312 083
Messages
2 085 187
Membres
102 809
dernier inscrit
Sandrine83