Récupérer des lignes dans un autre Classeur de plusieurs feuilles avec condition

Bonjour à tous,

Je souhaite à partir d’un nouveau classeur récupérer des données de plusieurs feuilles d’un autre classeur, le voici Tableau de prod.xlsx (3,3 Mo) (c’est des tableau vides qu’on remplisse au fur du temps) avec condition. La condition est que je veux juste récupérer que les lignes qui comporteront un P+, C+ ou R à la colonne B dans tous les tableaux d’une manière automatique.
J’ai pas aussi le droit d’utiliser des macros sur ce classeur, j’en ai le droit que sur le nouveau classeur.

Svp si vous avez un code à me proposer je vous serai vraiment reconnaissant.

Merci d’avance

Cordialement

Bonjour

Ci-joint ma proposition

ce fichier avec celui de la source « Tableau de prod.xlsx » doivent être ouvert
Dans le fichier « Tableau de prod.xlsx » la dernière ligne de chaque tableau en colonne A doit être avec une donnée
J’ai mis sur celui que j’ai récupéré la donnée « Fin »
Ainsi pour le traitement de cerner la dernière ligne à traiter de chaque onglet
Si la dernière ligne colonne A a toujours une donnée inutile d’en rajouter une

Dans mon fichier proposé onglet "Récupération les 3 premières lignes sont à l’image de celles de tous les onglets du fichier « Tableau de prod.xlsx »
Ne pas les supprimer

Cliques sur le bouton « Récupération »
A l’invite saisir le numéro du classeur source à utiliser dans la liste de ceux ouverts proposées
Toutes les lignes de tous les onglets fichier choisi « Tableau de prod.xlsx » répondant aux critères :

lignes qui comporteront un P+, C+ ou R à la colonne B

sont listé les unes après les autres onglet « Récupération » de ce fichier ci-joint

Si la saisie est incorrect un message est donné l’indiquant et le traitement est annulé

Fais des tests et dis moi

Classeur1.xlsm (25,1 Ko)

C’est vraiment géniale!!
Ca marche parfaitement.
Merci beaucoup vraiment

Si vous aviez une solution pour ça soit automatique sans que j’appuis sur le bouton « récupération » ça sera cool.
sinon c’est pas grave je suis vraiment vraiment et satisfait de votre réponse car cela fait presque 3 semaines que je galère sans avoir de fonctionnelles.
Merci encore une fois

Ravi que cela te convienne

« Si vous aviez une solution pour ça soit automatique sans que j’appuis sur le bouton « récupération » ça sera cool. »

Automatique comment ?

Il faut un système de déclenchement

Dis moi comment tu concois ce déclenchement automatique

De plus le traitement doit connaître le nom du fichier source à utiliser soit en l indiquant comme celui que je t ai proposé dans une boîte de dialogue soit si celui-ci â un nom précis toujours le même à inclure dans le code ou si il devait éventuellement évoluer à indiquer dans une cellule qui devra être actualisé au gré de son évolution

A toi de me dire quelle option choisir

Oui il a un nom précis « Tableau de prod »
Le nom reste le même, il change pas.
Donc c’est pas un soucis vous pouvez inclure dans le programme svp.

J’ai remarqué aussi un détail, il arrive qu’on fusionne souvent des cellules soit dans colonne E soit dans la colonne L mais la donnée dans la cellule fusionnée s’affiche que pour la première ligne dans feuilles récupération
Je vous donne un exemple ci-dessous
Classeur.xlsx (41,5 Ko) .

Normal car la cellule fusionnée n’a qu’une adresse donc qu’une ligne la 1° de la fusion
Les fusions sont les bêtes noirs des traitements VBA il vaux mieux les éviter
Car pas d’autres choix où de ne ramener que sur la première ligne la donnée de la colonne fusionnée ou de récupérer toutes les lignes de ces fusions sans possibilité de filtrer la colonne B et donc de ne pas répondre à l’exigence :

lignes qui comporteront un P+, C+ ou R à la colonne B

pour toutes ces lignes aux colonnes fusionnées

Je remarque dans ton dernier fichier exemple que les données s’étendent jusqu’en colonne X

Or à l’identique de tes premiers fichiers mon traitement prend en compte celles-ci que jusqu’à la colonne U

Je ne sais pas si cette plage est suffisante au regard de ce que tu viens de me transmettre

Merci de dire

Ci-joint une nouvelle version qui en plus de fonctionnement que tu as testé permet de mettre onglet « Récupération » cellule « V2 » le nom du fichier source : « Tableau de prod.xlsx »

attention de bien mettre le nom exacte à la casse prés avec son extension « .xlsx »

Si la cellule V2 comporte le nom du fichier source la procédure vérifies uniquement sa présence ouverte et donne un message si celui-ci ne l’était pas
Puis exécute normalement la récupération des données sans autre invite
Si la cellule V2 est vide même procédure que précédemment

Testes et dis moi

Classeur1.xlsm (25,9 Ko)

Je l’ai essayer et ca marche bien.
Le problème sur les données qui s’étendent jusqu’en colonne X sur le dernier fichier que je vous ai envoyé est du à une fausse manip de ma part, c’est pas grave.

Je vais essayé d’éviter les fusions le plus possible. Ca sera un peu chiant de répéter la même chose dans plusieurs colonnes successifs mais je pense que c’est mieux.

Merci beaucoup infiniment, J’étais dans une grosse galère mais vous m’avez sauver

Pour les fusions de cellules seule la donnée de la première ligne de la fusion sera dans la récupération
Si dans la colonne concernée toute ligne doit avoir sa cellule non vide on peut considérer que celle qui le sont font partie d une fusion et de leur reporter la dernière récupérée qui doit être la première de la fusion
Je peux inclure cette mise à jour dans l exécution
Le tout est de me confirmer cette disposition et ce pour toute colonne potentiellement avec des fusions

A toi de me dire

Oui je pense que cette solution sera peut-être mieux. vous pouvez le faire.
Je voulais demander encore une chose de plus car vous m’avais tellement aidé. Mais là vu que vous êtes déjà sur mon fichier mieux vaut demander.
Est-ce possible d’avoir les P+ ensuite les C+ et enfin les R dans la feuille de récupération?

Ci-joint une nouvelle version qui intègre :

le remplissage des colonnes E et L pour les lignes aux cellules fusionnées

Attention le traitement se base pour ces cellules fusionnées ou pas sur la présence obligatoire d’une données les concernant
Soit c’est celle présente qui est récupérée soit c’est la dernière récupérée qui est recopiée pour toute cellule vide qui suit pour ces 2 colonnes

Tri dans le fichier de récupération des lignes récupérée sur la colonne B dans l’ordre :

P+ ensuite les C+ et enfin les R

Fais des essais et dis moi

Classeur1.xlsm (28,5 Ko)

J’ai tester une fois ça a bien marché et il m’a mis ça(voir photo)

j’ai ressayé la récupération mais il marchait plus je crois c’est à cause du « bug ». Il a recopié la donnée de la cellule fusionnée pour toutes lignes y compris celle qui sont en en dessous celle ci et qui sont vides. Mais c’est grave car cette colonne sera aura toujours des données.

J’ai un autre soucis aussi car j’ai un peu montré à mon collègue et il m’a fait savoir que le nom du fichier change chaque semaine fin c’est le même nom mais suivis du numéro de semaine.

Je suis vraiment désolé. si vous pouvez pas le faire c’est pas grave je vous comprend, vous m’avez largement aidez donc merci mille fois

Peux tu me transmettre le fichier ou « Tableau de prod.xlsx » ou « Classeur1.xlsm » origine de ce blocage pour que je teste et analyse

Pour le nom du fichier tu adaptes au coup par coup la cellule V2

Attention l’intégralité du nom avec son extension à la casse prés

D’accord j’ai compris pour le nom.

Voici le fichier Tableau de prod.xlsx (179,0 Ko) il a qlq données mais c’est pas grave

Dans ton fichier il y a aucune donnée à récupérer

Je te rappelle que la colonne A de la dernière ligne à récupérer doit avoir une donnée pour tous les onglets où des enregistrements sont à recopier et traiter
Tous tes onglets sont vides à par « Données de calcul » et « Prévence agent » qui n’ont pas du tout les mêmes entêtes de colonnes

Merci de me fournir celui qui provoque le bug donc qui a des données à traiter soit le fichier source « Tableau de prod.xlsx » soit le fichier qui a récupéré ces données « Classeur1.xlsm » et dont le traitement bloque

C’est le même fichier il est vide de base donc j’ai rentré des données au Hazard en tenant compte que la colonne A doit avoir des données d’ailleurs lors du remplissage des vraies données du fichier il y’aura toujours des données dans colonnes A du début à la fin.
Vous pouvez rentré qlq données comme l’exemple ici Tableau de prod.xlsx (179,7 Ko) à la feuille de « Mercredi Nuit »

Il me faut l’exact fichier qui a engendré le blocage
Le traitement fonctionne car je l’ai testé avant de te le transmettre
Donc si toi tu as été confronté à une anomalie cela ne peut provenir que des données qui étaient entrain d’être traitées
C’est pour cela qu’il me faut ces données pour que je comprenne pourquoi il y a eu blocage
Sans elles je ne peut comprendre et donc apporter la solution
Moi avec mes données propre aucun souci

Donc soit tu me transmets le fichier « Tableau de prod.xlsx » que tu traitais au moment du plantage avec bien sur toutes ses données soit l’outil « Classeur1.xlsm » qui a été utilisé avec ces même données récupérées

Pas d’autre choix sinon je ne pourrais rien faire

Merci donc de me fournir la source du dysfonctionnement

C’est exactement le fichier que je vous ai transmis ci-dessus avec les même données que j’ai saisie précisément à la feuilles de « Mercredi Nuit »
Dites-moi svp si vous voyez ces données ou pas.

Sinon c’est pas grave vous avez vraiment fat le plus important franchement!

Je regarde demain mon PC est éteint
Il faut résoudre le problème car il peut se reproduire et ce n’est certainement pas grand chose mais suffisamment pour être handicapant
Je tiens informé
Bonne soirée

D’accord pas de soucis!
Merci à demain
Bonne soirée

Bonjour je viens de tester avec ton dernier fichier aucune difficulté

Ton fichier sur l’onglet « Mercredi Nuit » :

l’outil « Classeur1.xlsm » onglet « Récupération » avant :

Après avoir cliqué sur le bouton « Récupération » :

Avec aucun bug

Pour moi je n’ai pas ton anomalie

Réessaies et si toujours la difficulté pour toi fais un test sur un autre PC car pour moi tout est nickel

Fais moi un retour