Partage
  • Partager sur Facebook
  • Partager sur Twitter

VBA Importer données csv avec Workbooks.OpenText

Sujet résolu
    18 novembre 2022 à 18:10:46

    Bonjour

    je cherche à importer des données de plusieurs fichiers csv dans un seul fichier excel de manière automatisé

    j'utilise la procédure Workbooks.OpenText

    cependant, à chaque ouverture du csv, il reste ouvert et je doit les fermer manuellement ...

    voici mon code actuel

    Sub Import()
        'importer les infos depuis un csv
    
        chemin = ActiveWorkbook.Path
        csv_name = "exemple.csv"
    
        If Len(Dir(chemin & "\" & csv_name)) = 0 Then
            Exit Sub
        End If
    
        Workbooks.OpenText Filename:=chemin & "\" & csv_name, _
                            Origin:=xlWindows, _
                            StartRow:=1, _
                            DataType:=xlDelimited, _
                            Local:=True, _
                            semicolon:=True
    
        Worksheets(1).Range("A1:AZ99999").Copy
    
        ThisWorkbook.Activate
        Worksheets(1).Cells(1, 1).Select
        Selection.PasteSpecial
    
    End Sub

    j'ai essayé ceci mais cela ne marche pas, faute de syntaxe ou autre ...

    (...)
        dim wbk as workbook
    
       set wbk =  Workbooks.OpenText Filename:=chemin & "\" & csv_name, _
                            Origin:=xlWindows, _
                            StartRow:=1, _
                            DataType:=xlDelimited, _
                            Local:=True, _
                            semicolon:=True
    
        Worksheets(1).Range("A1:AZ99999").Copy
    
        ThisWorkbook.Activate
        Worksheets(1).Cells(1, 1).Select
        Selection.PasteSpecial
    
        wbk.close
    
    End Sub

    et je n'arrive pas non plus à manipuler la méthode

    Workbooks.Open

    car je n'arrive pas gérer les points-virgules, les délimiteurs, ...

    si quelqu'un à une idée, je suis preneur

    merci d'avance




    • Partager sur Facebook
    • Partager sur Twitter
      18 novembre 2022 à 19:26:12

      il faut mettre les parenthèses autour des paramètres de workbook.open dans le second cas et du coup tu peux utiliser wbk au lieu de worksheets(1)

      Sinon dans le 1er cas, workbooks(1).close(False) (le false c'est pour indiquer qu'il est inutile de sauvegarder les modifications)

      im wbk as workbook
       
         set wbk =  Workbooks.OpenText(Filename:=chemin & "\" & csv_name, _
                              Origin:=xlWindows, _
                              StartRow:=1, _
                              DataType:=xlDelimited, _
                              Local:=True, _
                              semicolon:=True)
       
          Worksheets(1).Range("A1:AZ99999").Copy
       
          ThisWorkbook.Activate
          Worksheets(1).Cells(1, 1).Select
          Selection.PasteSpecial
       
          wbk.close(False)
       
      End Sub



      • Partager sur Facebook
      • Partager sur Twitter

      VBA Importer données csv avec Workbooks.OpenText

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown