XL 2010 [RESOLU] Fermer fichier csv si ouvert

  • Initiateur de la discussion Initiateur de la discussion cathodique
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

cathodique

XLDnaute Barbatruc
Bonjour,

J'utilise le code ci-dessous pour créer un fichier csv.
code corrigé au post#3
Par inadvertance, j'ai exécuté le code alors que le csv était ouvert le code a planté sur la ligne d'ouverture du fichier séquentiel.
Comment peut-on vérifier que le fichier n'est pas ouvert et dans le cas contraire le fermer?

En vous remerciant par avance.

Bon week-end.
 
Dernière édition:
Solution
Salut, voir par ici ?
Private Function IsFileOpen(filename As String)
Private Function IsFileOpenLight(filename As String) As Boolean
Salut Kiki29 😉,

Merci beaucoup. Je rajoute tes codes à mes archives.
Je ne suis pas resté inactif. J'ai trouvé cette solution.
VB:
Sub CSV_separateur_PointVirgule()
    Dim Tableau, ligne As String, i As Long, j As Long, NumFichier As Integer
    Const sSep As String = ";"
    NumFichier = FreeFile
    Tableau = ThisWorkbook.Worksheets("comptes").UsedRange
    'fermer fichier si ouvert
    If FichOuvert("essai.csv") Then Workbooks("essai.csv").Close False
    ' on l'ouvre en mémoire
    Open ThisWorkbook.Path & "\" & "essai.csv" For Output As #NumFichier
    'transfert des données'...
Salut, voir par ici ?
Private Function IsFileOpen(filename As String)
Private Function IsFileOpenLight(filename As String) As Boolean
Salut Kiki29 😉,

Merci beaucoup. Je rajoute tes codes à mes archives.
Je ne suis pas resté inactif. J'ai trouvé cette solution.
VB:
Sub CSV_separateur_PointVirgule()
    Dim Tableau, ligne As String, i As Long, j As Long, NumFichier As Integer
    Const sSep As String = ";"
    NumFichier = FreeFile
    Tableau = ThisWorkbook.Worksheets("comptes").UsedRange
    'fermer fichier si ouvert
    If FichOuvert("essai.csv") Then Workbooks("essai.csv").Close False
    ' on l'ouvre en mémoire
    Open ThisWorkbook.Path & "\" & "essai.csv" For Output As #NumFichier
    'transfert des données'
    For i = LBound(Tableau, 1) To UBound(Tableau, 1)
        ligne = Tableau(i, LBound(Tableau, 2))
        For j = LBound(Tableau, 2) + 1 To UBound(Tableau, 2)
            ligne = ligne & sSep & Tableau(i, j)
        Next j
        Print #NumFichier, ligne
    Next i
    Close NumFichier
    MsgBox "terminé!"
End Sub

Function FichOuvert(F As String) As Boolean
'myDearFriend!  -  www.mdf-xlpages.com
    On Error Resume Next
    FichOuvert = Not Workbooks(F) Is Nothing
End Function

Encore merci. Bon week-end.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
40
Affichages
2 K
Réponses
10
Affichages
453
Retour