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 :

Modifier un nom d'un fichier avant importation [AC-2003]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    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
    Par défaut Modifier un nom d'un fichier avant importation
    Bonjour

    J'aimerai exécuter ce code via Access (Module)

    Je suis vraiment embêter et je n'arrive pas à faire du code pour ça , je dois importer de nombreux fichiers dbf. dans ma base mais le nom du fichier est trop long . Exemple : geodisvitry20120702 etc geodisvitry+datedujour etc ...

    je souhaiterai supprimer par ce code le Mot geodisvitry de tous les fichiers dbf
    qui se trouve dans le lecteur E .Sachant que le fichier dbf peut s'ouvrir avec Excel et après mes codes fonctionnent parfaitement

    Quelqu'un aurait une idée pour créer ce code ?

    Merci de votre aide

  2. #2
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 433
    Billets dans le blog
    11
    Par défaut
    Avec quelque chose comme cela tu pourrais peut-être renommer tous les fichiers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    NChemin = "chemin du répertoire ou se trouve les fichiers"
     
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objDossier = objFSO.GetFolder(NChemin & "\")
     
    If (objDossier.Files.Count > 0) Then
    	For Each objFichier In objDossier.Files
    		NomFic1 = objFichier.Name
    		NomFic2 = Replace(NomFic1, "geodisvitry", "") 
    		FileCopy NomFic2, NomFic1
    		Kill NomFic1
    	Next
    End If

  3. #3
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Le code trouvé ici : http://www.excelforum.com/excel-prog...using-vba.html

    Devrait faire ce que tu veux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub x()
        Dim sFile As String
     
        ChDir "C:\myPath"    
        sFile = Dir("*v9test*")
        If Len(sFile) = 0 Then Exit Sub
     
        Do
            Name sFile As Replace(sFile, "V9test", "")
            sFile = Dir()
        Loop While Len(sFile)
    End Sub
    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.

  4. #4
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 433
    Billets dans le blog
    11
    Par défaut
    Il est vrai que je suis allé un peu vite sur le code :
    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
    Function test()
     
        Dim NChemin As String
        'Dans ton cas
        NChemin = "E:\"
        Set objFSO = CreateObject("Scripting.FileSystemObject")
        Set objDossier = objFSO.GetFolder(NChemin)
     
        If (objDossier.Files.Count > 1) Then
            For Each objFichier In objDossier.Files
                NomFic1 = objFichier.Name
                NomFic2 = Replace(NomFic1, "geodisvitry", "")
                FileCopy NChemin & NomFic1, NChemin & NomFic2
                Kill NChemin & NomFic1
            Next
        End If
     
    End Function

  5. #5
    Membre confirmé
    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
    Par défaut ok code fonctionne bien mais ....
    Bonjour,

    Super pour le code le résultat est au RDV mais lorsqu'un autre fichier est remis dans le lecteur E (je les reçois tous les jours tel quel "geodisvitry+date du jour" . le code ne fonctionne plus et il me dit : Erreur d'exécution "70" Permission refusée
    y a t il du code pour dire , nom du fichier "20120407"(date) toujours le même Nbre 8 passe au suivant jusqu'au fichier à modifier "geodisvitry20120607" Nbre 19 puis le modifier.

    Merci pour votre aide

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Ajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if dir(NChemin & NomFic2)<>"" then
       'Supprimme le fichier renommé si il existe déjà
       Kill NChemin & NomFic2
    end if
    avant le FileCopy.

    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.

  7. #7
    Membre confirmé
    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
    Par défaut code modifié .. ne fonctionne pas
    Bonjour,

    le code bloque à cette ligne
    Kill NChemin & NomFic2
    Ce que je souhaite, c'est de modifier les derniers fichiers trop long reçus et de garder le reste(qui lui a été modifié par le code de Zoom61)

    Merci pour ton aide


    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
    Function test()
     
        Dim NChemin As String
        'Dans ton cas
        NChemin = "E:\"
        Set objFSO = CreateObject("Scripting.FileSystemObject")
        Set objDossier = objFSO.GetFolder(NChemin)
     
        If (objDossier.Files.Count > 0) Then
            For Each objFichier In objDossier.Files
                NomFic1 = objFichier.Name
     
               If Dir(NChemin & NomFic2) <> "" Then
      'Supprimme le fichier renommé si il existe déjà
       Kill NChemin & NomFic2
        End If 
                NomFic2 = Replace(NomFic1, "geodisvitry", "")
                FileCopy NChemin & NomFic1, NChemin & NomFic2
                Kill NChemin & NomFic1
            Next
        End If
     
    End Function

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/06/2013, 09h43
  2. Réponses: 16
    Dernier message: 20/08/2012, 13h39
  3. Modifier le nom d'un fichier
    Par waldner77 dans le forum Débuter
    Réponses: 1
    Dernier message: 03/12/2009, 10h52
  4. modifier des nom de plusieurs fichiers
    Par Daron10 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 18/08/2009, 17h44
  5. Mise en forme fichier avant Import
    Par jeff37 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 21/04/2004, 15h16

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