Importer une feuille CSV dans un classeur VBA

Bonjour à Tous,

Ma mission est de copier les données de la feuille CSV et de les coller dans une autre feuille d'un autre document Excel. Le fichier CSV est copier sous le format Excel (séparateur ";").

Le code est presque bon !

Mais j'ai un message d'erreur

Erreur de compilation : Fonction ou variable attendue

C'est le .OpenText qui pose probleme dans cette partie du code

Set monclasseur = Workbooks.OpenText(Filename:=ListeFichier, Origin:=xlWindows, _
        StartRow:=1, DataType:=xlDelimited, Local:=True, Semicolon:=True)

Quelqu'un peut m'aider svp ?

    'Déclaration des Variables
    Dim ListeFichier As Variant
    Dim monclasseur As Workbook

    'On desactive le presse papier et le raffraichissement de l'ecran
    Application.CutCopyMode = False
    Application.ScreenUpdating = False

    'On efface les anciennes données
    Sheets("Engin actuel (2)").Range("A1").CurrentRegion.Clear
    'On récupere le fichier des données à copier
    ListeFichier = Application.GetOpenFilename(Title:="Sélectionnez le fichier à ouvrir")
    'Prévoir le cas du bouton annuler

    If ListeFichier <> False Then
        'On affecte le fichier selectionné
        Set monclasseur = Workbooks.OpenText(Filename:=ListeFichier, Origin:=xlWindows, _
        StartRow:=1, DataType:=xlDelimited, Local:=True, Semicolon:=True)
        'On copie les donnees dans la feuille active
        monclasseur.Sheets(1).Range("A1").CurrentRegion.Copy
        'Activation de la page Valeurs Géo et Hauteur
        ThisWorkbook.Sheets("Engin actuel (2)").Activate
        'On colle les données dans la feuille active
        ThisWorkbook.ActiveSheet.Range("A1").PasteSpecial
        'On desactive les messages d'alerte de microsoft
        Application.DisplayAlerts = False
        'On ferme le classeur source
        monclasseur.Close
        'Reactivation de la page Fusion
        ThisWorkbook.Sheets("Valeurs").Activate

    End If

    'On réactive le presse papier et le rafraichissement de l'image
    Application.CutCopyMode = True
    Application.ScreenUpdating = True

End Sub

Bonjour Dargaud,

Il semblerait que ce soit un bug VBA (toujours présent)

.OpenText n'accepte pas la mise entre parenthèses, il faut donc procéder ainis

        'On affecte le fichier selectionné
        Workbooks.OpenText Filename:=ListeFichier, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, Local:=True, Semicolon:=True
        Set MonClasseur = ActiveWorkbook

A tester

Ca fonctionne mille merci

Difficile de déceler des bugs étant un débutant

Bonjour, Dargaud et Bonjour Bruno M45 effectivement je viens de tester de mon coté

le Set MonClasseur plait pas à cet endroit.

Récupérer le nom du classeur ( monclasseur) aprés ouverture c'est je que j'ai trouvé aussi comme solution.

Par contre pour certains de mes csv j'ai du ajouté : Comma:=True

Sub Macro1()

ListeFichier = Application.GetOpenFilename(Title:="Sélectionnez le fichier à ouvrir")

If ListeFichier <> False Then
        'On ouvre le fichier selectionné
        Workbooks.OpenText Filename:=ListeFichier, Origin:=xlWindows, _
        StartRow:=1, DataType:=xlDelimited, Local:=True, Semicolon:=True, Comma:=True

        'on récupère l'info nom du fichier une fois ouvert
        monclasseur = ActiveWorkbook.Name
    
Rechercher des sujets similaires à "importer feuille csv classeur vba"