Creer un bouton sur excel associer à une macro qui importe un fichier .txt

Fermé
JokeRed - 5 août 2020 à 19:18
 JokeRed - 12 août 2020 à 20:17
Bonjour,

Après avoir fait le tour de pas mal de site et de forums, et j'ai sans doute mal fais mes recherches, je ne trouve hélas pas la réponse à ma question. Je vous prie de m'excuser si mon sujet est redondant sur le site.

Je travaille avec un classeur excel "template" qui me permet, une fois des données copié/collé dans l'une des feuilles, de traiter un certain nombre de données de manière automatisé.

En effet, une fois des données brutes (contenu dans un fichier .txt au départ) copiées sur une feuille x du classeur, les données de ce fichier sont traitées par les autres feuilles du classeur, et des graphiques, des tests stats etc... y sont effectués.

Ponctuellement, cette action est très facile à effectuer. Cependant quand je traite des grosses quantités de données et qu'à long terme ce fichier excel va servir à d'autres personnes, j'aurais aimé créer un bouton et associer à ce bouton une macro.

Une fois appuyé sur le bouton, la macro réaliserait l'action suivante:
J'ouvre une fenêtre pour importer un fichier .txt
L'utilisateur choisit le fichier dans le dossier où est sauvegardé son fichier .txt
Une fois le fichier choisit et le bouton ok pressé
Je copie/colle le contenu de ce fichier .txt dans une feuille x du classeur qui a sollicité cette requête.

N.B: le nom du fichier excel et txt n'est pas la même selon le l'utilisateur et les données étudiées.

Je vous serais très reconnaissant si vous pouviez éclairer ma lanterne.

Merci encore de votre aide.
JokeRed




Configuration: Windows / Chrome 84.0.4147.105
A voir également:

2 réponses

UP! Urgent!

SVP quelqu'un a-t-il une réponse à m'apporter?

Merci et bonne journée

JokeRed
0
Finallement j'ai trouvé la réponse par moi même. Pour ceux qui seraient intéressés, voici le code que je recherchais:

Sub NomDeLaMacro()

Dim myObj As Object
Set myObj = Application.FileDialog(msoFileDialogOpen)
myObj.Show
Dim myDirString As String
myDirString = myObj.SelectedItems(1)
MsgBox myDirString

Sheets("feuille excel de destination").Select

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & myDirString, Destination:=Range( _
"$A$1"))

.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(2, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With



End Sub
0