Bonjour Ti, Yeahou, Bruno, le Forum
Oui, très bien vu Ti ta Function avec le Set d'Object WKb ! Merci à Toi
Et donc pour Yeahou la méthode de transformer le CSV en TXT est encore la plus simple, je n'y avais point pensé à 6 minutes avant la cloture de ma carte d'accès pour le week end !!
Alors aujourd'hui avec un peu de temps devant moi, j'ai fait mes exercices sur les functions (j'ai des lacune là dessus et pourtant c'est bien pratique !) et du coup je me suis une peu amusé...
Pour Bruno, le code si dessous va peut-être te servir, car il fait plusieurs choses et en prime il répond à tes questions !!!"appel de la fonction à partir d'une procédure notamment" (Voir comme j'appelle les Functions dans la Sub) et aussi "à quoi correspond le "$" (c'est l'abbréviation des développeurs pressés pour écrire "As String")
TEST 1) il teste si le fichier "My_CSV_File.txt" est ouvert, auquel cas il ne l'activera pas (thanx Ti) mais un message te le dira....
TEST 2) il teste si le fichier "My_CSV_File.txt" existe bien dans le répertoire "C:\Mes documents\" auquel cas il l'ouvre après demande de confirmation.
TEST 3) il teste si le fichier "My_CSV_File.Csv" existe bien dans le répertoire "C:\Mes documents\" auquel cas il en créé une Copie en TXT et il l'ouvre après demande de confirmation.
TEST 4) si les fichiers "My_CSV_File.csv" et "My_CSV_File.txt" n'existent pas dans le répertoire "C:\Mes documents\" il enverra un message d'alerte...
Voilà mon travail !
Const FileName As String = "My_CSV_File"
Const FilePath As String = "C:\Mes documents\"
Const TXT As String = ".txt"
Const CSV As String = ".csv"
Sub TestAndOpenAsTxt() '@+Thierry July 2004
Dim Q As Byte
Dim FS As Object, F As Object
If Ouvert(FileName & TXT) = True Then
MsgBox "Le fichier " & FileName & TXT & " est bien ouvert, vous pouvez travailler dessus"
ElseIf Existe(FilePath & FileName & TXT) = True Then
Q = MsgBox("Le Fichier " & FileName & TXT & " n'est pas ouvert, voulez vous l'ouvrir ?", vbQuestion + vbYesNo)
If Q = vbYes Then
Workbooks.Open FilePath & FileName & TXT
End If
ElseIf Existe(FilePath & FileName & CSV) = True Then
Q = MsgBox("Le Fichier " & FileName & TXT & " n'existe pas, voulez vous ouvrir une copie en .txt ?", vbQuestion + vbYesNo)
If Q = vbYes Then
Set FS = CreateObject("Scripting.FileSystemObject")
Set F = FS.GetFile(FilePath & FileName & CSV)
F.Copy FilePath & FileName & TXT
Workbooks.Open FilePath & FileName & TXT
End If
Else
MsgBox "Le fichier " & FileName & " n'existe pas ni en CSV ni en TXT !", vbCritical
End If
End Sub
Function Ouvert(ByVal NomFichier As String) As Boolean 'de Ti
Dim Wbk As Workbook
On Error GoTo fin
Set Wbk = Workbooks(NomFichier)
Ouvert = True
fin:
End Function
Function Existe(ByVal NomCheminFichier As String) As Boolean
Dim Wbk As Workbook
On Error GoTo fin
Open NomCheminFichier For Input As #1
Existe = True
Close #1
fin:
End Function
Bon Samedi
@+Thierry