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 :

Table - faire référence à un Classeur dont le nom comporte des espaces [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Femme Profil pro
    reconversion en cours
    Inscrit en
    Juillet 2009
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : reconversion en cours
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 637
    Par défaut Table - faire référence à un Classeur dont le nom comporte des espaces
    Bonjour,
    J'utilise beaucoup de tableau (ex Liste dans Excel 2003), car c'est plus parlant de faire référence à un nom de champ plutôt qu'un N° de colonne.
    Donc j'utilise beaucoup la forme Range("[NomFichierSansExtension]NomDeFeuille!NomDeTable[Champ]")

    Dans le cas qui me préocupe, je veux copier / coller d'un classeur dans un autre.

    Ainsi, j'ai écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("[Récup]BddRecup!TbRecup[[ContTrait]:[PostTraitT]]").copy
    Range("[TestSource]Traitmt!TbTeste[[ContTrait]:[PostTraitT]]").PasteSpecial Paste:=xlPasteFormats
    cela fonctionne parfaitement ; sauf que mes fichiers ne s'appelle pas TestSource, mais Test Source S01
    Mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("[Récup.xlsx]BddRecup!TbRecup[[ContTrait]:[PostTraitT]]").copy
    Range("[Test Source S01]Traitmt!TbTeste[[ContTrait]:[PostTraitT]]").PasteSpecial Paste:=xlPasteFormats
    ne fonctionne plus.
    Est-ce que quelqu'un connait la solution ou vais-je devoir renommer un grand nombre de fichier et modifier les macros qui nomment ces fichiers ?

    Merci d'avance pour votre aide.
    NB : j'ai bcp aimé le dossier Les tableaux dans Excel 2007

  2. #2
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 572
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 572
    Par défaut
    Bonjour

    Il faut encadrer le nom du classeur et de la feuille par des '
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("'[Test Source S01]Traitmt'!TbTeste[[ContTrait]:[PostTraitT]]")

  3. #3
    Membre éclairé
    Femme Profil pro
    reconversion en cours
    Inscrit en
    Juillet 2009
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : reconversion en cours
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 637
    Par défaut
    Bonjour Chris,
    Désolée, j'ai du m'absenter et je n'ai pas pu tester avant. Merci beaucoup pour ta réponse.

    j'avais bien essayé de mettre des ' mais pas entre le nom de la feuille et le point d'exclamation...

    de plus, j'ai du ajouter les extenstions de fichier pour que cela fonctionne. Je n'ai pas bien compris quand il faut les mettre et quand ce n'est pas nécessaire.

    Pour le fun, comme mon nom de fichier change chaque semaine, il faut ajouter une variable, ce qui donne (je le mets si ça peut servir...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim Sem As string
    Sem = Sheets("A_Recup").Range("A1")
    Range("[Récup.xlsx]BddRecup!TbRecup[[ContTrait]:[PostTraitT]]").Copy
    Range("'[Test Source S" & Sem & ".xlsx]Traitmt'!TbTeste[[ContTrait]:[PostTraitT]]").PasteSpecial Paste:=xlPasteFormats
    Application.CutCopyMode = False
    Si ce n'est pas abuser, j'aurais une autre question, stp.
    comment compte-t-on le nombre de ligne d'un tableau liste ; j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a = Sheets("A_Recup").Cells(Rows.Count, [DateRec])
    ou DateRec représente le nom du champ de la colonne

  4. #4
    Membre éclairé
    Femme Profil pro
    reconversion en cours
    Inscrit en
    Juillet 2009
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : reconversion en cours
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 637
    Par défaut
    Je viens de trouver la solution à ma 2ème question.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a = Range("[Récup.xlsx]BddRecup!TbDatRec").Rows.Count
    Merci encore, à bientôt

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 14/04/2014, 14h17
  2. [SQL] Proc SQL sur des variables dont le nom contient des espaces
    Par Oreo_ dans le forum SAS Base
    Réponses: 3
    Dernier message: 23/05/2013, 16h20
  3. Réponses: 3
    Dernier message: 26/07/2011, 19h27
  4. Réponses: 1
    Dernier message: 06/09/2010, 17h48
  5. Réponses: 2
    Dernier message: 10/04/2007, 15h32

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