Fonction indirect VBA Excel feuille nom variable

Résolu
cazimiro Messages postés 8 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 15 septembre 2008 - 15 sept. 2008 à 13:15
cazimiro Messages postés 8 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 15 septembre 2008 - 15 sept. 2008 à 16:04
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.

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 récupérer le nom de la feuille.
Colonne AA et Ligne (Numero_Ligne)

j'essaie avec ce code:

ActiveCell.FormulaR1C1 = INDIRECT("AA" & Numero_Ligne & "!" & "D2")

J' obtient une réponse: Fonction inconnu ou end sub....

Vous avez une idée?
A voir également:

4 réponses

cazimiro Messages postés 8 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 15 septembre 2008
15 sept. 2008 à 16:04
Bon j'ai trouvé la réponse :

il faut remplacer FormulaR1C1 par Formula (ça fera disparaitre les apostrophes)


La fonction INDIRECT interprète un texte comme une référence de plage
de cellules. Elle n'est pas indispensable ici, on pourrait trés bien
mettre


ActiveCell.Formula = "='" & Nom_Feuil & "'!D2"
3
Rejoignez-nous