Will-e-coyote
XLDnaute Occasionnel
Bonjour le forum !
J'ai un petit soucis avec une macro que j'ai créée avec excel 2007. Tout fonctionnait a merveille jusqu'à ce que je transforme le fichier contenant la macro de .xls en .xlsm.
Pour faire simple cette macro a pour but de mettre à jour ce fichier par le biais d'extrait de base de données au format TSV (CSV). qui se trouvent dans plusieurs fichiers. Pour cela la macro lance un getOpenFilename et l'utilisateur choisi ses fichiers. Le resultat est donc stocké dans un tableau... Sauf que, et c'est la que cela devient étrange, dans la version .xls j'ai effectivement un tableau mais en .xlsm je n'ai qu'un seul nom de fichier....
Pour aller encore plus loin dans l'étrange, si, en version .xslm, je lance cette macro depuis l'interface VBA, ça fonctionne... idem en mode normal si je met un point d'arret en amont de la première manipulation de ce tableau (avec la syntaxe qui va bien).
D'aucun diront que je n'ai qu'à rester en .xls mais bon....
J'ai scruté les forums en vain...
Merci par avance pour vos suggestions
Will
PS: Je peux pas fournir le fichier lui meme en exemple...dsl
J'ai un petit soucis avec une macro que j'ai créée avec excel 2007. Tout fonctionnait a merveille jusqu'à ce que je transforme le fichier contenant la macro de .xls en .xlsm.
Pour faire simple cette macro a pour but de mettre à jour ce fichier par le biais d'extrait de base de données au format TSV (CSV). qui se trouvent dans plusieurs fichiers. Pour cela la macro lance un getOpenFilename et l'utilisateur choisi ses fichiers. Le resultat est donc stocké dans un tableau... Sauf que, et c'est la que cela devient étrange, dans la version .xls j'ai effectivement un tableau mais en .xlsm je n'ai qu'un seul nom de fichier....
Pour aller encore plus loin dans l'étrange, si, en version .xslm, je lance cette macro depuis l'interface VBA, ça fonctionne... idem en mode normal si je met un point d'arret en amont de la première manipulation de ce tableau (avec la syntaxe qui va bien).
D'aucun diront que je n'ai qu'à rester en .xls mais bon....
Code:
Dim NAfter, NBefore, AD_Newstart, FR_NewStart, i, n, j As Integer
Dim Delta, FileToOpen As Variant
Dim DestBook, MyPath, MyMsg As String
Dim MyFilter As Filter
On Error GoTo Defreeze
Set MySelection = Selection
DestBook = ActiveWorkbook.Name
MyPath = Evaluate(Workbooks(DestBook).Names("TSV_Folder").RefersTo)
NBefore = Range("AD_SOURCE").Rows.Count
ChDrive MyPath
ChDir MyPath
' Shows up Open file dialog box and GetOpenFilename method returns an array
FileToOpen = Application.GetOpenFilename("TSV Files (*.tsv), *.tsv", , "FILES TO BE IMPLEMENTED", , True)
With Workbooks(DestBook).Names("TSV_Folder")
.Name = "TSV_Folder"
.RefersTo = GetMyFilePath(FileToOpen(1)) 'One because all files should from the same folder
End With
J'ai scruté les forums en vain...
Merci par avance pour vos suggestions
Will
PS: Je peux pas fournir le fichier lui meme en exemple...dsl