Fonction Application.GetOpenFilename

Résolu
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

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

3 réponses

  1. Contributeur
    bonjour, si tu ne l'ouvres pas dans Excel, tu ne pourras pas en utiliser les données à partir de ton programme.
    0
    1. Hello yg_be

      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
      0
    2. Contributeur
      @maminedas-tu déjà essayé de faire ce processus en VBA?
      je te conseille de plutôt n'utiliser qu'Excel, peut-être en y travaillant un peu plus pour y transformer les données.
      0
    3. @yg_beHello,

      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.
      0