Fermeture du fichier dont j'ai importé les données
Résolu
thealchemyst
Messages postés
18
Date d'inscription
Statut
Membre
Dernière intervention
-
thealchemyst Messages postés 18 Date d'inscription Statut Membre Dernière intervention -
thealchemyst Messages postés 18 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je suis débutant en VBA et j'ai besoin de votre aide et conseils. Je dois importer des données de fichiers Excel pour les insérer sur la feuille2 de le formulaire que je suis entrain de créer.
Par l'intermédiaire d'un bouton se trouvant sur la feuille1 du formulaire j'invite l'utilisateur à choisir le/s fichier/s. Ensuite, mon code fait un copier de ces données les colle le tout sur la feuille2 de mon formulaire.
Jusqu'ici, pas de problème... Le hic est que je ne trouve pas comment fermer le document dont j'ai extrait les données.
Voici le code que j'ai trouvé et adapté à ma tambouille :
Sub Importation()
' Boîte de dialogue permettant l'importation de plusieurs fichiers source
Dim a As Variant, Nom As String
Nom = ActiveWorkbook.Name
ChDrive "C:" ' Choix du lecteur
ChDir "C:\" 'Choix du répertoire
a = Application.GetOpenFileName("fichier excel (*.*), *.xls", _
, "Sélection des fichiers excel", , True)
Select Case TypeName(a)
Case Is = "Boolean"
Exit Sub
Case Else
For b = LBound(a) To UBound(a)
Workbooks.Open a(b)
Next
End Select
Cells.Select
Selection.Copy
Windows(Nom).Activate
Sheets("Feuil2").Select
Range("A1").Select
ActiveSheet.Paste
'Workbooks(?).Close False 'Fermeture du document importé sans sauvegarde
End Sub
J'ai mis en gras ce que je pense être une "idée" pour le fermer, mais après... Je plante... des choux.
J'espère avoir été assez clair...
Pouvez-vous m'aider, s'il vous plaît ?
Je suis débutant en VBA et j'ai besoin de votre aide et conseils. Je dois importer des données de fichiers Excel pour les insérer sur la feuille2 de le formulaire que je suis entrain de créer.
Par l'intermédiaire d'un bouton se trouvant sur la feuille1 du formulaire j'invite l'utilisateur à choisir le/s fichier/s. Ensuite, mon code fait un copier de ces données les colle le tout sur la feuille2 de mon formulaire.
Jusqu'ici, pas de problème... Le hic est que je ne trouve pas comment fermer le document dont j'ai extrait les données.
Voici le code que j'ai trouvé et adapté à ma tambouille :
Sub Importation()
' Boîte de dialogue permettant l'importation de plusieurs fichiers source
Dim a As Variant, Nom As String
Nom = ActiveWorkbook.Name
ChDrive "C:" ' Choix du lecteur
ChDir "C:\" 'Choix du répertoire
a = Application.GetOpenFileName("fichier excel (*.*), *.xls", _
, "Sélection des fichiers excel", , True)
Select Case TypeName(a)
Case Is = "Boolean"
Exit Sub
Case Else
For b = LBound(a) To UBound(a)
Workbooks.Open a(b)
Next
End Select
Cells.Select
Selection.Copy
Windows(Nom).Activate
Sheets("Feuil2").Select
Range("A1").Select
ActiveSheet.Paste
'Workbooks(?).Close False 'Fermeture du document importé sans sauvegarde
End Sub
J'ai mis en gras ce que je pense être une "idée" pour le fermer, mais après... Je plante... des choux.
J'espère avoir été assez clair...
Pouvez-vous m'aider, s'il vous plaît ?
A voir également:
- Fermeture du fichier dont j'ai importé les données
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
3 réponses
Bonjour,
Essaies :
Essaies :
Option Explicit Sub Importation() Dim l As Variant 'liste des fichiers Dim o As Workbook 'origine (classeur) Dim f As Worksheet 'feuille Dim d As Workbook 'destination (classeur) Dim i As Long 'index Set d = ActiveWorkbook ChDrive "C:" ' Choix du lecteur ChDir "C:" 'Choix du répertoire l = Application.GetOpenFilename("fichier excel (*.*), *.xls", _ , "Sélection des fichiers excel", , True) Select Case TypeName(f) Case Is = "Boolean" Exit Sub Case Else For i = LBound(l) To UBound(l) Set o = Workbooks.Open(l(i)) Set f = o.Worksheets(1) f.Copy before:=d.Worksheets(1) o.Close False Set o = Nothing Next End Select End Sub
Bonjour,
... Jusqu'ici, pas de problème ...
J'en doute !!! Si l'utilisateur sélectionne plusieurs fichiers, seules les données du dernier fichier ouvert sont copiées ...
... Jusqu'ici, pas de problème ...
J'en doute !!! Si l'utilisateur sélectionne plusieurs fichiers, seules les données du dernier fichier ouvert sont copiées ...
Bonjour Polux31,
Merci de ta réponse.
Alors comment dois-je l'adapter pour qu'à la sélection de mes fichiers, le premier se colle sur la feuille2, le suivant sur la 3 et ainsi de suite. J'ai 12 fichiers dont je dois importer les données (pour chaque mois de l'année en cours). Sur mon formulaire j'ai déjà créé les 12 feuilles.
Je pense à une boucle mais je ne sais pas trop comment l'intégrer (j'ai commencé le VBA lundi...).
Après, pour la fermeture des docs importés, cela sera aussi intégrer dans la boucle...
Je vais cherché dans le forum et autres sites. Il faut que je me débrouille, c'est comme ça qu'on apprend, mais un d'aide est toujours la bienvenue :).
Merci d'avance de ta réponse.
Merci de ta réponse.
Alors comment dois-je l'adapter pour qu'à la sélection de mes fichiers, le premier se colle sur la feuille2, le suivant sur la 3 et ainsi de suite. J'ai 12 fichiers dont je dois importer les données (pour chaque mois de l'année en cours). Sur mon formulaire j'ai déjà créé les 12 feuilles.
Je pense à une boucle mais je ne sais pas trop comment l'intégrer (j'ai commencé le VBA lundi...).
Après, pour la fermeture des docs importés, cela sera aussi intégrer dans la boucle...
Je vais cherché dans le forum et autres sites. Il faut que je me débrouille, c'est comme ça qu'on apprend, mais un d'aide est toujours la bienvenue :).
Merci d'avance de ta réponse.
Effectivement, je ne peux pas sélectionner plusieurs fichiers et les coller les uns après les autres...
J'ai un peu modifié mon code pour que les données exportées se colle sur une nouvelle feuille (Sheets.Add After:=Sheets(Sheets.Count)
et revenir sur la première feuille de mon formulaire (Sheets("Formulaire").Select) une fois les données collées.
Mais mon problème reste le même. Comment coller les données du premier fichier sur la feuille1 nouvellement créée, les données du 2ème fichier sur la feuille2 et ainsi de suite sans que l'utilisateur ne doivent le faire "manuellement", en pressant le bouton de commande..?
J'en demande beaucoup, mais je vais plancher ce week-end à fond sur le sujet !
Votre connaissance m'aiderait beaucoup.
Si vous pouvez me donner une piste, c'est très très volontiers :).
Merci d'avance !
J'ai un peu modifié mon code pour que les données exportées se colle sur une nouvelle feuille (Sheets.Add After:=Sheets(Sheets.Count)
et revenir sur la première feuille de mon formulaire (Sheets("Formulaire").Select) une fois les données collées.
Mais mon problème reste le même. Comment coller les données du premier fichier sur la feuille1 nouvellement créée, les données du 2ème fichier sur la feuille2 et ainsi de suite sans que l'utilisateur ne doivent le faire "manuellement", en pressant le bouton de commande..?
J'en demande beaucoup, mais je vais plancher ce week-end à fond sur le sujet !
Votre connaissance m'aiderait beaucoup.
Si vous pouvez me donner une piste, c'est très très volontiers :).
Merci d'avance !
C'est ce qu'il me fallait !
Je vais bosser dur ce week-end sur VBA et en apprendre d'avantage.
La connaissance est source de plaisir :)
Merci encore, votre aide m'a été très précieuse !