Rechercher des fichiers et enregistrer selon lignes

Bonjour à tous,

J'ai dans un fichier (que j'ai appelé "Créer en masse des MO") deux feuilles :

- Feuil1 : Celle-ci contient un bouton affichant un Userform. L'objectif de ce Userform est de rechercher un fichier. J'ai mis une ListBox qui affiche les fichiers qui concerne ma requête.

- Standard : Cette feuille est juste le SUPPORT, c'est à dire la feuille qui vient se remplir automatiquement en fonction du fichier trouvé auparavant.

Le principe est le suivant : Dans la feuille "Standard", il y a des informations, ayant comme couleur de police du Bleu, qui ne sont pas écris en DUR. C'est à dire quelles dépendent du fichier que je trouve au préalable.

J'ai deux fichiers que j'ai appelé "Exemple1" et "Exemple2".

EXEMPLE et OJECTIF :

1- J'ouvre mon fichier "Créer en masse des MO". Je clique sur le bouton "Créer en masse des Modes Opératoires". Mon Userform s'affiche. Je choisi le fichier que je veux en le sélectionnant. Je valide

2 - Le code VBA (que je veux) permet d'ouvrir le fichier "Exemple1". D'aller chercher la première ligne, et de copier l'indice(5A1), l'action(Vidange liquide de refroidissement) et la durée(5) dans la feuille "Standard". Puis d'enregistrer cette feuille dans un nouveau fichier Excel dans "C:\Users\SA220930\Desktop\TEST MO"

3 - Ensuite il passe a la seconde ligne, (donc si je continue dans mon exemple), il copie "5A2", ensuite "Remplacer filtre et joint", et puis "2" dans la feuille "Standard". Puis il enregistre...

Au final il y a un objectif :

- Comment remplir la feuille standard au fur et à mesure de l'avancement des lignes ?

EVIDEMMENT ICI IL Y A 2 LIGNES DANS L'EXEMPLE1 ! MAIS SI JE FAIS CETTE DEMANDE C'EST QUE JE PEUX AVOIR BEAUCOUP PLUS DE LIGNES (VOIR EXEMPLE2) !

J'ai essayé d'être le plus clair. N'hésitez pas me redemander des précisions. C'est simple a comprendre mais si dur à expliquer.

A+

4exemple1.xlsx (25.27 Ko)
4exemple2.xlsx (25.65 Ko)

Bonjour MPETIT,

Je ne vois aucun code VBA dans votre fichier, sauf pour afficher l'USF... c'est un peu court, non

Sinon, pour les questions :

- Comment trouver mon fichier dans mon dossier = avec la commande DIR()

- Comment remplir la feuille = en faisant une boucle For To Next

@+

J'ai mis à jour mon post et mon fichier "créer en masse des mo".

Bonjour Bruno,

Je viens à l'instant de modifier mon post avec ma demande. J'ai rajouter le code pour rechercher les fichiers dans le dossier voulu ainsi que l'ouvrir.

Désolé.

PS : J'ai pensé à la commande for to next mais je n'arrive pas à la "visualiser" et a l'écrire en VBA...

Re,

C'est mieux et que voulez-vous faire de votre fiche standard une fois remplie ?

@+

J'aimerais que ma fiche standard soit, une fois remplie, enregistrer dans un nouveau classeur Excel dans le même répertoire que où se trouve mes fichiers "Exemple1" et "Exemple2" soit : "C:\Users\SA220930\Desktop\TEST MO\"

Ensuite on passe à la ligne suivante et ainsi de suite.

J'espère être clair

Re,

Oui, c'est clair et voici le fichier modifié avec le code qui devrait aller bien

Le chemin d'enregistrement n'est plus en dur, mais dans une variable.

@+

Bonjour Bruno,

Merci c'est parfait ! Je reviendrais vers vous si j'ai des petites modifications à l'avenir.

Encore merci !

A+

Bonjour Bruno,

Je reviens vers vous concernant une petite problématique. En effet, j'aimerais copier les valeurs du fichier (par exemple : "Exemple1") mais pas en DUR.

Je m'explique :

.Range("J1").Value = ShtS.Range("A" & Lig).Value
.Range("C3").Value = ShtS.Range("B" & Lig).Value
.Range("F5").Value = ShtS.Range("C" & Lig).Value

Les lignes ci-dessus permettent de copier les valeurs en DUR, dans le sens où elle ne peuvent pas évoluer... Le problème est, que le fichier qui est créé à chaque ligne dépend des informations contenues dans ces lignes. Donc si je modifie, les infos d'une ligne, celles qui sont copiées dans le classeur devrait être modifiées aussi !

En utilisant simplement Calc c'est facilement réalisable : On choisit la case que l'on veut, on lui insère juste un "=" puis on choisit la cellulle que l'on peut copier mais comment fait-on cela en VBA ?

J'ai recherché en utilisant des Macros de Test et je trouve ceci :

ActiveCell.FormulaR1C1 = "=Feuil2!R[-7]C[-2]"

Mais je ne sais pas vraiment si c'est adaptable.

Merci d'avance,

@+

Re,

Voici le code modifié, mais attention ce n'est pas viable à mes yeux

Il suffit que tu fasse un tri dans les fichiers source et plus rien n'est valable

@+

Re Bruno,

Merci, je n'aurais jamais trouvé la formulation correctement écrit ! Je me doute bien que ce n'est pas viable. Malheureusement, le fichier "Exemple1" centralise toutes les informations (puisque que une ligne équivaut à un nouveau fichier). Donc il est plus simple pour moi de fonctionner ainsi. Néanmoins, cela demande de la rigueur et peut générer plus d'erreurs.

Si au final, cela ne me convient pas, je tâcherais de changer comme avant.

Encore merci

@+

Rechercher des sujets similaires à "rechercher fichiers enregistrer lignes"