IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

renommer un fichier [AC-2003]


Sujet :

VBA Access

  1. #1
    Membre du Club
    Homme Profil pro
    Employé
    Inscrit en
    Juillet 2012
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Employé
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2012
    Messages : 86
    Points : 69
    Points
    69
    Par défaut renommer un fichier
    Bonjour les experts ,

    je reçois tous les jours un fichier (.TXT) délimité ; nommé ARELXDMF_17022017, et je souhaite supprimer le date et mois toujours différents 17022017 ou 20032017 avant importation. je n'y arrive pas , voici mon code qui ne fonctionne pas . ou est mon erreur ? Merci pour tout

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Public Function supp_date()
     
    Dim NChemin As String
    Dim NomFic1 As String, NomFic2 As String
     
    'Chemin du disque
    NChemin = "E:\"
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objDossier = objFSO.GetFolder(NChemin)
     
        For Each objfichier In objDossier.Files
            'Récupération du nom de l'ancien fichier
            NomFic1 = objfichier.Name
            'Création du nouveau nom en ne gardant que la partie date
            NomFic2 = Replace(NomFic1, "ARELXDMF_17022017", "")
            'Renommer ancien fichier avec nouveau nom
            If Left(objfichier.Name, 13) = "ARELXDMF_17022017" Then
                Name NChemin & NomFic1 As CalculerNomCheminFichier(NChemin, NomFic2)
            End If
        Next
     
    End Function

    Merci de votre aide

    Cordialement
    Eric

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Probablement que le .name te retournes aussi l'extension .txt.

    Essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            'Création du nouveau nom en ne gardant que la partie date
            NomFic1 = objfichier.Name
     
            if nomFc1 like "*ARELXDMF_17022017*" then
                  NomFic2 = Replace(NomFic1, "ARELXDMF_17022017", "")
                  Name NChemin & NomFic1 As CalculerNomCheminFichier(NChemin, NomFic2)
            end if
    et aussi vérifie que NChemin se termine bien par \ sinon la concaténation ne donnera pas un chemin valide.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre du Club
    Homme Profil pro
    Employé
    Inscrit en
    Juillet 2012
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Employé
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2012
    Messages : 86
    Points : 69
    Points
    69
    Par défaut renommer un fichier
    bonjour,

    J'ai essayé et modifié le code ... rien n' y fait , impossible. où est la bêtise ? je suis toujours en apprentisage


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     Public Function supp_Date()
     
    Dim NChemin As String
    Dim NomFic1 As String, NomFic2 As String
     
    'Chemin du disque
    NChemin = "E:\"
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objDossier = objFSO.GetFolder(NChemin)
     
        For Each objfichier In objDossier.Files
            'Récupération du nom de l'ancien fichier
            NomFic1 = objfichier.Name
            'Renommer ancien fichier avec nouveau nom
            If NomFic1 Like "*ARELXDMF_17022017*" Then
                  NomFic2 = Replace(NomFic1, "ARELXDMF_17022017", "")
                  Name NChemin & NomFic1 As CalculerNomCheminFichier(NChemin, NomFic2)
            End If
        Next
     
     
    End Function
    Merci
    Eric

  4. #4
    Membre du Club
    Homme Profil pro
    Employé
    Inscrit en
    Juillet 2012
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Employé
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2012
    Messages : 86
    Points : 69
    Points
    69
    Par défaut renommer un fichier
    bonjour tout le monde,

    je galère vraiment , j'ai un fichier que je reçois tous les jours (.tXT) délimité . je souhaiterai renommé le nom de celui , exemple 1er jour ARELXDMF_17022017] puis 2 ieme jour ARELXDMF_17032017 dans un lecteur "E\" le nom du fichier renommé serait ARELXDMF avant de l'importer dans ma base ACCESS. C'est à dire supprimer les derniers chiffres (Dates) avec le _

    ça fait des heures voir plus que je galère

    si quelqu'un aurait une idée ?

    Merci pour votre aide

    Cordialement

    Eric

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour essaye.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    const PREFIXE as string="ARELXDMF"
     
    If NomFic1 Like "*" & PREFIXE &  "_[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]*" Then
       'Est-ce que le fichier contient ARELXDMF_ suivit de 8 chiffres
       dim iDebut=instr(NomFic1,PREFIXE & "_") 'Trouve le 1er caractère de ARELXDMF
       dim iFin=IDebut+Len(PREFIXE)+8 'Trouve la poosition du 8ième chiffres
       NomFic2=left(NomFic1, iDebut+len(PREFIXE)-1) & mid(NomFic1, iFin+1) 'Prend le nom du 1er caractère à la fin de ARELXDMF et après le dernier chiffres jusqu'à la fin.
       '
       ' Ici le reste de ton code
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  6. #6
    Membre du Club
    Homme Profil pro
    Employé
    Inscrit en
    Juillet 2012
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Employé
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2012
    Messages : 86
    Points : 69
    Points
    69
    Par défaut renommer un fichier
    Bonjour à tous ,

    Merci et ce fonctionne très bien mais c'est pas le résultat que je souhaite .... avec cette fonction , j'obtiens le résultat F_17022017
    Or, je souhaite le résultat ARELXDMF ( après je l'importerai et détruirai le fichier ) .
    En effet , je reçois tous les jours ce fichier ARELXDMF avec une nouvelle date collée sur le nom du fichier avec un _ que je désire enlever
    exemple ARELXDMF_1702017 puis le lendemain ARELXDMF_1802017 ........ et mon résultat souhaité est ARELXDMF

    J'ai essayé en vain de modifier le code ... pff j'aimerai bien avoir votre niveau
    Merci pour aide
    Cordialement
    Eric


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Public Function M_rem()
    Const PREFIXE As String = "ARELXDMF"
    Dim NChemin As String
    Dim NomFic1 As String, NomFic2 As String
    Dim iDebut As String
    Dim iFin As String
     
     
    'Chemin du disque
    NChemin = "E:\"
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objDossier = objFSO.GetFolder(NChemin)
     
     
       If NomFic1 Like "*" & PREFIXE & "_[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]*" Then
           'Est-ce que le fichier contient ARELXDMF_ suivit de 8 chiffres
            iDebut = InStr(NomFic1, PREFIXE & "_") 'Trouve le 1er caractère de ARELXDMF
            iFin = iDebut + Len(PREFIXE) + 8 'Trouve la position du 8ième chiffres
            NomFic2 = Left(NomFic1, iDebut + Len(PREFIXE) - 1) & Mid(NomFic1, iFin + 1) 'Prend le nom du 1er caractère à la fin de ARELXDMF et après le dernier chiffres jusqu'à la fin.
     
               End If
     
       For Each objfichier In objDossier.Files
            'Récupération du nom de l'ancien fichier
            NomFic1 = objfichier.Name
            'Création du nouveau
            NomFic2 = Replace(NomFic1, "ARELXDM", "")
            Name NChemin & NomFic1 As CalculerNomCheminFichier(NChemin, NomFic2)
     
              Next
     
    End Function


    Merci

  7. #7
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Désolé de ne pas avoir été clair.

    Ici le code modifier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Public Function M_rem()
        Const PREFIXE As String = "ARELXDMF"
        Dim NChemin As String
        Dim NomFic1 As String, NomFic2 As String
        Dim iDebut As String
        Dim iFin As String
     
        'Chemin du disque
        NChemin = "E:\"
        Set objFSO = CreateObject("Scripting.FileSystemObject")
        Set objDossier = objFSO.GetFolder(NChemin)
     
        For Each objfichier In objDossier.Files
            'Récupération du nom de l'ancien fichier
            NomFic1 = objfichier.Name
     
            If NomFic1 Like "*" & PREFIXE & "_[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]*" Then
                'Est-ce que le fichier contient ARELXDMF_ suivit de 8 chiffres
                iDebut = InStr(NomFic1, PREFIXE & "_") 'Trouve le 1er caractère de ARELXDMF
                iFin = iDebut + Len(PREFIXE) + 8 'Trouve la position du 8ième chiffres
                NomFic2 = Left(NomFic1, iDebut + Len(PREFIXE) - 1) & Mid(NomFic1, iFin + 1) 'Prend le nom du 1er caractère à la fin de ARELXDMF et après le dernier chiffres jusqu'à la fin.
                Name NChemin & NomFic1 As CalculerNomCheminFichier(NChemin, NomFic2)
            End If
     
        Next
     
    End Function
    Cela se peut que je me sois un peu trompé sur les +1 et -1 pour décomposer/recomposer le nom du fichier mais quelques essais devraient te permettre de corriger ces problèmes de bordures.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Renommer un fichier a la date du jour
    Par mandrack dans le forum Linux
    Réponses: 3
    Dernier message: 15/12/2008, 10h18
  2. [LG]programme qui renomme des fichiers
    Par Ne0taku dans le forum Langage
    Réponses: 9
    Dernier message: 16/02/2005, 21h18
  3. renommer un fichier uploadé
    Par Sowa dans le forum ASP
    Réponses: 2
    Dernier message: 07/02/2005, 09h23
  4. Renommer un fichier avec SmartUpload
    Par PrinceMaster77 dans le forum ASP
    Réponses: 2
    Dernier message: 21/12/2004, 15h53
  5. [] [Réseau] Renommer des fichiers dans un site FTP
    Par JerBi dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 22/08/2003, 00h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo