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 :

Variable dans une formule pour autre fichier ouvert [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Dévelopeur Excel
    Inscrit en
    Juillet 2016
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Dévelopeur Excel

    Informations forums :
    Inscription : Juillet 2016
    Messages : 27
    Par défaut Variable dans une formule pour autre fichier ouvert
    Bonjour à tous

    Je souhaiterais modifier une formule en y intégrant un nom de fichier variable
    Je précise que le fichier "Devis Facture" change de nom après saisie, mais je veut pouvoir le modifier tout en interagissant avec les fichier "clients"
    Ce qui marche sans la variable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.FormulaR1C1 = "='[Devis facture.xlsm]Menu'!R14C19"

    En sachant que plus haut j'ai la formule dans une variable String
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Form1 = Range("R28").Value
    Je précise également que cette formule et issue d'une concaténation
    [Devis facture.xlsm]Menu'!R14C19

    Le Code qui ne fonctionne pas est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Clients").Range("D7").Formula = "='" & Form1

    Quand j’essaie Excel m'ouvre une boite de dialogue (mettre à jour le fichier)
    Quelqu'un aurait il une idée?


    Cordialement Eric

  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
    13 179
    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 : 13 179
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    La lecture de ce billet t'inspirera peut-être Ecrire une formule dans Excel à l'aide d'une procédure VBA (Part 2).
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre averti
    Homme Profil pro
    Dévelopeur Excel
    Inscrit en
    Juillet 2016
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Dévelopeur Excel

    Informations forums :
    Inscription : Juillet 2016
    Messages : 27
    Par défaut
    Bonjour et merci de votre réponse

    J'ai tenté de doubler les " mais ça me renvoie faux dans la cellule cible

    Après j'avoue que ce qui est expliqué après dans le tuto dépasse mes compétences.

    Cordialement Eric

  4. #4
    Membre expérimenté Avatar de EBRAG
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Avril 2013
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 125
    Par défaut
    Bonjour,

    Ce pourrait être intéressant de savoir ce qu'il y a exactement dans la cellule "R28" ??


    http://garbe.joel.free.fr

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 179
    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 : 13 179
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    J'ai tenté de doubler les " mais ça me renvoie faux dans la cellule cible
    Si tu affichais le code, ce serait plus simple pour t'aider.

    Après j'avoue que ce qui est expliqué après dans le tuto dépasse mes compétences
    J'explique simplement dans ce billet comment remplacer des balises qui représentent les parties variables (ce que tu cherches à faire) par les valeurs variables grâce à la fonction Replace

    Exemple simple
    Imaginons un texte qui contiendrait une partie constante et une partie variable.
    La partie constante "Je m'appelle " et la partie variable est le prénom par exemple "Jean" ou "Pierre"
    En VBA sous forme de fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Function ReplaceBalise(FirstName As String) As String
     Const txt As String = "Je m'appelle <Prenom>"
     ReplaceBalise = Replace(txt, "<Prenom>", FirstName)
    End Function
    et la petite procédure pour l'invoquer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Test()
     MsgBox ReplaceBalise("Pierre")
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  6. #6
    Membre averti
    Homme Profil pro
    Dévelopeur Excel
    Inscrit en
    Juillet 2016
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Dévelopeur Excel

    Informations forums :
    Inscription : Juillet 2016
    Messages : 27
    Par défaut
    Re

    Grâce à vos réponses j'ai fini par trouver
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("Clients.xlsm").Worksheets("Clients").Range("D7").FormulaR1C1 = "='[" & nomfichier & "]Menu'!R14C19"
    En fait au départ je mettait la formule complète dans la variable "form1"

    En fait il fallait extraire le nom du fichier et l'inclure entre & sans oublier les balises"

    Cordialement Eric

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

Discussions similaires

  1. [Réfermé] Variable dans une formule
    Par zs_silver dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 09/01/2008, 17h09
  2. Variable dans une view ou autre idée
    Par thegreatbato dans le forum Oracle
    Réponses: 10
    Dernier message: 14/12/2007, 09h22
  3. comment ecrire une variable dans une formule ?
    Par Djohn dans le forum Excel
    Réponses: 12
    Dernier message: 10/10/2007, 12h55
  4. [VBA-E]Utiliser une variable dans une formule
    Par bossu dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 04/06/2006, 15h25
  5. [VBA]Passer une variable dans une formule Excel
    Par David1974 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/01/2006, 16h52

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