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

Macros et VBA Excel Discussion :

Incrémenter un nom de fichier dans le code VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Avril 2012
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Avril 2012
    Messages : 83
    Par défaut Incrémenter un nom de fichier dans le code VBA
    Bonjour,

    Je n'arrive pas trouver comment incrémenter un nom de fichier dans ma macro.
    Je m'explique : je dois mettre à jour une base de données Excel à partir d'un fichier qui change tous les jours de noms
    Exemple :
    aujourd'hui il s'appelle : "Fichier27052013_101033"
    Demain il s'appellera : "Fichier28052013_111133"

    Comment faire car j'ai systématiquement un message d'erreur .
    Voici le code que j'ai enregistré:
    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
    Sub Màj_DCOL()
    '
    ' Màj_DCOL Macro
    '
    '
        Workbooks.Open Filename:= _
            "http://184.7.67.113/DCOL-fr/Extract_Full_DCOL_EUR_FR_20130527_103433.xlsx"
        ActiveWindow.Visible = False
        Windows("Extract_Full_DCOL_EUR_FR_20130527_103433.xlsx").Visible = True
        Range("A1:AZ65000").Select
        Selection.Copy
        Windows("Fiche_Navette.xlsm").Activate
        Sheets("Extract_Full_DCOL_EUR_FR_201303").Select
        ActiveWindow.WindowState = xlMaximized
        Range("A1").Select
        ActiveSheet.Paste
        Sheets("Week").Select
    End Sub

  2. #2
    Membre éclairé Avatar de verredewhisky
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Janvier 2013
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Janvier 2013
    Messages : 63
    Par défaut
    Il faut mettre ton nom de fichier dans des variables et jouer avec ces variables.

    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
    33
    34
    35
    36
    37
    38
     
    Sub Màj_DCOL()
    '
    ' Màj_DCOL Macro
    '
    '
    dim nomFichier as string
    dim numFichier as string
     
    numFichier = "20130527_103433"
     
    ' ici j'ai défini le num du fichier comme constant mais tu peux faire varier
    ' le num du fichier avec une fonction comprenant des if et/ou des while
    ' en fonction des variations de nom du fichier attendues. Exemple :
     
    n = 20130527
    n2 = 103433
    if tunnel = 1 then
    numFichier = n +1 & "_" & n2 + 42 'exemple
    else
    numFichier = 0 & "_" & n2 * 42
    end if
     
    nomFichier = "Extract_Full_DCOL_EUR_FR_" & numFichier & ".xlsx"
     
        Workbooks.Open Filename:= _
            "http://184.7.67.113/DCOL-fr/" & nomFichier
        ActiveWindow.Visible = False
        Windows(nomFichier).Visible = True
        Range("A1:AZ65000").Select
        Selection.Copy
        Windows("Fiche_Navette.xlsm").Activate
        Sheets("Extract_Full_DCOL_EUR_FR_201303").Select
        ActiveWindow.WindowState = xlMaximized
        Range("A1").Select
        ActiveSheet.Paste
        Sheets("Week").Select
    End Sub
    Mets un si tes satisfait de la réponse! Merci

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Avril 2012
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Avril 2012
    Messages : 83
    Par défaut
    Merci de ta réponse mais il faut que je fasse un test.

    Est ce que tu as compris que le numéro qui varie est la date du jour et l'heure à laquelle le fichier est extrait.

    Je fais le test et je te dirais si ça fonctionne.

    En tout cas merci pour cette piste.

  4. #4
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    A mon avis il te faut trouver le moyen de connaitre la date du fichier le plus récent.
    Chose que l'on peut faire avec FSO quand les fichiers sont sur un réseau, mais je sèche quand il s'agit de fichiers sur internet.
    Peut être avec FTP ...

  5. #5
    Membre confirmé
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Avril 2012
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Avril 2012
    Messages : 83
    Par défaut
    Bonjour,
    en mettant les variables ça ne fonctionne pas;

    est ce que en VBA il n'y a pas un caractère spécial pour remplacer un lettre ou un mot comme sur UNIX (%, *)

  6. #6
    Invité
    Invité(e)
    Par défaut
    en mettant les variables ça ne fonctionne pas;
    Bonjour,
    Ça ne peut pas fonctionner, car ton fichier si il est présent sur ton FTP à 6 heure du matin, il aura un nom du genre : Fichier27052013_060000, si tu veux le récupérer à 18 heures, tu prendras la date système pour le retrouver :
    Fichier27052013_180000 donc erreur.
    Il faut regarder sur le serveur si un fichier Fichier27052013_ ??????? Existe !

    Maintenant tape dans IE : http://184.7.67.113/DCOL-fr et regarde si IE te retourne la liste des fichiers ? la solution est peut-être là ?

Discussions similaires

  1. [RegEx] Recuperer le nom d'un fichier dans du code html
    Par skar.theparadiz dans le forum Langage
    Réponses: 6
    Dernier message: 07/01/2009, 19h15
  2. Upload et enregistrement du nom du fichier dans une bdd
    Par johan_barbier dans le forum XMLRAD
    Réponses: 8
    Dernier message: 26/09/2005, 12h02
  3. rechercher d'un nom de fichier dans un répertoire
    Par yerome dans le forum Langage
    Réponses: 7
    Dernier message: 21/07/2005, 11h54
  4. Mettre le nom du fichier dans TextEdit ?? Avec CFileDialog
    Par P'tit Troll dans le forum Windows
    Réponses: 2
    Dernier message: 19/04/2005, 17h32
  5. Réponses: 4
    Dernier message: 10/10/2003, 18h04

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