Un userform pour selectionner un fichier a ouvrir

Salut a tous , j'aimerais bien me faire un Userform "ouvrir un projet" qui permettrais de selectionner un fichier excel parmi une liste sur le disque dur et de l'ajouter dans une feuille de mon classeur. Et ce qui serais encore mieux, de pouvoir egalement en creer un nouveau a meme le userform. Je commence par ou?

J'arrive a dessiner des userform mais ca s'arrete la, et quoi mettre comme bouton pour avoir une liste deroulante?

Capucin

Bonjour Capucin le forum

bon alors tu veux un userform, mais après tu veux quoi la liste des fichiers contenu dans un dossier?

si c'est cela tu me le dis je vais te faire cela

a+

Papou

Salut, oui c'est ca, j'aimerais que dans mon userform, il apparaisse la liste des fichiers .xls d'un dossier afin que je puisse en selectionner un et qu'il s'ajoute dans une nouvelle feuille de mon classeur. Je pense qu'il faut sortir l'artillerie lourde pour ca!

re Capucin le forum

"""selectionner un et qu'il s'ajoute dans une nouvelle feuille de mon classeur. """

tu peux me traduire cela ????

Tu veux sélectionner un fichier et l'ajouter dans une feuille ??? Ajouter un fichier dans une feuille te paraît possible??

Allez explique ce que tu veux faire STP, et je ferai

a+

Papou

C'est pas clair, mon affaire

Dans mon application Excel "Assembleur", il y a quelques feuilles dont la feuille "ASS"Cette feuille me sert d'editeur pour le language Assembleur.Je compte sauvegarder cette feuille sous des noms de projets (j'imagine des .xls). Ce que je souhaite c'est pouvoir recuperer un de ses projets lorsque j'ouvre mon application Excel "Assembleur" et le remettre dans la feuille "ASS". Alors, d'une certaine maniere, on peut dire que je veux mettre un fichier dans une feuille.

j'espere que je ne te mele pas d'avantage!

Bonjour Capucin le forum

Je te remercie d'avoir donc préparé un dossier avec quelques fichiers pour faire les tests

Bref tu mets le fichier Capucin V1 dans le dossier que tu souhaites voir traiter (celui donc ou tu as tes feuilles ASS)

pour tester tu peux utiliser les fichiers joints dans le dossier.

tu testes et tu me redis.

a+

Papou

PS: encore merci pour le dossier que tu as bien préparé !!!!!

1'075capucin-dossier.zip (22.41 Ko)

tu as tres bien compris ce que je voulais. Milles excuses , j'avoue que s'aurais ete plus facile pour toi de joindre quelques fichiers. Je suis completement deborde en ce moment, ca m'a echappe.

J'ai remarque un petit probleme lorsque j'essai d'ouvrir le projet4, j'ai un message d'erreur: "la feuille "ASS" n'existe pas dans ce classeur". Je ne comprend pas assez ton code pour trouver l'erreur. Est-ce que la liste de tout les projets affiches dans le userform viennent du code VBA?

P.S. est-ce possible que la feuille2 du fichier Capucin V1 porte elle aussi le nom "ASS". Je l'ai mis manuellement, mais j'obtient une erreur, j'imagine que le code devrait etre changer pour faire cela.

Je te renvoi le dossier que tu m'as envoye.

355capucin-dossier.zip (22.41 Ko)

Bonjour Capucin le forum

bah oui le défaut projet 4 il est fait exprès !!!!

je n'ai pas volontairement mis de feuille ASS dans le projet 4 pour avoir un défaut et contrôler mon message de manque.

Mais si tu lisais les messages de défaut tu le saurais normalement c'est écrit !!!!

Oui le code doit être changé évidemment.

pour le reste ce sera ce soir je pars bosser

a+

papou

Re Bonjour Capucin le forum

bon alors ta modif avec le feuille ASS.

Par contre ta demande est ce que la liste des projets vient de la macro ??

Là tu n'as rien compris au film, tu as un dossier avec des fichiers projet 1 à projet4

le but de la macro et bien de faire la liste des fichiers pour en ouvrir un et copier coller la feuille ASS???

C'est bien toi qui m'as demandé cela ??? ou alors j'ai révé???

Bon alors si c'est bien ta demande, tu as exactement ce que tu souhaites, tu mets capucin V2 dans le dossier ou tu as tes fichiers avec tes feuilles ASS à recopier et tu choisis celui que tu veux voir importer;

Moi j'ai fait l'exemple (puisque pour toi c'était trop difficile) alors je l'ai fait avec 4 fichiers nommés projet 1, à projet 4 et dans un des projets VOLONTAIREMENT je n'ai pas mis de feuille ASS pour vérifier mon message d'erreur.

Bref fais les tests et redis moi

a+

Papou

426capucin-dossier.zip (23.00 Ko)

SALUT PAPOU, la modif est parfaite. Je comprend mieux pourquoi le projet4 causait une erreur, je n'avais pas remarque qu'il n'y avait pas de feuille "ASS" dans ce fichier. Je ne comprenais pas comment tu arrivait a deceler une erreur lorsque j'ouvrais ce fichier, car je croyais ce fichier identique aux autres.

J'ai transferer tes macro dans mon application, dans :userform2 et module 3. Crois-tu que ce serais difficile de lancer ton application a l'ouverture, au lieu de proceder par bouton?

Je t'envoi mon fichier tres allege mais qui contient toute mes macro et les tienne, si jamais tu veux y creer ma nouvelle demande. j'hesite toujours lorsque je dois placer une macro, dois-je la mettre dans un module, sur une feuille, dans un userform ...

1'232charger-un-fichier.zip (63.52 Ko)

Bonsoir capucin le forum

Voilà, ton fichier modifié

a+

Papou

427charge-un-fichier.zip (63.59 Ko)

ca fonctionne et je comprend ou tu as mis le code!

Si je pouvais avoir quelques commentaires qui accompagne les macro userform2 ainsi que le module 2 et 3, ca m'aidera a comprendre comment ca marche tout ca! Par ailleurs, Je me demande entre autre ou est apele le module 2 "loadfichier" ainsi que le sub "userform_initalise" dans userform2.

bonsoir Capucin,

bon alors pour le userform2_ initialize c'est très simple , tu n'appelles rien c'est lorsque tu ouvres ton userform2 avec userform2.show que tu déclenches à l'initialisation de l'userform2 la macro userform2_ initialize

pour le reste des que j'ai un peu de temps je commenterai

a+

papou

Merci Papou, je sais que mes demandes ne finissent plus mais tu contribu beaucoup a mon apprentissage et je deviendrai plus autonome!

Prend le temps qu'il te faut!

Afin que je puisse fermer mon premier post avec toi, pourrais t-on modifier le code de ta macro afin qu'on puisse retrancher les 2 premieres lignes de la feuille3 avant de l'enregistrer comme ".txt". Ces 2 lignes sont un entete de tableau et ne doivent pas etre presentes sur le fichier .txt genere. Je joint une copie d'un tableau generer dans la feuille3(intel HEX), si necessaire pour toi.

Dim adr$, rep$

adr = ThisWorkbook.Path

rep = InputBox("Nom du Fichier a enregistrer", "Nom pour l'Enregistrement")

If rep = "" Then Exit Sub

Feuil3.Copy ' là le nom de ta feuille à copier

ActiveWorkbook.SaveAs adr & "\" & rep & ".txt", FileFormat:=xlText

ActiveWorkbook.Close 1

End Sub

Bonjour Capucin le forum

a+

Papou

Sub copier()
Dim adr$, rep$
adr = ThisWorkbook.Path
rep = InputBox("Nom du Fichier a enregistrer", "Nom pour l'Enregistrement")
If rep = "" Then Exit Sub
Feuil3.Copy ' là le nom de ta feuille à copier
Rows("1:2").Delete shift:=xlUp
ActiveWorkbook.SaveAs adr & "\" & rep & ".txt", FileFormat:=xlText
ActiveWorkbook.Close 1
End Sub

Papou, tu semblais dire que le message "la feuille ASS n'existe pas dans le classeur" n' etait la que pour le debuggage? Est-ce qu'on peut retrancher cette partie du code et la fonction "Estla ()?

Pourrais-tu mettre un ou deux commentaires dans la macro UserForm_initialize()?

Pourrais tu n'afficher dans la fenetre du UserForm que les fichier avec extension .asm?

Option Explicit

Private Sub CommandButton1_Click() 'bouton <valider> Papou
    Dim adr$, OpenFile$, wbks As Workbook, wbkc As Workbook
    adr = ThisWorkbook.Path
    If ListBox1.ListIndex = -1 Then Exit Sub
    Set wbkc = ThisWorkbook
    Set wbks = Workbooks.Open(adr & "\" & ListBox1.List(ListBox1.ListIndex, 0))
    If Not Estlà("ASS") Then
        MsgBox "La feuille ASS n'existe pas dans le classeur: " & wbks.Name, , "Feuille ASS absente": wbks.Close 0: Exit Sub
    Else
        wbks.Sheets("ASS").Cells.Copy wbkc.Sheets("ASS").Cells
    End If
    OpenFile = wbks.Name  'prend en note le fichier utiliser pour l'edition
    wbks.Close
    wbkc.Sheets("traitements").Select
    Cells(1, 45) = OpenFile  'copie le nom du fichier utiliser dans une cellule de feuille"traitements"
    wbkc.Sheets("ASS").Select
    Me.Hide  'On cache le userform
End Sub

Private Sub CommandButton2_Click()   'a quoi est connecte ce bouton?
    Unload Me
End Sub

Private Sub UserForm_Initialize() 'declencher automatiquement lors du lancement de userForm2 (par le bouton <open File>
    Dim fin&, aa As Variant, Fso As Object, rep$, f As Object, x&
    Dim f1 As Object, f2 As Object
    Set Fso = CreateObject("Scripting.FileSystemObject")
    rep = ThisWorkbook.Path
    For Each f In Fso.GetFolder(rep).Files
        If f.Name <> ThisWorkbook.Name Then ListBox1.AddItem f.Name
    Next f
End Sub
242dossier-forum.zip (294.99 Ko)
Rechercher des sujets similaires à "userform selectionner fichier ouvrir"