J'utilise le code ci-dessous ( Sub IntegreFIC() et Function FD_Ouvrir() )
soit :
1 - avec ACCESS 2007 sous VISTA
2 - avec ACCESS 2007 sous XP SP2
Dans le 1er cas (sous VISTA), tout fonctionne parfaitement.
Par contre, sous XP, lorsque je sélectionne mon fichier à partir de la
boite de dialogue OUVRIR, cette dernière ne se ferme pas une fois que j'ai
cliqué
sur le bouton "ouvrir". Cela ne se produit pas sous VISTA, la boite se
fermant tout de suite.
La procédure va quand même jusqu'à son terme sans problème, mais la boite de
dialogue
OUVRIR est toujours à l'écran jusqu'à la fin où là elle se ferme.
Quelqu'un aurait-il une explication et une solution pour fermer cette boite
de dialogue ?
Dim cLigne As String, n As Integer, i As Integer
Dim db As Database, rT As Recordset, cF As Variant, aEnTete(31) As Variant
Dim NomFic As String
NomFic = FD_Ouvrir
Set db = CurrentDb
'db.Execute "delete from tbl_synthese"
Set rT = db.OpenRecordset("Tbl_Synthese")
Open NomFic For Input As #1
While Not EOF(1)
Line Input #1, cLigne
For i = 0 To 31 'Lecture de l'entête
n = InStr(cLigne, "|")
cF = Trim(Left(cLigne, n - 1))
If cF = "" Then
cF = Null
ElseIf i = 24 Or i = 27 Then 'champs Total_G1 et Total_G2
cF = Replace(cF, ".", ",") 'remplacement du point par une
virgule
End If
aEnTete(i) = cF
cLigne = Mid(cLigne, n + 1)
Next
n = InStr(cLigne, "|")
While n > 0 'Tant qu'il reste une épreuve
rT.AddNew
For i = 0 To 31 'Ecriture de l'entête
rT.Fields(i).Value = aEnTete(i)
Next
For i = 32 To 46 'Lecture et écriture de l'épreuve
n = InStr(cLigne, "|")
cF = Trim(Left(cLigne, n - 1))
If cF = "" Then
cF = Null
ElseIf i >= 44 Then 'note, coef, points_maxi : on remplace le
point par la virgule
cF = Replace(cF, ".", ",")
End If
rT.Fields(i).Value = cF
cLigne = Mid(cLigne, n + 1)
Next
rT!NomFic = NomFic
rT.Update
n = InStr(cLigne, "|")
Wend
Wend
Close #1
Set rT = Nothing
Set db = Nothing
MsgBox "Terminé"
End Sub
__________________________________________________________
Function FD_Ouvrir()
Dim fd As Office.FileDialog
' Création d'une boite de dialogue Ouvrir
Set fd = Application.FileDialog(msoFileDialogOpen)
With fd
.Title = "Sélectionnez un ou plusieurs fichiers"
.InitialFileName = ""
.AllowMultiSelect = False
' Règlage des filtres ( liste déroulante type de fichiers )
With .Filters
.Clear
.Add "Fichiers texte", "*.txt; *.csv"
End With
.FilterIndex = 1
End With
'Ouvrir la boite de dialogue
If fd.Show = False Then
'l'action a été annulée
Set fd = Nothing
Exit Function
End If
'Afficher le nom des fichiers sélectionnés
Dim varFichier As Variant
For Each varFichier In fd.SelectedItems
FD_Ouvrir = varFichier
Next
'Libération des variables
Set fd = Nothing
End Function
__________________________________________________________
"Thierry" | J'utilise le code ci-dessous ( Sub IntegreFIC() et Function FD_Ouvrir() ) | soit : | 1 - avec ACCESS 2007 sous VISTA | 2 - avec ACCESS 2007 sous XP SP2 | | Dans le 1er cas (sous VISTA), tout fonctionne parfaitement. | | Par contre, sous XP, lorsque je sélectionne mon fichier à partir de la | boite de dialogue OUVRIR, cette dernière ne se ferme pas une fois que j'ai | cliqué | sur le bouton "ouvrir". Cela ne se produit pas sous VISTA, la boite se | fermant tout de suite. | | La procédure va quand même jusqu'à son terme sans problème, mais la boite de | dialogue | OUVRIR est toujours à l'écran jusqu'à la fin où là elle se ferme. | | Quelqu'un aurait-il une explication et une solution pour fermer cette boite | de dialogue ? | | Merci d'avance et bonne fin de journée. | | __________________________________________________________ | | Sub IntegreFIC() | | Dim cLigne As String, n As Integer, i As Integer | Dim db As Database, rT As Recordset, cF As Variant, aEnTete(31) As Variant | | Dim NomFic As String | | NomFic = FD_Ouvrir
DoEvents
| Set db = CurrentDb | 'db.Execute "delete from tbl_synthese" | Set rT = db.OpenRecordset("Tbl_Synthese") | Open NomFic For Input As #1 | | | While Not EOF(1) | Line Input #1, cLigne | For i = 0 To 31 'Lecture de l'entête | n = InStr(cLigne, "|") | cF = Trim(Left(cLigne, n - 1)) | If cF = "" Then | cF = Null | ElseIf i = 24 Or i = 27 Then 'champs Total_G1 et Total_G2 | cF = Replace(cF, ".", ",") 'remplacement du point par une | virgule | End If | aEnTete(i) = cF | cLigne = Mid(cLigne, n + 1) | Next | | | n = InStr(cLigne, "|") | While n > 0 'Tant qu'il reste une épreuve | rT.AddNew | For i = 0 To 31 'Ecriture de l'entête | rT.Fields(i).Value = aEnTete(i) | Next | For i = 32 To 46 'Lecture et écriture de l'épreuve | n = InStr(cLigne, "|") | cF = Trim(Left(cLigne, n - 1)) | If cF = "" Then | cF = Null | ElseIf i >= 44 Then 'note, coef, points_maxi : on remplace le | point par la virgule | cF = Replace(cF, ".", ",") | End If | rT.Fields(i).Value = cF | cLigne = Mid(cLigne, n + 1) | Next | rT!NomFic = NomFic | rT.Update | | n = InStr(cLigne, "|") | Wend | Wend | Close #1 | Set rT = Nothing | Set db = Nothing | | MsgBox "Terminé" | | End Sub | | __________________________________________________________ | Function FD_Ouvrir() | | Dim fd As Office.FileDialog | | ' Création d'une boite de dialogue Ouvrir | Set fd = Application.FileDialog(msoFileDialogOpen) | | With fd | .Title = "Sélectionnez un ou plusieurs fichiers" | .InitialFileName = "" | .AllowMultiSelect = False | | ' Règlage des filtres ( liste déroulante type de fichiers ) | With .Filters | .Clear | .Add "Fichiers texte", "*.txt; *.csv" | | End With | .FilterIndex = 1 | End With | | 'Ouvrir la boite de dialogue | If fd.Show = False Then | 'l'action a été annulée | Set fd = Nothing | Exit Function | End If | | | 'Afficher le nom des fichiers sélectionnés | Dim varFichier As Variant | | For Each varFichier In fd.SelectedItems | FD_Ouvrir = varFichier | Next | | 'Libération des variables | Set fd = Nothing | End Function | __________________________________________________________ | |
"Thierry"
| J'utilise le code ci-dessous ( Sub IntegreFIC() et Function FD_Ouvrir() )
| soit :
| 1 - avec ACCESS 2007 sous VISTA
| 2 - avec ACCESS 2007 sous XP SP2
|
| Dans le 1er cas (sous VISTA), tout fonctionne parfaitement.
|
| Par contre, sous XP, lorsque je sélectionne mon fichier à partir de la
| boite de dialogue OUVRIR, cette dernière ne se ferme pas une fois que j'ai
| cliqué
| sur le bouton "ouvrir". Cela ne se produit pas sous VISTA, la boite se
| fermant tout de suite.
|
| La procédure va quand même jusqu'à son terme sans problème, mais la boite de
| dialogue
| OUVRIR est toujours à l'écran jusqu'à la fin où là elle se ferme.
|
| Quelqu'un aurait-il une explication et une solution pour fermer cette boite
| de dialogue ?
|
| Merci d'avance et bonne fin de journée.
|
| __________________________________________________________
|
| Sub IntegreFIC()
|
| Dim cLigne As String, n As Integer, i As Integer
| Dim db As Database, rT As Recordset, cF As Variant, aEnTete(31) As Variant
|
| Dim NomFic As String
|
| NomFic = FD_Ouvrir
DoEvents
| Set db = CurrentDb
| 'db.Execute "delete from tbl_synthese"
| Set rT = db.OpenRecordset("Tbl_Synthese")
| Open NomFic For Input As #1
|
|
| While Not EOF(1)
| Line Input #1, cLigne
| For i = 0 To 31 'Lecture de l'entête
| n = InStr(cLigne, "|")
| cF = Trim(Left(cLigne, n - 1))
| If cF = "" Then
| cF = Null
| ElseIf i = 24 Or i = 27 Then 'champs Total_G1 et Total_G2
| cF = Replace(cF, ".", ",") 'remplacement du point par une
| virgule
| End If
| aEnTete(i) = cF
| cLigne = Mid(cLigne, n + 1)
| Next
|
|
| n = InStr(cLigne, "|")
| While n > 0 'Tant qu'il reste une épreuve
| rT.AddNew
| For i = 0 To 31 'Ecriture de l'entête
| rT.Fields(i).Value = aEnTete(i)
| Next
| For i = 32 To 46 'Lecture et écriture de l'épreuve
| n = InStr(cLigne, "|")
| cF = Trim(Left(cLigne, n - 1))
| If cF = "" Then
| cF = Null
| ElseIf i >= 44 Then 'note, coef, points_maxi : on remplace le
| point par la virgule
| cF = Replace(cF, ".", ",")
| End If
| rT.Fields(i).Value = cF
| cLigne = Mid(cLigne, n + 1)
| Next
| rT!NomFic = NomFic
| rT.Update
|
| n = InStr(cLigne, "|")
| Wend
| Wend
| Close #1
| Set rT = Nothing
| Set db = Nothing
|
| MsgBox "Terminé"
|
| End Sub
|
| __________________________________________________________
| Function FD_Ouvrir()
|
| Dim fd As Office.FileDialog
|
| ' Création d'une boite de dialogue Ouvrir
| Set fd = Application.FileDialog(msoFileDialogOpen)
|
| With fd
| .Title = "Sélectionnez un ou plusieurs fichiers"
| .InitialFileName = ""
| .AllowMultiSelect = False
|
| ' Règlage des filtres ( liste déroulante type de fichiers )
| With .Filters
| .Clear
| .Add "Fichiers texte", "*.txt; *.csv"
|
| End With
| .FilterIndex = 1
| End With
|
| 'Ouvrir la boite de dialogue
| If fd.Show = False Then
| 'l'action a été annulée
| Set fd = Nothing
| Exit Function
| End If
|
|
| 'Afficher le nom des fichiers sélectionnés
| Dim varFichier As Variant
|
| For Each varFichier In fd.SelectedItems
| FD_Ouvrir = varFichier
| Next
|
| 'Libération des variables
| Set fd = Nothing
| End Function
| __________________________________________________________
|
|
"Thierry" | J'utilise le code ci-dessous ( Sub IntegreFIC() et Function FD_Ouvrir() ) | soit : | 1 - avec ACCESS 2007 sous VISTA | 2 - avec ACCESS 2007 sous XP SP2 | | Dans le 1er cas (sous VISTA), tout fonctionne parfaitement. | | Par contre, sous XP, lorsque je sélectionne mon fichier à partir de la | boite de dialogue OUVRIR, cette dernière ne se ferme pas une fois que j'ai | cliqué | sur le bouton "ouvrir". Cela ne se produit pas sous VISTA, la boite se | fermant tout de suite. | | La procédure va quand même jusqu'à son terme sans problème, mais la boite de | dialogue | OUVRIR est toujours à l'écran jusqu'à la fin où là elle se ferme. | | Quelqu'un aurait-il une explication et une solution pour fermer cette boite | de dialogue ? | | Merci d'avance et bonne fin de journée. | | __________________________________________________________ | | Sub IntegreFIC() | | Dim cLigne As String, n As Integer, i As Integer | Dim db As Database, rT As Recordset, cF As Variant, aEnTete(31) As Variant | | Dim NomFic As String | | NomFic = FD_Ouvrir
DoEvents
| Set db = CurrentDb | 'db.Execute "delete from tbl_synthese" | Set rT = db.OpenRecordset("Tbl_Synthese") | Open NomFic For Input As #1 | | | While Not EOF(1) | Line Input #1, cLigne | For i = 0 To 31 'Lecture de l'entête | n = InStr(cLigne, "|") | cF = Trim(Left(cLigne, n - 1)) | If cF = "" Then | cF = Null | ElseIf i = 24 Or i = 27 Then 'champs Total_G1 et Total_G2 | cF = Replace(cF, ".", ",") 'remplacement du point par une | virgule | End If | aEnTete(i) = cF | cLigne = Mid(cLigne, n + 1) | Next | | | n = InStr(cLigne, "|") | While n > 0 'Tant qu'il reste une épreuve | rT.AddNew | For i = 0 To 31 'Ecriture de l'entête | rT.Fields(i).Value = aEnTete(i) | Next | For i = 32 To 46 'Lecture et écriture de l'épreuve | n = InStr(cLigne, "|") | cF = Trim(Left(cLigne, n - 1)) | If cF = "" Then | cF = Null | ElseIf i >= 44 Then 'note, coef, points_maxi : on remplace le | point par la virgule | cF = Replace(cF, ".", ",") | End If | rT.Fields(i).Value = cF | cLigne = Mid(cLigne, n + 1) | Next | rT!NomFic = NomFic | rT.Update | | n = InStr(cLigne, "|") | Wend | Wend | Close #1 | Set rT = Nothing | Set db = Nothing | | MsgBox "Terminé" | | End Sub | | __________________________________________________________ | Function FD_Ouvrir() | | Dim fd As Office.FileDialog | | ' Création d'une boite de dialogue Ouvrir | Set fd = Application.FileDialog(msoFileDialogOpen) | | With fd | .Title = "Sélectionnez un ou plusieurs fichiers" | .InitialFileName = "" | .AllowMultiSelect = False | | ' Règlage des filtres ( liste déroulante type de fichiers ) | With .Filters | .Clear | .Add "Fichiers texte", "*.txt; *.csv" | | End With | .FilterIndex = 1 | End With | | 'Ouvrir la boite de dialogue | If fd.Show = False Then | 'l'action a été annulée | Set fd = Nothing | Exit Function | End If | | | 'Afficher le nom des fichiers sélectionnés | Dim varFichier As Variant | | For Each varFichier In fd.SelectedItems | FD_Ouvrir = varFichier | Next | | 'Libération des variables | Set fd = Nothing | End Function | __________________________________________________________ | |
Thierry
Bonjour, OK ça fonctionne parfaitement sous XP. Merci et bonne fin de journée. Thierry
"3stone" a écrit dans le message de groupe de discussion :
"Thierry" | J'utilise le code ci-dessous ( Sub IntegreFIC() et Function FD_Ouvrir() ) | soit : | 1 - avec ACCESS 2007 sous VISTA | 2 - avec ACCESS 2007 sous XP SP2 | | Dans le 1er cas (sous VISTA), tout fonctionne parfaitement. | | Par contre, sous XP, lorsque je sélectionne mon fichier à partir de la | boite de dialogue OUVRIR, cette dernière ne se ferme pas une fois que j'ai | cliqué | sur le bouton "ouvrir". Cela ne se produit pas sous VISTA, la boite se | fermant tout de suite. | | La procédure va quand même jusqu'à son terme sans problème, mais la boite de | dialogue | OUVRIR est toujours à l'écran jusqu'à la fin où là elle se ferme. | | Quelqu'un aurait-il une explication et une solution pour fermer cette boite | de dialogue ? | | Merci d'avance et bonne fin de journée. | | __________________________________________________________ | | Sub IntegreFIC() | | Dim cLigne As String, n As Integer, i As Integer | Dim db As Database, rT As Recordset, cF As Variant, aEnTete(31) As Variant | | Dim NomFic As String | | NomFic = FD_Ouvrir
DoEvents
| Set db = CurrentDb | 'db.Execute "delete from tbl_synthese" | Set rT = db.OpenRecordset("Tbl_Synthese") | Open NomFic For Input As #1 | | | While Not EOF(1) | Line Input #1, cLigne | For i = 0 To 31 'Lecture de l'entête | n = InStr(cLigne, "|") | cF = Trim(Left(cLigne, n - 1)) | If cF = "" Then | cF = Null | ElseIf i = 24 Or i = 27 Then 'champs Total_G1 et Total_G2 | cF = Replace(cF, ".", ",") 'remplacement du point par une | virgule | End If | aEnTete(i) = cF | cLigne = Mid(cLigne, n + 1) | Next | | | n = InStr(cLigne, "|") | While n > 0 'Tant qu'il reste une épreuve | rT.AddNew | For i = 0 To 31 'Ecriture de l'entête | rT.Fields(i).Value = aEnTete(i) | Next | For i = 32 To 46 'Lecture et écriture de l'épreuve | n = InStr(cLigne, "|") | cF = Trim(Left(cLigne, n - 1)) | If cF = "" Then | cF = Null | ElseIf i >= 44 Then 'note, coef, points_maxi : on remplace le | point par la virgule | cF = Replace(cF, ".", ",") | End If | rT.Fields(i).Value = cF | cLigne = Mid(cLigne, n + 1) | Next | rT!NomFic = NomFic | rT.Update | | n = InStr(cLigne, "|") | Wend | Wend | Close #1 | Set rT = Nothing | Set db = Nothing | | MsgBox "Terminé" | | End Sub | | __________________________________________________________ | Function FD_Ouvrir() | | Dim fd As Office.FileDialog | | ' Création d'une boite de dialogue Ouvrir | Set fd = Application.FileDialog(msoFileDialogOpen) | | With fd | .Title = "Sélectionnez un ou plusieurs fichiers" | .InitialFileName = "" | .AllowMultiSelect = False | | ' Règlage des filtres ( liste déroulante type de fichiers ) | With .Filters | .Clear | .Add "Fichiers texte", "*.txt; *.csv" | | End With | .FilterIndex = 1 | End With | | 'Ouvrir la boite de dialogue | If fd.Show = False Then | 'l'action a été annulée | Set fd = Nothing | Exit Function | End If | | | 'Afficher le nom des fichiers sélectionnés | Dim varFichier As Variant | | For Each varFichier In fd.SelectedItems | FD_Ouvrir = varFichier | Next | | 'Libération des variables | Set fd = Nothing | End Function | __________________________________________________________ | |
Bonjour,
OK ça fonctionne parfaitement sous XP.
Merci et bonne fin de journée.
Thierry
"3stone" <home@sweet_home.be> a écrit dans le message de groupe de
discussion : e3cVsoigIHA.4436@TK2MSFTNGP02.phx.gbl...
"Thierry"
| J'utilise le code ci-dessous ( Sub IntegreFIC() et Function
FD_Ouvrir() )
| soit :
| 1 - avec ACCESS 2007 sous VISTA
| 2 - avec ACCESS 2007 sous XP SP2
|
| Dans le 1er cas (sous VISTA), tout fonctionne parfaitement.
|
| Par contre, sous XP, lorsque je sélectionne mon fichier à partir de la
| boite de dialogue OUVRIR, cette dernière ne se ferme pas une fois que
j'ai
| cliqué
| sur le bouton "ouvrir". Cela ne se produit pas sous VISTA, la boite se
| fermant tout de suite.
|
| La procédure va quand même jusqu'à son terme sans problème, mais la
boite de
| dialogue
| OUVRIR est toujours à l'écran jusqu'à la fin où là elle se ferme.
|
| Quelqu'un aurait-il une explication et une solution pour fermer cette
boite
| de dialogue ?
|
| Merci d'avance et bonne fin de journée.
|
| __________________________________________________________
|
| Sub IntegreFIC()
|
| Dim cLigne As String, n As Integer, i As Integer
| Dim db As Database, rT As Recordset, cF As Variant, aEnTete(31) As
Variant
|
| Dim NomFic As String
|
| NomFic = FD_Ouvrir
DoEvents
| Set db = CurrentDb
| 'db.Execute "delete from tbl_synthese"
| Set rT = db.OpenRecordset("Tbl_Synthese")
| Open NomFic For Input As #1
|
|
| While Not EOF(1)
| Line Input #1, cLigne
| For i = 0 To 31 'Lecture de l'entête
| n = InStr(cLigne, "|")
| cF = Trim(Left(cLigne, n - 1))
| If cF = "" Then
| cF = Null
| ElseIf i = 24 Or i = 27 Then 'champs Total_G1 et Total_G2
| cF = Replace(cF, ".", ",") 'remplacement du point par une
| virgule
| End If
| aEnTete(i) = cF
| cLigne = Mid(cLigne, n + 1)
| Next
|
|
| n = InStr(cLigne, "|")
| While n > 0 'Tant qu'il reste une épreuve
| rT.AddNew
| For i = 0 To 31 'Ecriture de l'entête
| rT.Fields(i).Value = aEnTete(i)
| Next
| For i = 32 To 46 'Lecture et écriture de l'épreuve
| n = InStr(cLigne, "|")
| cF = Trim(Left(cLigne, n - 1))
| If cF = "" Then
| cF = Null
| ElseIf i >= 44 Then 'note, coef, points_maxi : on remplace
le
| point par la virgule
| cF = Replace(cF, ".", ",")
| End If
| rT.Fields(i).Value = cF
| cLigne = Mid(cLigne, n + 1)
| Next
| rT!NomFic = NomFic
| rT.Update
|
| n = InStr(cLigne, "|")
| Wend
| Wend
| Close #1
| Set rT = Nothing
| Set db = Nothing
|
| MsgBox "Terminé"
|
| End Sub
|
| __________________________________________________________
| Function FD_Ouvrir()
|
| Dim fd As Office.FileDialog
|
| ' Création d'une boite de dialogue Ouvrir
| Set fd = Application.FileDialog(msoFileDialogOpen)
|
| With fd
| .Title = "Sélectionnez un ou plusieurs fichiers"
| .InitialFileName = ""
| .AllowMultiSelect = False
|
| ' Règlage des filtres ( liste déroulante type de fichiers )
| With .Filters
| .Clear
| .Add "Fichiers texte", "*.txt; *.csv"
|
| End With
| .FilterIndex = 1
| End With
|
| 'Ouvrir la boite de dialogue
| If fd.Show = False Then
| 'l'action a été annulée
| Set fd = Nothing
| Exit Function
| End If
|
|
| 'Afficher le nom des fichiers sélectionnés
| Dim varFichier As Variant
|
| For Each varFichier In fd.SelectedItems
| FD_Ouvrir = varFichier
| Next
|
| 'Libération des variables
| Set fd = Nothing
| End Function
| __________________________________________________________
|
|
"Thierry" | J'utilise le code ci-dessous ( Sub IntegreFIC() et Function FD_Ouvrir() ) | soit : | 1 - avec ACCESS 2007 sous VISTA | 2 - avec ACCESS 2007 sous XP SP2 | | Dans le 1er cas (sous VISTA), tout fonctionne parfaitement. | | Par contre, sous XP, lorsque je sélectionne mon fichier à partir de la | boite de dialogue OUVRIR, cette dernière ne se ferme pas une fois que j'ai | cliqué | sur le bouton "ouvrir". Cela ne se produit pas sous VISTA, la boite se | fermant tout de suite. | | La procédure va quand même jusqu'à son terme sans problème, mais la boite de | dialogue | OUVRIR est toujours à l'écran jusqu'à la fin où là elle se ferme. | | Quelqu'un aurait-il une explication et une solution pour fermer cette boite | de dialogue ? | | Merci d'avance et bonne fin de journée. | | __________________________________________________________ | | Sub IntegreFIC() | | Dim cLigne As String, n As Integer, i As Integer | Dim db As Database, rT As Recordset, cF As Variant, aEnTete(31) As Variant | | Dim NomFic As String | | NomFic = FD_Ouvrir
DoEvents
| Set db = CurrentDb | 'db.Execute "delete from tbl_synthese" | Set rT = db.OpenRecordset("Tbl_Synthese") | Open NomFic For Input As #1 | | | While Not EOF(1) | Line Input #1, cLigne | For i = 0 To 31 'Lecture de l'entête | n = InStr(cLigne, "|") | cF = Trim(Left(cLigne, n - 1)) | If cF = "" Then | cF = Null | ElseIf i = 24 Or i = 27 Then 'champs Total_G1 et Total_G2 | cF = Replace(cF, ".", ",") 'remplacement du point par une | virgule | End If | aEnTete(i) = cF | cLigne = Mid(cLigne, n + 1) | Next | | | n = InStr(cLigne, "|") | While n > 0 'Tant qu'il reste une épreuve | rT.AddNew | For i = 0 To 31 'Ecriture de l'entête | rT.Fields(i).Value = aEnTete(i) | Next | For i = 32 To 46 'Lecture et écriture de l'épreuve | n = InStr(cLigne, "|") | cF = Trim(Left(cLigne, n - 1)) | If cF = "" Then | cF = Null | ElseIf i >= 44 Then 'note, coef, points_maxi : on remplace le | point par la virgule | cF = Replace(cF, ".", ",") | End If | rT.Fields(i).Value = cF | cLigne = Mid(cLigne, n + 1) | Next | rT!NomFic = NomFic | rT.Update | | n = InStr(cLigne, "|") | Wend | Wend | Close #1 | Set rT = Nothing | Set db = Nothing | | MsgBox "Terminé" | | End Sub | | __________________________________________________________ | Function FD_Ouvrir() | | Dim fd As Office.FileDialog | | ' Création d'une boite de dialogue Ouvrir | Set fd = Application.FileDialog(msoFileDialogOpen) | | With fd | .Title = "Sélectionnez un ou plusieurs fichiers" | .InitialFileName = "" | .AllowMultiSelect = False | | ' Règlage des filtres ( liste déroulante type de fichiers ) | With .Filters | .Clear | .Add "Fichiers texte", "*.txt; *.csv" | | End With | .FilterIndex = 1 | End With | | 'Ouvrir la boite de dialogue | If fd.Show = False Then | 'l'action a été annulée | Set fd = Nothing | Exit Function | End If | | | 'Afficher le nom des fichiers sélectionnés | Dim varFichier As Variant | | For Each varFichier In fd.SelectedItems | FD_Ouvrir = varFichier | Next | | 'Libération des variables | Set fd = Nothing | End Function | __________________________________________________________ | |