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 :

ouverture de fichier en fonction des derniers chiffres de l'année [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Points : 367
    Points
    367
    Par défaut ouverture de fichier en fonction des derniers chiffres de l'année
    bonjour à tous

    voila je crée un logiciel de comptabilité pour mon CE
    et je cherche à crée un code qui ouvre un fichier dont le nom évolue en fonction de l'année

    en 2009 le fichier sport s'appelle sport09.xls, il est dans le dossier compta09

    en 2010 il y aura un fichier sport10.xls qui sera dans le fichier compta10.

    donc comment puis-je généré ce code ?

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Bonjour,

    Utilise alors la fonction Dir (à lire d'abord dans ton aide en ligne)
    Elle permet la recherche de fichier dont le nom correspond à un "pattern" admettant des caractère génériques... appelons ce pattern toto

    La seule question qui pourrait se poser alors à toi (après avoir bûché la fonction Dir) serait : comment établir ce pattern .
    Soit n l'année considérée (qui peut être celle en cours, si tu utilise la fonction Year(Date) ===>>
    Je vois que tu ne prends que les 2 derniers chiffres du millésime et je ne vais tout de même pas me lancer ici dans un exposé de comment extraire les deux derniers chiffres d'un string qui en contient 4 ! === >> soit titi la chaîne ainsi extraite ===>>
    Ton "pattern" sera donc, dans ce cas :
    Voilà ....
    Tu as tous les éléments entre tes mains, maintenant ...
    Utilise-les et reviens en nous montrant ton essai de code si tu n'y parviens pas ...

    EDIT :
    Ah oui : pourquoi utiliser la fonction Dir ? ===>> pour vérifier si le fichier existe bien afin de :
    ===>> s'il existe : l'ouvrir
    ====>> s'il n'existe pas : msgbox d'avertissement et quitter la procédure.

  3. #3
    Membre averti Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Points : 367
    Points
    367
    Par défaut
    je touche presque au but
    voici ce que j'ai fait

    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
     
    Option Explicit
    Private Sub CommandButton1_Click()
    'Cette procédure teste si le fichier baule(year).xls" existe
    Dim toto As Integer, titi As Integer
    Dim Fichier As String
     
    toto = Year(Date)
    titi = Right(toto, 2)
     
        Fichier = Dir("c:\compta&titi&\baule&titi&.xls")
           If Fichier <> "" Then
            'le fichier existe
        Else
            'le fichier n'existe pas
        End If
    Workbooks.Open Filename:="c:\compta&titi&\baule&titi&.xls"
    End Sub
    le seul probleme qui me reste est dans la composition du code du nom du fichier (ixci j'ai mis "baule")
    en prenant titi comme variable pour l'annéee (09)
    il me manque l'ecriture propre de la dernière ligne (qui me permetras aussi de ré-ecrire celle qui va avec la variable "fichier")

  4. #4
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    893
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 893
    Points : 833
    Points
    833
    Par défaut
    On écrit le texte littéral entre guillements (") une au début et une à la fin de la chaine texte puis on ajoute l'opérande (&) et enfin la valeur de la variable (titi). On répéte les autres parties.


    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
    Option Explicit
    Private Sub CommandButton1_Click()
    'Cette procédure teste si le fichier baule(year).xls" existe
    Dim toto As Integer, titi As Integer
    Dim Fichier As String
     
    toto = Year(Date)
    titi = Right(toto, 2)
     
        Fichier = Dir("c:\compta" & titi & "\baule" & titi & ".xls")
           If Fichier <> "" Then
            'le fichier existe
        Else
            'le fichier n'existe pas
        End If
    Workbooks.Open Filename:="c:\compta" & titi & "\baule" & titi & ".xls"
    End Sub
    donnera
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c:\compta09\baule09.xls
    ESVBA

  5. #5
    Membre averti Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Points : 367
    Points
    367
    Par défaut
    c'est étrange
    il cherche "compta9\baule9" au lieu de "compta09\baule09" ??

  6. #6
    Membre averti Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Points : 367
    Points
    367
    Par défaut
    j'ai trouvé
    j'ai changé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim toto As Integer, titi As Integer
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim toto As String, titi As String
    impec

    merci a vous

  7. #7
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Merci à toi d'être parmi nous, bosk1000
    Tu viens de démontrer ta capacité à comprendre et à appliquer (j'ai personnellement beaucoup apprécié, en dépit de ta petite erreur de concaténation, maintenant réparée)

  8. #8
    Membre averti Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Points : 367
    Points
    367
    Par défaut
    tes conseils m'ont fait progressé par moi mème en apprenant la fonction dir

    tu m'as donné tout les bons indices
    après il restait la syntaxe comme problème

    merci a toi

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

Discussions similaires

  1. Copie fichiers en fonction des dates modif
    Par keely dans le forum VBScript
    Réponses: 3
    Dernier message: 27/02/2011, 14h05
  2. Découper un fichier en fonction des donnees vers un autre fichier.
    Par samBott dans le forum Administration système
    Réponses: 3
    Dernier message: 05/07/2009, 20h11
  3. Telecharger des fichiers en fonction des checkbox cochées
    Par simos dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 13/01/2009, 15h25
  4. comment lister les fichiers en fonction des droits ?
    Par Ekimasu dans le forum Administration système
    Réponses: 7
    Dernier message: 19/04/2008, 17h12
  5. Ouverture de fichier et désactivation des macros
    Par Aethis dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/07/2007, 11h47

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