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 :

Exécuter macro avec nom du fichier ouvert : prob de variable


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Exécuter macro avec nom du fichier ouvert : prob de variable
    Bonjour à tous,

    Je suis en train de faire une macro pour copier coller en valeur des données d'un fichier nommé "EVS04" dans le dossier avril
    Cette manip sera faite tous les mois, mais le mois prochain mon fichier sera "EVS05" et le chemin d'accès sera : dossier mai

    Ma macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Windows("Evs_Cumul042011.xls").Activate
        Sheets("48281").Select
        Cells.Select
        Range("A76").Activate
        Application.CutCopyMode = False
        Selection.Copy
        Windows("EVS a envoyer.xls").Activate
        Sheets("48281").Select
        ActiveSheet.Paste
        Application.CutCopyMode = False
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    Mon problème c'est que le nom du fichier est fixe et qu'avec mon prochain fichier EVS05 la macro ne va pas me prendre les données de ce nouveau fichier !

    Pourriez vous m'aidez ??

    Mille merci !

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 910
    Points : 28 889
    Points
    28 889
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pour créer un nom en fonction d'une date.
    Partons de l'hypothèse que tu veuilles créer un nom combinant une chaîne de caractères ici "EVS" avec le n° du mois en cours précédé d'un zéro pour les numéros de mois inférieurs à 9.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim NumMonth As String, FileName As String
    NumMonth = Format(Month(Date), "00")
    FileName = "EVS" & NumMonth
    MsgBox FileName
    Et bien entendu, il y a plus court
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FileName = "EVS" & Format(Month(Date), "00")
    MsgBox FileName

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    youai merci beaucoup !!

    par contre le fichier EVS04 est dans le dossier Avril et le prochain EVS05 sera dans le dossier Mai.

    Je supporse qu'il y a un petit code a rajouté pour que la macro marche, où il suffit que j'ai le fichier EVS05 d'ouvert?

  4. #4
    Membre habitué
    Homme Profil pro
    Consultant comptable
    Inscrit en
    Mai 2011
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant comptable

    Informations forums :
    Inscription : Mai 2011
    Messages : 137
    Points : 160
    Points
    160
    Par défaut
    le dossier se nomme "avril" ou "04" ?
    car il suffit juste que tu mette en variable pour le chemin d'acces
    pour obtenir le mois en lettre :


  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Le dossier dans lequel contien EVS04 s'appelle 04.Avril et le dossier de EVS05 sera 05.Mai (pour qu'ils restent classés chronologiquement je suis obligée de mettre les mois en chiffres en plus)

    je dois donc faire en sorte que la maccro prenne les données des feuilles du fichier EVS en cours qui se trouve dans le dossier du mois en cours, et ne reste pas sur les données des feuilles de EVS04 dans le fichier 04.Avril

    Merci

    Bonne journée à tous

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 910
    Points : 28 889
    Points
    28 889
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Code pour donner le nom du répertoire et du fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     Dim FileName As String, FolderName As String, txt As String
     ' Nom du fichier
     FileName = "EVS" & Format(Month(Date), "00")
     txt = "Classeur...: " & FileName & vbCrLf
     ' Nom du répertoire
     FolderName = Format(Now(), "mm") & "_" & Format(Now(), "mmmm")
     txt = txt & "Répertoire : " & FolderName
     MsgBox txt
    Attention toutefois que si tu travailles dans une entreprise internationale où il y a des versions Anglaise et française qui cohabitent le nom des mois va poser des problèmes mai ou May. Il y a alors d'autres méthodes pour éviter cela.
    Petite suggestion :
    Je n'ai pas compris pourquoi tu extrais les données de Mai du classeur EVS04 pour les coller sur EVS05 . Ne serait-il pas plus facile d'avoir une feuille ou un classeur EVS, par exemple, et de faire alors une copie ou un déplacement de la feuille vers le classeur du mois en cours EVS05
    Avec ce code qui copie ou déplace vers un nouveau classeur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets("EVS").Copy 'Copie
    Sheets("EVS").Move 'Déplacement
    Ensuite tu sauves ce nouveau classeur avec le nom EVSmm dans le répertoire mm_mmmm

  7. #7
    Nouveau Candidat au Club
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Merci pour votre aide !

    Alors en fais j'ai des dossiers mensuel 04Avril 05Mai... et dans ce dossier mensuel j'ai plusieurs fichier dont EVS"mois"

    le fichier EVS"mois" comporte énormément de feuilles donc je ne peux pas faire 1 fichier unique plus des feuille par mois.

    Je vais faire des tests avec les dernières info que vous m'avez donner.

    Merci beaucoup

    j'ai testé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks.Open "Q:\GUILLAUME\sdiard\EVS\2011\" & Format(Month(Date), "00") & " " & Format(Date, "mmmm") & "\EVS " & Format(Month(Date), "00").xls
    Mon chemin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Q:\GUILLAUME\sdiard\EVS\2011\04 Avril fichier EVS04.xls
    le mois prochain
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Q:\GUILLAUME\sdiard\EVS\2011\05 Mai fichier EVS05.xls
    Ca sera plus clair pour vous je pense

    Merci

  8. #8
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 910
    Points : 28 889
    Points
    28 889
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Juste pour l'info, ces trois syntaxes donnent le même résultat évidemment.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Debug.Print Format(Date, "mm")
    Debug.Print Format(Month(Date), "00")
    Debug.Print Format(Now(), "mm")
    Si j'ai bien compris, tu as la solution à ton problème et le fil est donc clôturé.

  9. #9
    Nouveau Candidat au Club
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    non mon code de chemin de fichier bloque

    il y aurait une erreur ? peut être par rapport au fichier qui a comme nom le mois (ex: 04 Avril), j'ai juste mis :

    " & Format(Month(Date), "00") & " " & Format(Date, "mmmm") & "

  10. #10
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 910
    Points : 28 889
    Points
    28 889
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pour cela, tu dois utiliser la fonction date qui te permets de calculer le mois précédent la date du jour.
    La lecture de ce didacticiel t'éclairera

Discussions similaires

  1. [XL-2003] Macro pour imprimer en pdf avec nom de fichiers variables
    Par YoTaPi dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/07/2014, 18h50
  2. Réponses: 2
    Dernier message: 01/07/2010, 18h05
  3. Réponses: 29
    Dernier message: 21/10/2008, 17h36
  4. Appel d'une fonction C avec nom de fichier en paramètre
    Par vince3320 dans le forum Fortran
    Réponses: 4
    Dernier message: 21/11/2006, 14h58
  5. [VBA][Excel]Exécution macro avec fichiers source
    Par ouezon dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/12/2005, 00h00

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