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

ChTi160

XLDnaute Barbatruc
Re
Bonjour Si...
belle exemple ,Merci.
Une première approche .
Chez moi les Fichiers :
RechercherColorierCondition et DetailsRef
sont dans le même dossier.
j'ai choisi de créer une feuille "Modele" que je duplique en fonction du Nombre de Feuille à ajouter.
On pourrait faire autrement (ajouter autant de feuilles que nécessaire) ,mais l'avantage c'est que la feuille "Modele" peut être formatée et contenir divers éléments ,Formules ou autre ! à voir Lol
Bon test !
Bonne fin de journée
Amicalement
Jean marie
 

Pièces jointes

  • RechercherColorierCondition_1.3.xlsm
    81.6 KB · Affichages: 19
Dernière édition:

KIM

XLDnaute Accro
Bonsoir Jean-Marie, Chris, et SI...
Bonsoir le forum,
@jean-marie, Merci beaucoup, rapide, efficace avec les 1é tests concluant. Demain je vais appliques ton code au fichiers réels.
En ce qui concerne les noms des onglets créés, que dois-je modifier dans le code pour les 2 premiers mots comme nom de l'onglet ou les 3 premiers mots comme nom des onglets dans la col C Désignation ?

@Si...,
Le fichier "DetailsRef" est une extraction bi-mensuelle déposée dans le répertoire par une personne différente de celle qui utilise RechercherColorierCondition_v1,. Ta solution simplifie le processus existant que je peux proposer. Par contre il manque une étape, Celle d'importer l'onglet "Refernecs" dans le fichier RechercherColorierCondition_v1 onglet "Stock" et ne garder que les valeurs des colonnes col B, C, F, K, O dans A, B, C, D et E et rajouter dans la col F la formule suivante : F = E-(D-C)

@kris, désolé je n'ai pas encore testé ta solution.

Merci encore à vous tous, Bonne nuit
Bien amicalement
KIM
 

KIM

XLDnaute Accro
Bonjour Jean-marie,
Bonjour SI..., Chris et le forum,
@jean-marie,
Je te remercie pour le temps passé et la maîtrise du VBA. Actuellement les onglets sont créés manuellement et les cellules sont liées par une recherche sur le code du fichier DetailsRef. Ainsi les noms des onglets ne posent pas de problème. Quand on développe une macro et on analyse la col Désignation du fichier DetailsRef, tout caractère a son sens. EN effet j'ai testé sur un fichier réel ta macro :
J'ai rencontré 2 problèmes :
- Quand le nom extrait est en majuscule ou minuscule, la macro prend en compte le 1er rencontré et non les 2 à la fois : ex abc GR F10 et ABC GR F10 : la macro créé l'onglet abc et ses colonnes seulement sachant bien que abc et ABC sont les mêmes et dans ce cas on peut décider que le nom des onglets est en majuscule toujours
- Quand il y a dans le nom le caractère "/", l'onglet est créé mais le nom reste modele(x)
Ci-joint le fichier DetailsRef.xlsm avec une modification dans la col Designation.

PS: Je viens de constater que dans le système d'information, la colonne Designation est saisie à la main. J'ai trouvé par ex MAINTENANCE, Maintenance, Maint. MAINT. pour dire la même chose MAINTENANCE. Il y a donc un grand risque d'erreurs dans le résultat de la macro car la saisie de la Désignation est libre. A réfléchir pour une solution fiable.
Qu'en penses-tu?

Bonne journée
Amicalement
KIM
 

Pièces jointes

  • DetailsRef.xlsm
    27.2 KB · Affichages: 25

ChTi160

XLDnaute Barbatruc
Bonjour KIM
Bonjour Chris,Si ,Le fil ,Le forum
KIM
on pourrait Utilise la Fonction Split et ainsi choisir le Nombre de """Syllabes""" à prendre en compte !
à voir comment tu détermines ce Nombre .
il y a une particularité , car il y a des Mots d'une """Syllabe"""
Dans l'attente
Bonne journée
Amicalement
Jean marie
 

ChTi160

XLDnaute Barbatruc
Re
nos post se sont croisés
pour ce qui est des Majuscules c'est réglé en mettant
For Lgn = 2 To UBound(Tab_General, 1)
Str_Search = UCase(Tab_General(Lgn, 2)) 'On met en Majuscules
Pour ce qui est des caractères Spéciaux , il faudrait pouvoir les remplacer lors de l'extraction dans la procédure "Initialise_Sht_Name" par quoi d'ailleurs ? car le Nom pris en compte , va en dépendre si on met Chr(32) (espace) ou '-' pour l'un on prend la première ""Syllabe"" KL , l'autre les deux KL-MN .
Pour ce qui est du PS : ????
il faut voir ,car les saisies peuvent être innombrables .
n'est t'il pas plus simple de Normaliser la Saisie ! Lol c'est qui le patron ? lol
Dans l'attente
Bonne journée
Amicalement
jean marie
 

KIM

XLDnaute Accro
Re le fil,
@jean-marie,
J'ai testé avec un fichier avec le 1/4 des données réelles. La macro a créé plus d'une centaine d'onglets à cause des irrégularités dans la saisie de la désignation et manque le 1/3 des données à cause des noms en majuscule et en minuscule. Pour éviter tous ces problèmes qu'on ne peut pas maîtriser il est nécessaire de proposer à l'utilisateur final une solution basée sur le code et non la désignation.

Il est, je pense préférable, de réaliser une solution basée sur le Code (col B) du fichier DetailsRef.xlsm pour éviter les erreurs de saisie.
Est-il possible, dans ce cas, de créer un seul onglet REFERNCES dans RechercherColorierCondition_1.3 et le vider à chaque lancement de la macro ;
Pour chaque code du tableau TabRecap ( codes extraits de l'onglet Base)
Rechercher le code dans la col B du fichier DetailsRef.xlsm :
Si trouvé, copier le code dans l'onglet REFERNCES ainsi que les données correspondantes (Col B, C, F, K et O) et créer la col F
Si non trouvé colorier la cellule correspondante en jaune dans l'onglet Base.
ensuite exécuter la macro de colorier l'onglet Base si Col C du code est à "0"
Qu'en penses-tu ?
Merci de ton aide
Amitiés
KIM
 

KIM

XLDnaute Accro
Re le fil,
@jean-marie,
C'est le SI qui permet une saisie libre. l'erreur est humaine.
Tant que le traitement est manuel et les formules saisies cellule par cellule le problème ne s'est jamais posé.
C'est pour cela je pense que le traitement est à faire sur un attribut fiable le "Code" généré par le SI.
Il a fallu analyser le problème et ne pas me baser sur le fonctionnement actuel.
Merci d'avance
Amicalement
KIM
 

ChTi160

XLDnaute Barbatruc
Re
si j'ai bien compris on ne crée plus de feuille
Mais on importe les données de la feuille "Références" du fichier "DetailsRef"
Puis on récupère les codes de la feuille "Base" et on compare avec la feuille "References"
Est ce cela la démarche ?
Dans l'attente
Bonne fin de journée
Amicalement
Jean marie
 

KIM

XLDnaute Accro
Re,
OK pour ta proposition:
Par contre pour éviter toute confusion, on créé l'onglet DATA dans RechercherColorierCondition_1.3 et le vider à chaque lancement de la macro ;
- On importe les données de la feuille "Références" du fichier "DetailsRef" dans la feuille "DATA"
- on récupère les codes de la feuille "Base" et on compare avec la feuille "DATA"
Est-ce dans une 2d phase on peut importer de la feuille "Références" seulement les données des codes de la feuille "Base" pour alléger le fichier de travail ?
Merci encore
Amicalement
KIM
 

ChTi160

XLDnaute Barbatruc
Re
je digère tout ça et je code Lol
moi je pensais importer ,la feuille "References" de "DetailsRef" dans RechercherColorierCondition
cette feuille est supprimée a chaque transfert après je pense que l'on peut y laisser que les données trouvées dans "Base" je vais voir !
Bonne fin de Journée
Amicalement
Jean marie
 

Si...

XLDnaute Barbatruc
Re
200 feuilles ... : tu ne m'as pas dit si 1 feuille pouvait suffire.

voilà un exemple où la plage stock du second fichier est recopiée (1seule feuille) si on répond "oui".
On peut toujours tester et colorier (je ne sais pas si la macro donnée remplit son rôle dans ton fichier)
Il faut bien connaître les critères de filtre pour n'afficher que les lignes correspondantes, bien sûr si cette étape est requise.

Désolé chris :) mais je n'ai pas encore le "Power" Query :confused:. Il va falloir que je "mute".

Nota : pour tester ma proposition, il faut avoir le second fichier (ici) dans le prépertoire de chargement du classeur !
 

Pièces jointes

  • Si...ColorierCellules.xlsm
    43.9 KB · Affichages: 18

ChTi160

XLDnaute Barbatruc
Re
Une approche pour cette nouvelle démarche?
je n'ai pas encore finalisé le traitement de la feuille "References"
on pourrait supprimer les lignes qui ne comportent rien en colonne P
puis supprimer les colonnes Inutiles .

Enfin regarde le rendu en Feuille "Base"
Rouge si "Code" trouve et 0 en colonne "Stock min"
Jaune si "Code" Non trouvé
Blanc si "Code" trouvé et pas 0 en colonne "Stock min" voir s il faut mettre en Jaune

Bonne fin de Soirée
Amicalement
Jean marie
 

Pièces jointes

  • RechercherColorierCondition_1.6.xlsm
    68.3 KB · Affichages: 14

Discussions similaires

Statistiques des forums

Discussions
312 219
Messages
2 086 369
Membres
103 197
dernier inscrit
sandrine.lacaussade@orang