VBA à améliorer et compléter
Résolu/Fermé
A voir également:
- VBA à améliorer et compléter
- Vba attendre 1 seconde ✓ - Forum VB / VBA
- L'indice n'appartient pas à la sélection vba ✓ - Forum Programmation
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Mkdir vba ✓ - Forum VB / VBA
- Excel compter cellule couleur sans vba - Guide
23 réponses
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
Modifié par Le Pingou le 28/05/2011 à 11:51
Modifié par Le Pingou le 28/05/2011 à 11:51
Bonjour,
Pouvez-vous expliquer simplement ce que vous désirez réaliser (le but à atteindre!), se sera mieux que de lire les commentaires dans la procédure ?
Salutations.
Le Pingou
Pouvez-vous expliquer simplement ce que vous désirez réaliser (le but à atteindre!), se sera mieux que de lire les commentaires dans la procédure ?
Salutations.
Le Pingou
Bonjour,
Les entrées sont le fichier 001 BL.xls
tous les 2 jours on importe un fichier texte qui nous liste les livraisons du jour.
Ainsi pour chaque ligne nouvellement insérée, il y a un fichier de données que je dois compiler dans le second fichier pour vérifier la qualité
Donc l'idée c'est que pour chaque nouvelle ligne, on vérifie que ce lot n'ait pas déjà été reçu, si c'est le cas on passe à la ligne suivante
si on ne l'a pas reçu on exécute la macro :
ouvrir l'autre fichier
importer le fichier des données dans la feuille "atelier"
on se place dans le bon onglet (en réalité il y en a 50)
on copie le n° de lot et sa date après la dernière colonne
on place sur chaque ligne les données correspondantes en allant les chercher dans la feuille atelier
on vérifie en simultané que les unités soient bien les même sur chaque ligne
si c'est ok, on poursuit, sinon message indiquant que les unités sont différentes
et ensuite on passe à la ligne suivante du fichier 001 BL.xls
Les entrées sont le fichier 001 BL.xls
tous les 2 jours on importe un fichier texte qui nous liste les livraisons du jour.
Ainsi pour chaque ligne nouvellement insérée, il y a un fichier de données que je dois compiler dans le second fichier pour vérifier la qualité
Donc l'idée c'est que pour chaque nouvelle ligne, on vérifie que ce lot n'ait pas déjà été reçu, si c'est le cas on passe à la ligne suivante
si on ne l'a pas reçu on exécute la macro :
ouvrir l'autre fichier
importer le fichier des données dans la feuille "atelier"
on se place dans le bon onglet (en réalité il y en a 50)
on copie le n° de lot et sa date après la dernière colonne
on place sur chaque ligne les données correspondantes en allant les chercher dans la feuille atelier
on vérifie en simultané que les unités soient bien les même sur chaque ligne
si c'est ok, on poursuit, sinon message indiquant que les unités sont différentes
et ensuite on passe à la ligne suivante du fichier 001 BL.xls
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
28 mai 2011 à 14:17
28 mai 2011 à 14:17
Bonjour,
Merci pour l'information.
Je comprends que les livraisons du jour se trouvent dans le classeur [001 BL.xls] dès la ligne 20.
Ensuite vous voulez insérez chaque ligne dans la feuille correspondante du classeur [ ...... ?...] uniquement si non existante dans ce dernier.
Est-ce bien cela .... ?
Merci pour l'information.
Je comprends que les livraisons du jour se trouvent dans le classeur [001 BL.xls] dès la ligne 20.
Ensuite vous voulez insérez chaque ligne dans la feuille correspondante du classeur [ ...... ?...] uniquement si non existante dans ce dernier.
Est-ce bien cela .... ?
en fait le fichier 001 BL.xls n'est pas "touchable" je veux dire que chaque livraison doit apparaître pour l'historique. donc les doublons ne doivent pas être effacés.
en fait dans le fichier graphes il y a déjà des lots présents donc l'idée était de ne pas rappatrier des données d'un lot qui était déjà compilé d'où la vérification que je suggérais dans le fichier 001 BL.xls qui contient tout l'historique. >> ainsi on évite les doublons dans le fichier graphes
en fait dans le fichier graphes il y a déjà des lots présents donc l'idée était de ne pas rappatrier des données d'un lot qui était déjà compilé d'où la vérification que je suggérais dans le fichier 001 BL.xls qui contient tout l'historique. >> ainsi on évite les doublons dans le fichier graphes
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
28 mai 2011 à 15:53
28 mai 2011 à 15:53
Bonjour,
Merci pour l'information.
Eh bien c'est encore bien trouble pour savoir quoi va dans quoi et de quel endroit a quelle endroit.. !
Je vais voir si j'arrive à faire le joint en regardant vos 2 classeurs [001 BL.xls] (comme il est intouchable, il faut une autorisation pour le voir ... ?) et [Graphes.xls].
Patience.
Merci pour l'information.
Eh bien c'est encore bien trouble pour savoir quoi va dans quoi et de quel endroit a quelle endroit.. !
Je vais voir si j'arrive à faire le joint en regardant vos 2 classeurs [001 BL.xls] (comme il est intouchable, il faut une autorisation pour le voir ... ?) et [Graphes.xls].
Patience.
non non aucune protection, je veux dire par intouchable que toutes les données présentes dans 001 BL.xls doivent être conservées. c'est justement ce fichier qui contient toutes les données d'entrée qui exécute la macro.
je pense réellement qu'il faille lancer la macro du module 3 de 001 BL.xls pour comprendre le processus que je cherche à obtenir et le modifier pour obtenir le fonctionnement basique qui fonctionne systématiquement car moi ça ne fonctionne que pour remplir la première colonne vu que le vllokup fait référence au nombre de colonne.
Tout mes commentaires sur les points que je n'ai pas su mettre en oeuvre ça serait dans un second temps
je pense réellement qu'il faille lancer la macro du module 3 de 001 BL.xls pour comprendre le processus que je cherche à obtenir et le modifier pour obtenir le fonctionnement basique qui fonctionne systématiquement car moi ça ne fonctionne que pour remplir la première colonne vu que le vllokup fait référence au nombre de colonne.
Tout mes commentaires sur les points que je n'ai pas su mettre en oeuvre ça serait dans un second temps
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
28 mai 2011 à 16:45
28 mai 2011 à 16:45
Bonjour,
Lorsque j'aurai neutralisé les messages d'erreur de la procédure, il me sera alors possible de trouver ce que vous voulez réaliser.
J'ai besoin d'un certain temps...!
Je vous donnerai des nouvelles dès que possible, mais pas avant demain soir.
Lorsque j'aurai neutralisé les messages d'erreur de la procédure, il me sera alors possible de trouver ce que vous voulez réaliser.
J'ai besoin d'un certain temps...!
Je vous donnerai des nouvelles dès que possible, mais pas avant demain soir.
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
Modifié par Le Pingou le 29/05/2011 à 23:10
Modifié par Le Pingou le 29/05/2011 à 23:10
Bonjour,
Impossible de faire tourner votre procédure, aucun résultat sauf des messages d'erreur, donc impossible de corriger et ou compléter votre procédure sans savoir exactement ce que vous voulez comme résultat...
En déchiffrant votre code je pense ceci :
Lancer la procédure depuis le classeur de contrôle [001 BL.xls].
Ouvrir le classeur des fournisseurs (x....y) [Graphes.xls] et importer les données du document XML sur la feuille [Atelier].
De cette feuille on copie le [BELNR] cellule [R4], le [DATUM] cellule [F1] (convertir date format européen), les lignes de la colonne [VALUE]/ [AA] qui correspondes aux noms des produits de la colonne [A] feuille [Fournisseur concernée] dans la première colonne vide de la feuille du fournisseur(x....Y).
Est-ce correct ? OUI / NON
Quelles informations doit-on insérer dans la feuille du classeur de contrôle [001 BL.xls]
Salutations.
Le Pingou
Impossible de faire tourner votre procédure, aucun résultat sauf des messages d'erreur, donc impossible de corriger et ou compléter votre procédure sans savoir exactement ce que vous voulez comme résultat...
En déchiffrant votre code je pense ceci :
Lancer la procédure depuis le classeur de contrôle [001 BL.xls].
Ouvrir le classeur des fournisseurs (x....y) [Graphes.xls] et importer les données du document XML sur la feuille [Atelier].
De cette feuille on copie le [BELNR] cellule [R4], le [DATUM] cellule [F1] (convertir date format européen), les lignes de la colonne [VALUE]/ [AA] qui correspondes aux noms des produits de la colonne [A] feuille [Fournisseur concernée] dans la première colonne vide de la feuille du fournisseur(x....Y).
Est-ce correct ? OUI / NON
Quelles informations doit-on insérer dans la feuille du classeur de contrôle [001 BL.xls]
Salutations.
Le Pingou
ça montre mon niveau en VBA
j'ai imposé la constante du répertoire alors qu'ensuite j'indique le répertoire !!!!
en fait il y a le directory du second fichier à changer et modifier l'extension XLSM par XLS sinon effectivement ça plante d'emblée. et là chez moi ça plante pour trouver la dernière colonne remplie alors que ça fonctionnait au boulot ... :-/
OUI tout est correct dans ce que tu as décrit, c'est la procédure qui aurait dû se passer avec ma macro
les informations dans 001 BL.xls sont des imports de fichiers texte, et il n'y a rien d'autre à faire dessus. ce fichier donne juste les entrées des lots et on vérifie qu'on a bien reçu les documents à travers les colonnes P et Q
je suis sincèrement désolé de t'avoir fait perdre autant de temps, j'aurais dû recontroler que ça fonctionnait en postant les fichiers
j'ai imposé la constante du répertoire alors qu'ensuite j'indique le répertoire !!!!
en fait il y a le directory du second fichier à changer et modifier l'extension XLSM par XLS sinon effectivement ça plante d'emblée. et là chez moi ça plante pour trouver la dernière colonne remplie alors que ça fonctionnait au boulot ... :-/
OUI tout est correct dans ce que tu as décrit, c'est la procédure qui aurait dû se passer avec ma macro
les informations dans 001 BL.xls sont des imports de fichiers texte, et il n'y a rien d'autre à faire dessus. ce fichier donne juste les entrées des lots et on vérifie qu'on a bien reçu les documents à travers les colonnes P et Q
je suis sincèrement désolé de t'avoir fait perdre autant de temps, j'aurais dû recontroler que ça fonctionnait en postant les fichiers
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
30 mai 2011 à 08:19
30 mai 2011 à 08:19
Bonjour,
Bonjour,
Merci pour l'information.
En indiquant les données que je vous ai soumise, que vous que vous venez de confirmer, cela aurait été plus simple de comprendre votre procédure et de l'adapter dans le but de produire le résultat correct.
Dans la soirée le résultat.
Bonne journée.
Bonjour,
Merci pour l'information.
En indiquant les données que je vous ai soumise, que vous que vous venez de confirmer, cela aurait été plus simple de comprendre votre procédure et de l'adapter dans le but de produire le résultat correct.
Dans la soirée le résultat.
Bonne journée.
J'avais posté il y a qques semaines en décrivant comme vous l'avez fait et en joignant les fichiers mais je n'ai eu aucune réponse donc j'ai pensé à démarrer la macro pour que ce soit plus parlant (mais bon ça n'a rien donné)
http://www.cijoint.fr/cjlink.php?file=cj201105/cijke7mJTR.xls
ici le fichier en l'état actuel avec toutes ces lignes pour vous donnez une idée d'uen nombre de lignes que ça génère à chaque livraison et donc l'intérêt (d'après moi) d'instaurer une fonction permettant de ne traiter que les nouvelles entrées (genre un compteur qui dit que lors du dernier import nosu étions à la ligne 3985 et donc au prochain la macro devra se lancer à partir de la ligne 3986)
enfin je pense que vous êtes le mieux à même de dire ce qui est le plus judicieux
http://www.cijoint.fr/cjlink.php?file=cj201105/cijke7mJTR.xls
ici le fichier en l'état actuel avec toutes ces lignes pour vous donnez une idée d'uen nombre de lignes que ça génère à chaque livraison et donc l'intérêt (d'après moi) d'instaurer une fonction permettant de ne traiter que les nouvelles entrées (genre un compteur qui dit que lors du dernier import nosu étions à la ligne 3985 et donc au prochain la macro devra se lancer à partir de la ligne 3986)
enfin je pense que vous êtes le mieux à même de dire ce qui est le plus judicieux
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
30 mai 2011 à 16:37
30 mai 2011 à 16:37
Bonjour,
N'en rajoutez plus, je ne vais pas me replonger dans une nouvelle version du classeur.
Je suis sur l'adaptation de votre procédure, en début de soirée le résultat.
N'en rajoutez plus, je ne vais pas me replonger dans une nouvelle version du classeur.
Je suis sur l'adaptation de votre procédure, en début de soirée le résultat.
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
30 mai 2011 à 23:56
30 mai 2011 à 23:56
Bonjour,
Je vous laisse essayer, la procédure est déclencher par le bouton [Clic-moi].
Ne pas oublier de renseigner correctement le non du classeur et le chemin du répertoire des dossiers !
Ma proposition : https://www.cjoint.com/?3EEx3yaP0su
Je vous laisse essayer, la procédure est déclencher par le bouton [Clic-moi].
Ne pas oublier de renseigner correctement le non du classeur et le chemin du répertoire des dossiers !
Ma proposition : https://www.cjoint.com/?3EEx3yaP0su
bonsoir
merci pour cette procédure
j'étais en train de rire parce que ma boucle pour parcourir les différentes lignes me prenait uen dizaine de lignes et là ça prend 3 lignes ^^
je vais regarder demain car il y a un erreur d'incompatibilité de type sur la ligne qui prend la date et la transforme au format européen, ça fait planter la macro.
sinon je peux que c'est de l'excellent travail. Merci beaucoup
merci pour cette procédure
j'étais en train de rire parce que ma boucle pour parcourir les différentes lignes me prenait uen dizaine de lignes et là ça prend 3 lignes ^^
je vais regarder demain car il y a un erreur d'incompatibilité de type sur la ligne qui prend la date et la transforme au format européen, ça fait planter la macro.
sinon je peux que c'est de l'excellent travail. Merci beaucoup
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
31 mai 2011 à 11:32
31 mai 2011 à 11:32
Bonjour,
Note : cela est dû au format des dates de votre système qui utilise "/" au lieu du ".".
Salutations.
Le Pingou
Note : cela est dû au format des dates de votre système qui utilise "/" au lieu du ".".
Salutations.
Le Pingou
Bonjour,
tout fonctionne très bien :-)
j'aimerais savoir si je pouvais te demander à nouveau de l'aide pour compléter cette procédure.
J'aimerais apporter des contrôles :
- vérifier que les unités de la feuille atelier (colonne X) soit les mêmes que la colonne O du fichier graphe
- avertir l'utilisateur qu'une valeur serait absente pour uen ligne dans la feuille atelier
- Est il possible de mettre en place une boucle pour que chaque nouvelle ligne exécute la macro ?
http://www.cijoint.fr/cjlink.php?file=cj201105/cijke7mJTR.xls
ce fichier est le fichier complet. comme on peut le voir il y a plusieurs lignes insérées à chaque nouvelle date et la macro devrait s'exécuter pour chaque ligne sauf que dans mon cas j'ai imposé les constantes (lot, fournisseur, PN, etc)
j'ai essayé en faisant par ex : lot = Range("N:N").Value
mais ça ne donne rien
tout fonctionne très bien :-)
j'aimerais savoir si je pouvais te demander à nouveau de l'aide pour compléter cette procédure.
J'aimerais apporter des contrôles :
- vérifier que les unités de la feuille atelier (colonne X) soit les mêmes que la colonne O du fichier graphe
- avertir l'utilisateur qu'une valeur serait absente pour uen ligne dans la feuille atelier
- Est il possible de mettre en place une boucle pour que chaque nouvelle ligne exécute la macro ?
http://www.cijoint.fr/cjlink.php?file=cj201105/cijke7mJTR.xls
ce fichier est le fichier complet. comme on peut le voir il y a plusieurs lignes insérées à chaque nouvelle date et la macro devrait s'exécuter pour chaque ligne sauf que dans mon cas j'ai imposé les constantes (lot, fournisseur, PN, etc)
j'ai essayé en faisant par ex : lot = Range("N:N").Value
mais ça ne donne rien
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
31 mai 2011 à 14:51
31 mai 2011 à 14:51
Bonjour,
Sans voir le détail, il faut préciser si la référence base est la liste des produits de la colonne [WW] de la feuille atelier ou celle la colonne [A] de la feuille du fournisseur .... !
- vérifier que les unités de la feuille atelier (colonne X) soit les mêmes que la colonne O du fichier graphe
Pour quelle raison les unités, dans la procédure le contrôle est réalisé sur [CHARACTERISTIC_NAME] .... Réponse.......
Avertir l'utilisateur qu'une valeur serait absente pour une ligne dans la feuille atelier
Quelle valeur et par rapport à quoi .... ?
Est-il possible de mettre en place une boucle pour que chaque nouvelle ligne exécute la macro ?
Oui mais il faut définir par rapport à quoi.... ?
Je regarderai votre fichier plus tard dans la journée.
Sans voir le détail, il faut préciser si la référence base est la liste des produits de la colonne [WW] de la feuille atelier ou celle la colonne [A] de la feuille du fournisseur .... !
- vérifier que les unités de la feuille atelier (colonne X) soit les mêmes que la colonne O du fichier graphe
Pour quelle raison les unités, dans la procédure le contrôle est réalisé sur [CHARACTERISTIC_NAME] .... Réponse.......
Avertir l'utilisateur qu'une valeur serait absente pour une ligne dans la feuille atelier
Quelle valeur et par rapport à quoi .... ?
Est-il possible de mettre en place une boucle pour que chaque nouvelle ligne exécute la macro ?
Oui mais il faut définir par rapport à quoi.... ?
Je regarderai votre fichier plus tard dans la journée.
la référence base est toujours celle des feuilles fournisseurs (colonne A)
- pour les unités c'était juste pour vérifier que les nouvelles valeurs étaient en concordance avec les précédentes avec ce contrôle sur les unités
- c'était en imaginant que notre fournisseur fasse mal son fichier xml et qu'une valeur soit absente d'uen ligne, du coup il y aurait un blanc
- pour chaque livraison on indique en colonne A du fichier 001 BL.xls, le numéro du bon de livraison et la date. Imaginons qu'on démarre à l'instant t=0. la première ligne serait 20 et 25 produits sont livrés donc on lancerait via le bouton la macro pour ces 25 lignes et la valeur de la colonne A serait enregistrée dans une case mémoire.
le 2è jour nouvelle livraison de 10 produits. et là plutôt que la macro reparte de la ligne 20, elle irait voir la valeur en cellule mémoire et se placerait sur la ligne suivante pour exécuter la macro pour les nouvelles lignes.
- pour les unités c'était juste pour vérifier que les nouvelles valeurs étaient en concordance avec les précédentes avec ce contrôle sur les unités
- c'était en imaginant que notre fournisseur fasse mal son fichier xml et qu'une valeur soit absente d'uen ligne, du coup il y aurait un blanc
- pour chaque livraison on indique en colonne A du fichier 001 BL.xls, le numéro du bon de livraison et la date. Imaginons qu'on démarre à l'instant t=0. la première ligne serait 20 et 25 produits sont livrés donc on lancerait via le bouton la macro pour ces 25 lignes et la valeur de la colonne A serait enregistrée dans une case mémoire.
le 2è jour nouvelle livraison de 10 produits. et là plutôt que la macro reparte de la ligne 20, elle irait voir la valeur en cellule mémoire et se placerait sur la ligne suivante pour exécuter la macro pour les nouvelles lignes.
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
31 mai 2011 à 23:56
31 mai 2011 à 23:56
Bonjour,
Petite remarque :
- pour les unités c'était juste pour vérifier que les nouvelles valeurs étaient en concordance avec les précédentes avec ce contrôle sur les unités
Cela n'a pas de sens car la même unité (ppb est valable pour plusieurs produits (Arsenic, cobalt, etc.)
- c'était en imaginant que notre fournisseur fasse mal son fichier xml et qu'une valeur soit absente d'une ligne, du coup il y aurait un blanc
Oui dans ce cas il manquera la valeur dans le lot concerné ---? que faire ?
Salutations.
Le Pingou
Petite remarque :
- pour les unités c'était juste pour vérifier que les nouvelles valeurs étaient en concordance avec les précédentes avec ce contrôle sur les unités
Cela n'a pas de sens car la même unité (ppb est valable pour plusieurs produits (Arsenic, cobalt, etc.)
- c'était en imaginant que notre fournisseur fasse mal son fichier xml et qu'une valeur soit absente d'une ligne, du coup il y aurait un blanc
Oui dans ce cas il manquera la valeur dans le lot concerné ---? que faire ?
Salutations.
Le Pingou
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
31 mai 2011 à 21:03
31 mai 2011 à 21:03
Bonjour,
Merci pour les informations.
Je vous prépare une solution avec contrôle pour l'exécution de la procédure sur la base de ce que j'ai compris, ensuite on avisera.
Patience.
Merci pour les informations.
Je vous prépare une solution avec contrôle pour l'exécution de la procédure sur la base de ce que j'ai compris, ensuite on avisera.
Patience.
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
31 mai 2011 à 23:28
31 mai 2011 à 23:28
Bonjour,
Voici ma proposition : https://www.cjoint.com/?3EFxCdIPaCw
Regardez si cela vous convient !
Voici ma proposition : https://www.cjoint.com/?3EFxCdIPaCw
Regardez si cela vous convient !
:-)
j'ai fait un premier essai et ça me semble très bien
et le transfert des infos du vlookup sur une seconde feuille est une bonne idée tout comme la liste déroulante
demain je verrai avec le fichier de base et les fichiers xml pour voir sur une plus grande échelle mais je susi déjà content
Merci beaucoup pour ce travail
j'ai fait un premier essai et ça me semble très bien
et le transfert des infos du vlookup sur une seconde feuille est une bonne idée tout comme la liste déroulante
demain je verrai avec le fichier de base et les fichiers xml pour voir sur une plus grande échelle mais je susi déjà content
Merci beaucoup pour ce travail
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
1 juin 2011 à 11:00
1 juin 2011 à 11:00
Bonjour,
Petite question : est-ce que le classeur de compilation est toujours le même (Graphes.xls/xlsm) et qu'elle est le nombre de feuilles ?
Petite question : est-ce que le classeur de compilation est toujours le même (Graphes.xls/xlsm) et qu'elle est le nombre de feuilles ?
oui toujours le même fichier de compilation
il y a 90 feuilles actuellement et avec les prochains ajouts on arrivera à 100 mais guère plus.
je vais modifier cette partie de la procédure
'activer la feuille du fournisseur
Worksheets(feuille).Activate
car pour une même feuille il peut y avoir 2 PN différents. il s'agit du même produit et des mêmes données, c'est simplement la contenance qui change et donc je compile sur la même feuille
j'avais mis ça pour faire la recherche sur les 2 première cases A1 et A2 vu qu'ici je place les différents PN, reste à savoir si c'est la meilleure technique pour trouver la bonne feuille
'Se positionner dans l'onglet correspondant au PN et au bon fournisseur
Dim celluletrouvee As Range
Dim feuille As Object
For Each feuille In Worksheets
Set celluletrouvee = Range("A1:A2").Find(onglet, lookat:=xlWhole) 'pas sûr qu'il faille utiliser ces arguments là
Worksheets(onglet).Activate
Next
il y a 90 feuilles actuellement et avec les prochains ajouts on arrivera à 100 mais guère plus.
je vais modifier cette partie de la procédure
'activer la feuille du fournisseur
Worksheets(feuille).Activate
car pour une même feuille il peut y avoir 2 PN différents. il s'agit du même produit et des mêmes données, c'est simplement la contenance qui change et donc je compile sur la même feuille
j'avais mis ça pour faire la recherche sur les 2 première cases A1 et A2 vu qu'ici je place les différents PN, reste à savoir si c'est la meilleure technique pour trouver la bonne feuille
'Se positionner dans l'onglet correspondant au PN et au bon fournisseur
Dim celluletrouvee As Range
Dim feuille As Object
For Each feuille In Worksheets
Set celluletrouvee = Range("A1:A2").Find(onglet, lookat:=xlWhole) 'pas sûr qu'il faille utiliser ces arguments là
Worksheets(onglet).Activate
Next
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
1 juin 2011 à 18:41
1 juin 2011 à 18:41
Bonjour,
J'ai modifié la procédure pour tenir compte que c'est le même classeur de compilation.
Les fichiers : https://www.cjoint.com/?3FbsNAy4oUF
J'ai modifié la procédure pour tenir compte que c'est le même classeur de compilation.
Les fichiers : https://www.cjoint.com/?3FbsNAy4oUF
bonjour,
je me suis permis de déplacer des blocs car la première boucle pour les lignes NonOK ne fonctionnait pas en laissant l'ouverture du fichier de compilation que j'ai mis dans la seconde procédure
'ouverture du fichier de compilation
repertoire = Range("monrepert")
wbcompile = Range("ClaCompil")
Workbooks.Open Filename:=repertoire & wbcompile
' Workbooks(wbcompile).Close SaveChanges:=True
par contre l'activation de la bonne feuille pose le même problème.
par exemple : ma feuille s'appelle actuellement 2CAC0731 FOURNISSEURA
donc pour la ligne avec 2CAC0731 ça ne posera aucun soucis.
par contre supposons que le 2CAC0732 soit la même substance même de contenance différente, il ne trouvera pas la feuille car les données doivent être compilées aussi en feuille 2CAC0731 FournisseurA
je susi responsable car je n'ai pas envoyé un fichier avec cet exemple.
en feuille 2CAC0731 FOURNISSEURA on retrouvera
en A1 : 2CAC0731 FOURNISSEURA
en A2 : 2CAC0732 FOURNISSEURB
du coup au départ comme je lançais la recherche sur les cellules A1 et A2 de chaque feuille, j'arrivais à retrouver la bonne feuille
j'ai remis un exemple http://www.cijoint.fr/cjlink.php?file=cj201106/cijnMQoVUX.zip
je me suis permis de déplacer des blocs car la première boucle pour les lignes NonOK ne fonctionnait pas en laissant l'ouverture du fichier de compilation que j'ai mis dans la seconde procédure
'ouverture du fichier de compilation
repertoire = Range("monrepert")
wbcompile = Range("ClaCompil")
Workbooks.Open Filename:=repertoire & wbcompile
' Workbooks(wbcompile).Close SaveChanges:=True
par contre l'activation de la bonne feuille pose le même problème.
par exemple : ma feuille s'appelle actuellement 2CAC0731 FOURNISSEURA
donc pour la ligne avec 2CAC0731 ça ne posera aucun soucis.
par contre supposons que le 2CAC0732 soit la même substance même de contenance différente, il ne trouvera pas la feuille car les données doivent être compilées aussi en feuille 2CAC0731 FournisseurA
je susi responsable car je n'ai pas envoyé un fichier avec cet exemple.
en feuille 2CAC0731 FOURNISSEURA on retrouvera
en A1 : 2CAC0731 FOURNISSEURA
en A2 : 2CAC0732 FOURNISSEURB
du coup au départ comme je lançais la recherche sur les cellules A1 et A2 de chaque feuille, j'arrivais à retrouver la bonne feuille
j'ai remis un exemple http://www.cijoint.fr/cjlink.php?file=cj201106/cijnMQoVUX.zip
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
2 juin 2011 à 15:42
2 juin 2011 à 15:42
Bonjour,
Je vais regarder votre demande plus tard.
Toutefois, la version que je vous ai transmise fonctionne correctement avec divers documents [xml] fictifs ainsi que pour des fournisseurs aussi différents
Salutations.
Le Pingou
Je vais regarder votre demande plus tard.
Toutefois, la version que je vous ai transmise fonctionne correctement avec divers documents [xml] fictifs ainsi que pour des fournisseurs aussi différents
Salutations.
Le Pingou
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
Modifié par Le Pingou le 2/06/2011 à 16:14
Modifié par Le Pingou le 2/06/2011 à 16:14
Bonjour,
Je ne trouve aucune différence entre vos fichiers de ce jour et les derniers que je vous ai envoyé !
Ou je trouve le bon fournisseur, car avoir en en A1 : 2CAC0731 FOURNISSEURA
et en A2 : 2CAC0732 FOURNISSEURB sur la feuille du forurnisseur [2CAC0731 FOURNISSEURA] c'est un non sens !
Salutations.
Le Pingou
Je ne trouve aucune différence entre vos fichiers de ce jour et les derniers que je vous ai envoyé !
Ou je trouve le bon fournisseur, car avoir en en A1 : 2CAC0731 FOURNISSEURA
et en A2 : 2CAC0732 FOURNISSEURB sur la feuille du forurnisseur [2CAC0731 FOURNISSEURA] c'est un non sens !
Salutations.
Le Pingou
je ne sais pas ce que j'ai fait mais il faut regarder dans le dossier graphes du zip
là il y a une feuille 2cac0730 founisseurB avec uen seule valeur en A1 et la seconde feuille 2CAC0730 FournisseurA avec en A1 2CAC0730 et en A2 2CAC0731
le fournisseurA utilise 2 contenants différents d'où A1 et A2 alors que le fournisseurB n'en utilise qu'un
là il y a une feuille 2cac0730 founisseurB avec uen seule valeur en A1 et la seconde feuille 2CAC0730 FournisseurA avec en A1 2CAC0730 et en A2 2CAC0731
le fournisseurA utilise 2 contenants différents d'où A1 et A2 alors que le fournisseurB n'en utilise qu'un
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
2 juin 2011 à 17:47
2 juin 2011 à 17:47
Bonjour,
Eh bien, en cherchant les différences, je suis tombé sur autre chose : comment faites-vous pour importer le dossier [xml] qui correspond au bon fournisseur .... ?
Il n'y a aucune référence exploitable dans le dossier [000 BL.xls] ....que faire ?
Eh bien, en cherchant les différences, je suis tombé sur autre chose : comment faites-vous pour importer le dossier [xml] qui correspond au bon fournisseur .... ?
Il n'y a aucune référence exploitable dans le dossier [000 BL.xls] ....que faire ?
les fichiers sont enregistrés avec une nomenclature précise : PN lot fournisseur.extension
avant de poster ici la colonne L était vide et mes cases A1 et/ou A2 contenaient seulement le PN. du coup il était impossible de faire la différence entre les fournisseurs donc j'ai rajouté la concaténation en colonne L [001 BL] pour retrouver la bonne feuille en rajoutant en A1/A2 le fournisseur à la suite du PN (2CAC0731 par ex)
avant de poster ici la colonne L était vide et mes cases A1 et/ou A2 contenaient seulement le PN. du coup il était impossible de faire la différence entre les fournisseurs donc j'ai rajouté la concaténation en colonne L [001 BL] pour retrouver la bonne feuille en rajoutant en A1/A2 le fournisseur à la suite du PN (2CAC0731 par ex)
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
Modifié par Le Pingou le 2/06/2011 à 21:54
Modifié par Le Pingou le 2/06/2011 à 21:54
Bonjour,
Je prends comme référence de travail le classeur [000 BL.xls].
Par exemple la ligne 20 doit avoir les références du document [xml] qui contient les données entrée pour le produit soit le PN, le Lot et le Fournisseur, ces 3 références forment le nom du document [xml]. De cette manière on peut importer le document qui correspond au fournisseur et enregistrer les valeurs dans le classeur [Graphes.xls] sur la feuille y relative.
Dans votre cas [2CAC0731 2113466 FOURNISSEURA] et [2CAC0732 2113467 FOURNISSEURA] vous devez avoir dans le classeur [000 BL.xls] deux lignes qui y font référence et de cette manière vous ne trouverai pas la feuille qui correspond au fournisseur [2CAC0732 FOURNISSEURA] dans le classeur [Graphes.xls] car il semble que le nom de la feuille est formé du PN + FournisseurX.
Quelques chose est incohérent... !
Vous parlez des indications des cellules [A1 :A2] et que faites-vous si un fournisseur livre plus que 2 produits différents ?
Question: est-ce que les noms des feuilles qui font référence aux fournisseurs sont corrects, pourquoi y a-t-il le PN ...?
Salutations.
Le Pingou
Je prends comme référence de travail le classeur [000 BL.xls].
Par exemple la ligne 20 doit avoir les références du document [xml] qui contient les données entrée pour le produit soit le PN, le Lot et le Fournisseur, ces 3 références forment le nom du document [xml]. De cette manière on peut importer le document qui correspond au fournisseur et enregistrer les valeurs dans le classeur [Graphes.xls] sur la feuille y relative.
Dans votre cas [2CAC0731 2113466 FOURNISSEURA] et [2CAC0732 2113467 FOURNISSEURA] vous devez avoir dans le classeur [000 BL.xls] deux lignes qui y font référence et de cette manière vous ne trouverai pas la feuille qui correspond au fournisseur [2CAC0732 FOURNISSEURA] dans le classeur [Graphes.xls] car il semble que le nom de la feuille est formé du PN + FournisseurX.
Quelques chose est incohérent... !
Vous parlez des indications des cellules [A1 :A2] et que faites-vous si un fournisseur livre plus que 2 produits différents ?
Question: est-ce que les noms des feuilles qui font référence aux fournisseurs sont corrects, pourquoi y a-t-il le PN ...?
Salutations.
Le Pingou
ah d'accord je comprends l'incohérence dont vous parliez tout à l'heure en lisant votre explication.
en effet le nom de la feuille est seulement composé du PN et FOURNISSEUR car les caractères sont limités et je me suis trouvé confronté à ce problème par la suite. j'avais fait le choix d'indiquer le nom de la substance quand c'est possible (H2SO4 ou HCl, NaOH) qui comptent peu de caractères ou quand la substance compte trop de caractères, de mettre le PN et FOURNISSEUR pour différencier lorsqu'une même substance est fournie par 2 fournisseurs.
les 90 onglets existants dans le vrai fichier représentent chacun une substance chez un fournisseur. cette même substance peut être livrée en bouteille ou en fût >> 2 PN différents pour chaque contenance et je les indique en A1 et A2 (PN FOURNISSEUR pour ne pas écrire les données du fournisseur A dans la feuille du fournisseur B)
il ne peut pas y avoir plus de 2 contenants pour une même substance chez un fournisseur
pour résumer, le nom des feuilles étaient juste pour le classement lors de ma construction de la base mais les noms des feuilles n'est pas exploitable par macro car il y manque des informations
en effet le nom de la feuille est seulement composé du PN et FOURNISSEUR car les caractères sont limités et je me suis trouvé confronté à ce problème par la suite. j'avais fait le choix d'indiquer le nom de la substance quand c'est possible (H2SO4 ou HCl, NaOH) qui comptent peu de caractères ou quand la substance compte trop de caractères, de mettre le PN et FOURNISSEUR pour différencier lorsqu'une même substance est fournie par 2 fournisseurs.
les 90 onglets existants dans le vrai fichier représentent chacun une substance chez un fournisseur. cette même substance peut être livrée en bouteille ou en fût >> 2 PN différents pour chaque contenance et je les indique en A1 et A2 (PN FOURNISSEUR pour ne pas écrire les données du fournisseur A dans la feuille du fournisseur B)
il ne peut pas y avoir plus de 2 contenants pour une même substance chez un fournisseur
pour résumer, le nom des feuilles étaient juste pour le classement lors de ma construction de la base mais les noms des feuilles n'est pas exploitable par macro car il y manque des informations
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
2 juin 2011 à 22:19
2 juin 2011 à 22:19
Bonjour,
Comment est nommé la feuille du vrai fichier ?
Salutations.
Le Pingou
Comment est nommé la feuille du vrai fichier ?
Salutations.
Le Pingou
malheureusement il n'y a pas de règle précise quand je nommais les feuilles
la seule chose sûre c'est que j'indique le nom du fournisseur à chaque fois. mais ça n'aide pas vu que plusieurs feuilles ont le même fournisseur
je ne voyais pas comment mettre uen nomenclature en place pour toutes les feuilles alors que les caractères sont limités
la seule chose sûre c'est que j'indique le nom du fournisseur à chaque fois. mais ça n'aide pas vu que plusieurs feuilles ont le même fournisseur
je ne voyais pas comment mettre uen nomenclature en place pour toutes les feuilles alors que les caractères sont limités
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
2 juin 2011 à 22:29
2 juin 2011 à 22:29
Bonjour,
Comment est nommé la feuille du vrai fichier ?
Salutations.
Le Pingou
Comment est nommé la feuille du vrai fichier ?
Salutations.
Le Pingou
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
2 juin 2011 à 22:48
2 juin 2011 à 22:48
Bonjour,
Merci pour la réponse qui n'est pas clair : H2SO4 96% fournisseurA (en vrai fournisseurA = 3 caractères)
qu'est-ce que veut dire (en vrai fournisseurA = 3 caractères) ?
Que voulez-vous obtenir dans votre classeur [Graphes.xls] ?
Ne serait-il pas plus simple de prendre une feuille par fournisseur est dans les colonnes (dès [O]) vous ajouter une ligne pour le numéro PN ?
Merci pour la réponse qui n'est pas clair : H2SO4 96% fournisseurA (en vrai fournisseurA = 3 caractères)
qu'est-ce que veut dire (en vrai fournisseurA = 3 caractères) ?
Que voulez-vous obtenir dans votre classeur [Graphes.xls] ?
Ne serait-il pas plus simple de prendre une feuille par fournisseur est dans les colonnes (dès [O]) vous ajouter une ligne pour le numéro PN ?
H2SO4 96% OMG >> nom de la vraie feuille
dans le classeur graphe, l'objectif est de compiler toutes les données des différents pour chaque substance et ainsi faire un suivi.
ce suivi permettra de mettre en corrélations des valeurs atypiques avec notre production
par exemple si la valeur habituelle est de 1 et que sur un lot elle passe à 9 on pourra voir s'il y a un impact. Ce suivi se fera à travers des courbes pour chaque ligne et pour chaque feuille.
rajouter uen ligne avec le PN engendrerait un mixing des données de différentes substances ce qui n'aurait aucune valeur pour le suivi.
le suivi ne porte pas sur les fournisseurs mais sur la qualité des substances par fournisseur
dans le classeur graphe, l'objectif est de compiler toutes les données des différents pour chaque substance et ainsi faire un suivi.
ce suivi permettra de mettre en corrélations des valeurs atypiques avec notre production
par exemple si la valeur habituelle est de 1 et que sur un lot elle passe à 9 on pourra voir s'il y a un impact. Ce suivi se fera à travers des courbes pour chaque ligne et pour chaque feuille.
rajouter uen ligne avec le PN engendrerait un mixing des données de différentes substances ce qui n'aurait aucune valeur pour le suivi.
le suivi ne porte pas sur les fournisseurs mais sur la qualité des substances par fournisseur
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
2 juin 2011 à 23:50
2 juin 2011 à 23:50
Bonjour,
Dans ce cas vous organisez selon le suivi désiré.
Dans ce cas vous organisez selon le suivi désiré.
est ce que la recherche que j'avais mise au départ est la meilleure solution ?
Dim feuille As String, PN As String
Dim onglet As Object
feuille = shB.Range("L" & ligref).Value
For Each onglet In Worksheets
Set celluletrouvee = Range("A1:A2").Find(feuille, lookat:=xlWhole)
Worksheets(onglet).Activate
Next
Dim feuille As String, PN As String
Dim onglet As Object
feuille = shB.Range("L" & ligref).Value
For Each onglet In Worksheets
Set celluletrouvee = Range("A1:A2").Find(feuille, lookat:=xlWhole)
Worksheets(onglet).Activate
Next