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 :

Fonction Indirect nom de feuille variable


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Fonction Indirect nom de feuille variable
    Bonjour à tous,

    Voici quelque temps que je me casse les dents sur la fonction indirect:

    J'ai un code VBA qui permet de générer des feuilles avec un nom variable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim nom_Feuille As String
    nom_Feuille = New_Enfant.TextBox1.Text & "_" & New_Enfant.TextBox2.Text
    Jusqu'ici tout va bien, la feuille est bien généré avec ce nom issu de Userform remplit par l'utilisateur.

    Là ou ca se complique, c'est que j'ai une feuille nomméé "liste" que je souhaite remplir à partir des donnée de ces feuilles avec le nom variable.

    Petit schéma de fonctionnement

    1- Le code génère la feuille "nom_Feuille" et la remplit avec des données
    2- Le code doit remplir une feuille existante nommée "liste" avec les données de "nom_Feuille" (Nom variable)

    Après avoir un peu fouiller sur mon meilleur ami google, je pense que pour faire l'étape 2, il faut que j'utilise la fonction Indirect
    J'ai donc ajouter le nom de la feuille dans une cellule de la feuille "liste" et une variable numero_ligne pour recuperer le nom de la feuille.$
    Colonne AA et Ligne (Numero_Ligne)

    j'essai avec ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.FormulaR1C1 = INDIRECT("AA" & Numero_Ligne & "!" & "D2")
    J'obtient une réponse: Fonction inconnu ou end sub....


    Vous avez une idée?

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut cazimiro33 et le forum
    Regarde sur l'aide Formula, FormulaR1C1, Formulalocal
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.Formulalocal = INDIRECT("'" & "AA" & Numero_Ligne & "'!D2")
    Je suppose que ta formule renvoi le texte en AA & Numero_Ligne (pour le nom de la feuille ?
    Moi je préfère utiliser Adresse() quand ma variable est un nom de feuille
    A+

  3. #3
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Il me semble, déjà, voir une grosse erreur de syntaxe.
    La formule à assigner est une String (donc guillemets) et doit commencer par le signe =.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.FormulaR1C1 = "=INDIRECT(...)"

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut AlainTech et le forum
    Il me semble, déjà, voir une grosse erreur de syntaxe
    S'il n'y avait que ça....
    Il faut toujours vérifier les infos que l'on donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A1").FormulaLocal = "=INDIRECT(ADRESSE(2;4;;;"""AA"" & Numero_Ligne))"
    Devrait être mieux
    A+

Discussions similaires

  1. Réponses: 4
    Dernier message: 31/12/2010, 17h24
  2. [Toutes versions] formule vba avec nom de feuille variable
    Par leptitdave dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/08/2009, 12h30
  3. [XL-2003] Fonction INDIRECT sur plusieurs feuilles
    Par Sécateur dans le forum Excel
    Réponses: 3
    Dernier message: 12/06/2009, 09h03
  4. Utiliser un nom de feuille variable dans une formule
    Par DubDub dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/02/2009, 19h46
  5. Réponses: 3
    Dernier message: 26/08/2008, 19h21

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