J'ai fait une longue macro qui lit en entrée un fichier Excel et qui en traite les champs.

L'ouverture ressemblait à quelque chose du style:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Set classeurSource = Workbooks.Open(ThisWorkbook.Sheets(1).Cells(2, "C"))
(Le nom de mon fichier étant contenu dans la cellule pointée)

Après dans mon code, je fais ce genre de choses:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
tamponString = classeurSource.Sheets(1).Cells(i, j)
Là où le bat blesse c'est que maintenant il faut que mon programme marche aussi pour des fichiers CSV avec séparateur ;

J'ai donc cherché sur les forums et sur les tuto, et je pensais avoir trouvé la solution, mais en fait ça ne marche pas top. Dans un premier temps je vérifie l'extension de mon fichier et si c'est CSV, à ce moment là, je traite le fichier avec une ligne vue sur le forum...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
Dim FSO
 
  'Ouverture du gestionnaire de fichiers
  Set FSO = CreateObject("Scripting.FileSystemObject")
 
  'Ouverture du classeur qui contient les données en entrée
  If (FSO.GetExtensionName(ThisWorkbook.Sheets(1).Cells(2, "C")) = "csv") Then
    Set classeurSource = Workbooks.OpenText((ThisWorkbook.Sheets(1).Cells(2, "C")), xlWindows, 2, xlDelimited, xlDoubleQuote, False, False, True, False, False, False, Array(1, 1), True)
  Else
    Set classeurSource = Workbooks.Open(ThisWorkbook.Sheets(1).Cells(2, "C"))
  End If
Il me dit: Fonction ou Variable non attendue sur OpenText

J'avais essayé:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Set classeurSource = Workbooks.OpenText Filename:=(ThisWorkbook.Sheets(1).Cells(2, "C")), Origin:=xlWindows, _
        StartRow:=1, DataType:=xlDelimited, Semicolon:=True
Mais là il me dit erreur de syntaxe...

Une idée?