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 :

Définir le nom d'un fichier à partir d'une cellule [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 76
    Points : 53
    Points
    53
    Par défaut Définir le nom d'un fichier à partir d'une cellule
    Bonjour,


    N'étant pas un grand pro de VBA, j'ai besoin de votre aide.

    Je dispose d'un fichier excel par semaine nomé : Tot sem...xls


    Ma macro contient les lignes suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
       Application.Workbooks.Open ("\\....\Tot sem43.xls")
    ' ...
     
    Windows("Tot sem43.xls").Activate

    J'aimerais pouvoir choisir le N° de semaine (43) à partir d'une case dans mon fichier Excel.

    Ps : la case contient le n° de la semaine (43, 44 etc...)


    Pouvez-vous m'aider svp?

    cordialement

  2. #2
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Bonjour,
    Le mot clef (si tu veux faire un recherche pour comprendre) concaténation de chaine de caractère, en VBA le symbole est &

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Workbooks.Open ("\\....\Tot sem" & Range("A1") & ".xls")
    Remplace A1 par ton adresse

    Ensuite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Windows(Tot sem" & Range("A1") & ".xls").Activate
    Edit
    Bonjour HurGeek encore croisé. Par contre tu pourrais répondre au lieu de citer systématquement? Le bouton ajouter réponse (fin de la discution a droite) au lieu de Citer ou alors supprime la citation. le message auquel tu réponds on la déjà lu

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 58
    Points : 56
    Points
    56
    Par défaut
    Bonjour Gandalf,

    Si la cellule possédant le numéro s'appelle (par exemple) RGE_NUMERO_SEMAINE voici ce qu'il faut faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    dim str_NomClasseur as string
     
    str_NomClasseur="Tot sem" & range("RGE_NUMERO_SEMAINE").value
     
    Application.Workbooks.Open ("\\....\" & str_NomClasseur)
    ..
     
    Windows(str_NomClasseur).Activate
    Tu peux également mettre en paramétre dans une cellule le nom de base du classeur (Tot sem) si il peux être ammené à être modifié plus tard

    Edit : krovax a été plus rapide

  4. #4
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 76
    Points : 53
    Points
    53
    Par défaut
    Rebonjour,

    merci pour votre aide a tous les deux, j'ai finalement utliser cette méthode qui était plus simple à mon gout.

    Citation Envoyé par Krovax Voir le message
    Bonjour,
    Le mot clef (si tu veux faire un recherche pour comprendre) concaténation de chaine de caractère, en VBA le symbole est &

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Workbooks.Open ("\\....\Tot sem" & Range("A1") & ".xls")
    Remplace A1 par ton adresse

    Ensuite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Windows(Tot sem" & Range("A1") & ".xls").Activate
    Edit
    Bonjour HurGeek encore croisé. Par contre tu pourrais répondre au lieu de citer systématquement? Le bouton ajouter réponse (fin de la discution a droite) au lieu de Citer ou alors supprime la citation. le message auquel tu réponds on la déjà lu


    j'ai une nouvelle question, toujours concernant la meme chose.

    J'aimerais maintenant sauvegarder un fichier sous un nom précis dans un endroit précis.

    j'ai donc réaliser l'opération avec l'enregistreur de macro, puis modifier le nom du fichier avec le systeme utiliser précédement, mais cela ne fonctionne pas vraiement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    ' Range "Libellesave" contient le nom du fichier que je désire
        ActiveWorkbook.SaveAs Filename:= _
            "D:\uxxxxxx\Bureau\poubelle\" & Range("libellesave"), FileFormat:=xlNormal, _
            Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
            CreateBackup:=False
    'Je pense qu'un des problèmes viens du faite que le range "Libellesave" est situé sur un autre classeur et qu'il n'y a pas de plage "libellesave" dans le classeur a sauvegarder.

    J'ai tenter cette macro, mais ca ne marche pas

    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
     
    Sub test2()
     
     'Note : je ne suis pas du tout familier avec les fonction Dim, string etc...
     
    Windows("stocks_2009_10.xls").Activate
     
     
    Dim libellesave As String
    Dim save As String
     
    Sheets("UNE").Select
    libellesave = Range("B6")
    saved = "D:\uxxxxxx\Bureau\poubelle\stock" & libellesave & ".xls"
     
     
    Windows("data_stock.xls").Activate
     
     
    Application.Workbooks.SaveAs saved
     
     
    End Sub

  5. #5
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Bonjour,
    dans le code de l'enregistreur saveas s'applique a 1 classeur en particulier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    workbooks("NomDuClasseur").saveas
    Il peut être utile dans ton code de préciser quel classeur enregistrer non?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Workbooks("Nomduclasseurasauvegarder").SaveAs saved
    Au passage pour éviter les activate et autre truc inutile
    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
    Sub test2()
     
     'Note : je ne suis pas du tout familier avec les fonction Dim, string etc...
    're note ce sont des déclarations de variable pas des fonctions ;)
     
    Dim libellesave As String
    Dim save As String
     'au lieu de dire acticve tel classeur
    'selectionner telle feuille
    'selectionner telle cellule
    'on pêu dire directement telle cellule de telle feuille de tel classeur
    libellesave = Windows("stocks_2009_10.xls").Sheets("UNE").Range("B6")
    saved = "D:\uxxxxxx\Bureau\poubelle\stock" & libellesave & ".xls"
     
     
    Workbooks(("data_stock.xls")).SaveAs saved
     
     
    End Sub

  6. #6
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 76
    Points : 53
    Points
    53
    Par défaut
    Merci pour l'aide, j'ai bien réussi à faire ce que je voulais!

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

Discussions similaires

  1. [PHP 5.3] Obtenir le nom d'un fichier à partir d'une url dynamique
    Par Invité dans le forum Langage
    Réponses: 3
    Dernier message: 19/03/2012, 11h02
  2. Réponses: 3
    Dernier message: 19/03/2008, 15h41
  3. Réponses: 5
    Dernier message: 03/05/2007, 13h44
  4. Récupérer le nom d'un fichier à partir de son chemin
    Par Jiraiya42 dans le forum Langage
    Réponses: 2
    Dernier message: 31/03/2007, 11h38
  5. Réponses: 6
    Dernier message: 05/05/2006, 14h47

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