Importation, Formatage et Incorporation d'un fichier .txt
Salut tout le monde,
Voilà je suis entrain d'apprendre avec mon école les macros VBA dans Excel mais je n'arrive pas à résoudre l'exercice et j'aimerai savoir si quelqu'un pourrait m'aider en m'expliquant comment faire.
Voilà se que je dois faire, Importer le fichier texte « janvier-2015 » et le formater correctement pour qu’il puisse être incorporé à la suite de la base de données qui se trouve dans le fichier « Commandes.xlsx »
Plus précisément, voici les manipulations qu'on me demande de faire:
-Créer un dossier sur votre bureau
*Mettre dans ce dossier les documents suivants :
- Commandes.xlsx
- janvier-2015.txt
-ouvrir un classeur Excel et l’enregistrer dans ce dossier sous le nom : VBA.XLSM (MACROS)
Jusque là j'y arrive, c'est à partir de maintenant que je suis perdu...
*Réaliser et enregistrer les macros suivantes :
-ImportTxt avec Variable « Txt »
Qui permettra d’importer le fichier texte dans votre classeur et de le formater en fonction de la base de données
-Recopie
Qui permettra de remplir les cellules vides
-AjouterDate avec Variable « Date »
Qui permettra de rajouter une colonne avec la date (cf. base de données)
-AjouterBase
Qui permettra de rajouter les données ainsi formatées à la suite dans le classeur contenant la base de données (Commandes.xlsx)
-DelFeuille
Qui permettra de supprimer la feuille dans laquelle vous avez importé et formaté les données.
-ProjetMois
Qui reprend l’ensemble des cinq macros précédentes.
-AfficherForm
Qui permettra d’afficher le formulaire que vous allez créer en 2-
2-Réaliser et enregistrer un formulaire avec un bouton d’action pour la macro: « ProjetMois ».
3-Créer un nouvel onglet et un nouveau groupe dans le ruban dans lequel vous mettrez les Macros « ProjetMois » et « AfficherForm ».
Malheureusement, je ne sais pas du tout comment faire ça & je compte sur la gentillesse des membres du Forum pour m'aider.
Mon devoir et à rendre pour la semaine prochaine donc j'espère que quelqu'un pourra me répondre à temps !
Amicalement.
- Messages
- 1'794
- Excel
- 2010
- Inscrit
- 25/08/2014
- Emploi
- Consultant VB6 / SQL / VBA / Excel / Access
Bonjour,
Tu trouveras sans problème quelqu'un sur le forum pour le faire (un pro te le fais en 2H).
Maintenant, si tu n'as aucune connaissance en VBA, une semaine ne te suffira pas pour comprendre ce qu'on te donnera.
Dépanner pour un besoin : oui. Faire les devoirs n'a aucun sens.
Et si la solution proposée n'a rien avoir avec ce que tu as appris, ça risque de te déservir.
Je te conseille de te replonger dans tes cours !
Bon courage
Bouben
BOnjour et bienvenu
voici un exemple permettant de demander à l'utilisateur de choisir un fichier dans mon cas c'est un txt avec serateur ";"
de faire l'import dans la feuille 1 du fichier excel appelant
mais je pense qu'il faut te replonger dans les cours mais cela me semble compliqué a faire dans moins d'une semaine pour un néophyte en VBA
A+
Fred
Sub import_donnees()
Dim fich_txt As String
Dim fich_source As String
fich_source = ActiveWorkbook.Name
'effacement des données présentes
Feuil1.[A1].CurrentRegion.Delete
ChDir ActiveWorkbook.Path
'demande a l'utilisateur de choisir un fichier
fich_txt = Application.GetOpenFilename("Tous les fichiers (*.*),*.*")
'ouverture du fichier txt
Workbooks.OpenText Filename:=fich_txt, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, Local:=True, Semicolon:=True
'copie des lignes
ActiveWorkbook.Sheets(1).[A1].CurrentRegion.Copy 'Workbooks(fich_source).Feuil1.Range("A1")
'collage spéciale des valeurs
Workbooks(fich_source).Sheets(1).[A1].PasteSpecial xlValues
'fermeture du fichier
Application.DisplayAlerts = False
ActiveWorkbook.Close False
Application.DisplayAlerts = True
'mise au format date la colonne C
Feuil1.Columns("C:C").NumberFormat = "m/d/yyyy"
End Subbonjour,
je suis dans une problématique plus simple.
je souhaite, par un bouton et une macro, importer un fichier texte et le coller dans la colonne b à partir de b6.
quelqu'un peut il ou elle m'aider ?
merci
je joins un fichier texte recette
Bonjour
DANN oui la problématique est en peut être plus simple mais dans le principe c'est la même chose....
donc par rapport a ce que je t'avais donné... deux lignes de code modifiées
et voici
Fred
A l'avenir ouvre ton propre post cela simplifiera les choses
Option Explicit
Sub import_donnees()
Dim fich_txt As String
Dim fich_source As String
fich_source = ActiveWorkbook.Name
'effacement des données présentes
Feuil1.Range("B6:B" & Feuil1.Cells(Rows.Count, 2).End(xlUp).Row).ClearContents
ChDir ActiveWorkbook.Path
'demande a l'utilisateur de choisir un fichier
fich_txt = Application.GetOpenFilename("Tous les fichiers (*.*),*.*")
'ouverture du fichier txt
Workbooks.OpenText Filename:=fich_txt, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, Local:=True, Semicolon:=True
'copie des lignes
ActiveWorkbook.Sheets(1).Range("A1:A" & ActiveWorkbook.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row).Copy 'Workbooks(fich_source).Feuil1.Range("A1")
'collage spéciale des valeurs
Workbooks(fich_source).Sheets(1).[B6].PasteSpecial xlValues
'fermeture du fichier
Application.DisplayAlerts = False
ActiveWorkbook.Close False
Application.DisplayAlerts = True
End Sub
ok, et surtout merci, ça fonctionne nickel