Fonction Application.GetOpenFilename
Résolu
mamined
Messages postés
35
Date d'inscription
Statut
Membre
Dernière intervention
-
mamined Messages postés 35 Date d'inscription Statut Membre Dernière intervention -
mamined Messages postés 35 Date d'inscription Statut Membre Dernière intervention -
Hello le groupe,
j'ai bâti le code ci-dessous en regardant des vidéos sur YouTube (oui suis pas doué..)
du coup le code fonctionne et tout va bien à une exception prêt.
J'ouvre un fichier csv et ce dernier s'ouvre sous Excel ce qui pose problème car les données sont mise ensemble et séparées par un séparateur "|" mais ont également des ";" et :" du coup, il faudrait que mon code ne l'ouvre pas avc Excel mais avec un éditeur de texte de type WordPad ou Bloc-notes.
Comment modifier mon code afin que quand il indique : Set MonClasseur = Application.Workbooks.Open(ListFile) il le fasse avec l'un des 2 types de fichier indiqués ci-dessus ?
Par avance merci pour votre aide
j'ai bâti le code ci-dessous en regardant des vidéos sur YouTube (oui suis pas doué..)
du coup le code fonctionne et tout va bien à une exception prêt.
J'ouvre un fichier csv et ce dernier s'ouvre sous Excel ce qui pose problème car les données sont mise ensemble et séparées par un séparateur "|" mais ont également des ";" et :" du coup, il faudrait que mon code ne l'ouvre pas avc Excel mais avec un éditeur de texte de type WordPad ou Bloc-notes.
Comment modifier mon code afin que quand il indique : Set MonClasseur = Application.Workbooks.Open(ListFile) il le fasse avec l'un des 2 types de fichier indiqués ci-dessus ?
Par avance merci pour votre aide
Option Explicit Sub AutoImportDataTXT() 'déclaration des variables Dim ListFile As Variant Dim MonClasseur As Variant 'désactivation des alertes Application.ScreenUpdating = False Application.CutCopyMode = False 'filtrer pour ne voir que le type de fichier à séletionner ListFile = Application.GetOpenFilename(Title:="Sélectionner les données et importez les données", fileFilter:="Fichiers CSV(*.csv*),*xls*", ButtonText:="Cliquez") 'prévoir le cas du click bouton annuler en cas 'erreur If ListFile <> False Then 'on indique le fichier sélectionner Set MonClasseur = Application.Workbooks.Open(ListFile) 'copier les données MonClasseur.Sheets(1).Range("A1").CurrentRegion.Copy 'coller les données ThisWorkbook.Sheets("echantillon").Range("A1").PasteSpecial xlPasteValues 'fermer classeur source MonClasseur.Close End If End Sub
A voir également:
- Application get open file name
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Excel remplir automatiquement une cellule en fonction d'une autre ✓ - Forum Excel
- Fonction remplacer sur word - Guide
3 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, si tu ne l'ouvres pas dans Excel, tu ne pourras pas en utiliser les données à partir de ton programme.
merci pour ta réponse mais je ne comprends pas pourquoi je ne pourrais pas utiliser les données vu que je le fais manuellement et que cela fonctionne très bien.
Donc à mon avis on doit pouvoir l'automatiser.
Processus :
Selection fichier type csv
click droit
ouvrir avec
Seletionner notepad ou autre éditeur de texte
faire ctrl A + ctrl C
aller dans ma feuille Excel (là où j'ai mon code dans la bonne feuille en A1)
ctrl V
donc si cela fonctionne comme cela on doit pouvoir automatiser selon moi
je te conseille de plutôt n'utiliser qu'Excel, peut-être en y travaillant un peu plus pour y transformer les données.
en fait comme je l'ai dis, je ne peux pas avec Excel. Cela ne fonctionne pas la raison est simple. si j'ouvre mon csv en excel j'ai des colonnes scindés alors que je ne dois pas les avoir scindé. regarde les 2 images tu comprendras le problème.
ceci t'aidera peut-être: https://docs.microsoft.com/fr-ch/office/vba/api/excel.workbooks.open
sinon, tu peux assez facilement, en VBA, manipuler et transformer les données.