VBA importer un classeur source dans le classeur ou se trouve la macro

Bonjour,
Je cherche a créer une macro qui serais capable d'ouvrir un fichier avec mes données sources et de les copier dans mon classeur de calcul.
Le fichier source se présente sur une colonne avec les données séparé par une virgule.
J'ai fait un premier test avec ce code.

Sub Importer()
    Workbooks.Open Filename:=ThisWorkbook.Path & "\mesure.csv"
    Columns("A:A").Copy ThisWorkbook.Sheets(1).Range("A1")
    ActiveWorkbook.Close
End Sub

Je suis pour le moment obliger de rentrer moi même le chemin du fichier source (ici j'ouvre le fichier mesure.csv sur mon bureau) et je souhaiterais que la commande me demande quel fichier je veux ouvrir via l'explorateur de fichier.

Autre chose j'ai l'impression que cette commande sépare tout seul les données séparée par une virgule, mon fichier copié ne comporte plus que la première donnée du fichier source, en ce cas j'ai besoin de copier plusieurs colonne.

Si vous savez comment je peux améliorer ce petit test je vous en remercie!

Bonjour,

Peut être une question bête mais pq ne pas utiliser directement la fonction importer des données du menu excel ?

image

Bonjour, et Attention dans votre titre vous écrivez importer un classeur. Un fichier CSV n'est pas un classeur excel.

Ce code vous permettra de choisir le fichier CSV puis de le convertir et le copier.

Sub Macro1()
Application.DisplayAlerts = False
Fichier = Application.GetOpenFilename()

Workbooks.OpenText Filename:=Fichier, Origin:=xlWindows, _
                StartRow:=1, DataType:=xlDelimited, Semicolon:=True, Comma:=True

ActiveCell.CurrentRegion.TextToColumns Comma:=True

Cells.Copy ThisWorkbook.Sheets(1).Range("A1")
ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub

Merci pour vos réponses.
Le but étant d'intégrer ce bout de macro à une macro plus complète qui va lancer des calculs sur cette base de données avec le minimum d'interaction de la part de mes techniciens.
Le code fonctionne parfaitement il faut cependant retirer la ligne

ActiveCell.CurrentRegion.TextToColumns Comma:=True

En effet, à l'ouverture du fichier la conversion est automatique. Cela crée donc une erreur vu qu'Excel essaye de convertir deux fois le même fichier.

Merci!

Ok de mon coté la convertion n'était pas automatique.

Rechercher des sujets similaires à "vba importer classeur source trouve macro"