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 :

Nom de fichier variable


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 14
    Par défaut Nom de fichier variable
    Bonjour,

    J'ai besoin de votre aide, car je n'arrive pas à comprendre où est l'erreur

    J'ai le code suivant qui me permet de copier des colonnes de différents fichiers dans mon fichier actuel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Workbooks.Open "Z:\Rep\Function\" & Sheets(1).Range("A2").Text & "\" & Sheets(1).Range("A1").Text & "\Class\Function - 0001X - " & Sheets(1).Range("A1").Text & " " & Sheets(1).Range("A2").Text & ".xls"
    ' Copie des données :
    Workbooks("Function - 0001X - June 2013.xls").Sheets("FCR - Main").Range("F14:G54").Copy
    Workbooks("Test12.xls").Activate
    Workbooks("Test12.xls").Sheets("MONTHLY").Range("C7").Select
    Workbooks("Test12.xls").Sheets("MONTHLY").Paste
    ' Fermeture du 1er fichier :
    Workbooks("Function - 0001X - June 2013.xls").Close
    Ce code marche bien pour ce que je veux faire, à savoir ouvrir un fichier en fonction qui se trouve dans des dossiers ANNEE puis MOIS où le mois est renseigné dans mon fichier en case A1 et l'année en case A2....

    Seulement sur cette ligne de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ' Copie des données :
    Workbooks("Function - 0001X - June 2013.xls").Sheets("FCR - Main").Range("F14:G54").Copy
    J'aimerais faire la même chose que sur la ligne d'avant, à savoir récupérer au lieu de "June" ce qu'il y a en case A1 et au lieu de "2013" ce qu'il y a en A2
    mais ce
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    " & Sheets(1).Range("A1").Text & " " & Sheets(1).Range("A2").Text & ".xls"
    qui marche pour le première ligne de code, me signale sur la ligne 3 une erreur "l'indice n'appartient pas à la sélection" alors que j'ai bien tout vérifier sur des éventuelles erreurs liées au nom du fichier ou un espace manquant...rien


    Pouvez-vous svp me dire pourquoi ça ne marche pas et me trouver une solution car n'étant pas du tout expert en VBA j'ai des difficultés à trouver une parade


    Edit : En gros je veux dans ceci "Workbooks("Function - 0001X - June 2013.xls").Sheets("FCR - Main").Range("F14:G54").Copy" mettre A1 à la place de "June" et A2 à la place de "2013"


    Merci d'avance.
    Cordialement.

  2. #2
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    bonjour,
    j'essaierai ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    fichier = "Function - 0001X - " & Sheets(1).[A1].Value & " " & Sheets(1).[A2].Value & ".xls"
    Workbooks(fichier).Sheets("FCR - Main").Range("F14:G54").Copy

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 14
    Par défaut
    Bonjour et merci d'avoir pris le temps de me répondre...

    J'ai essayé avec votre code mais j'ai la même erreur sur cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(fichier).Sheets("FCR - Main").Range("F14:G54").Copy
    et lorsque dans votre code je remplace " & Sheets(1).[A1].Value & " " & Sheets(1).[A2].Value & ".xls" par June 2013.xls ceci marche...

    Le problème vient bien donc de cette ligne


  4. #4
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    en ouvrant le fichier il devient le fichier actif, il suffit de
    de récupérer son nom:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    fichier = ActiveWorkbook.Name
    Workbooks(fichier).Sheets("FCR - Main").Range("F14:G54").Copy

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 14
    Par défaut
    Bravo c'était ça qu'il fallait faire

    Je vous remercie de l'aide apporté, maintenant peut-être que vous sauriez également me dire (je sais je suis embétant)

    Mais j'aimerais au lieu de copier à partir d'une valeur recopier à partir d'une case bien précise car dans certains cas, il faudrait (par exemple) que ça recopie à partir de F16=>G56

    En gros dans notre exemple précédent en F12 et G12 il y a deux noms de colonnes et je voudrais dire à la macro : Copie moi à partir de ces NomsDeColonne + 2 (vers le bas)

    Je ne sais vraiment pas si c'est possible ni comment faire alors par tout hasard je vous demande

    Merci encore d'avance de prendre le temps de me lire

    Edit : J'ai peut-être trouvé une piste avec Cells.find(What:"TitreColonne") finalement ce n'est peut-être pas la bonne solution car je n'arrive pas à la faire marcher et je trouve rien sur internet :/

Discussions similaires

  1. [WD15] Chaines de caractères / Nom de FICHIER variable
    Par EriCstoFF dans le forum WinDev
    Réponses: 17
    Dernier message: 29/03/2011, 13h26
  2. [VBA]-Enregistrement d'un nom de fichier variable
    Par marc56 dans le forum Excel
    Réponses: 2
    Dernier message: 10/08/2007, 08h54
  3. Ouvrir fichier ( nom du fichier variable )
    Par kilian dans le forum C++
    Réponses: 2
    Dernier message: 24/05/2006, 11h21
  4. Nom de fichier variable!
    Par melphit dans le forum C++
    Réponses: 1
    Dernier message: 16/04/2006, 10h37
  5. Nom de fichier variable.
    Par ::Fistons dans le forum Langage
    Réponses: 4
    Dernier message: 05/04/2006, 11h32

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