Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Fonction Indirect nom de feuille variable

  • Initiateur de la discussion Initiateur de la discussion cazimiro33
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

cazimiro33

Guest
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 recuperer le nom de la feuille.$
Colonne AA et Ligne (Numero_Ligne)

j'essai 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?
 
Re : Fonction Indirect nom de feuille variable

Bonjour cazimiro33,

bon, déjà, pour mettre une formule dans une cellule en VBA, ça s'écrirait plutôt comme ça :

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

maintenant, je ne comprend pas du tout ta formule. Si tu nommes ta feuille Nom_Feuille, pourquoi mettre AA dans la formule ?
Que vient faire un numéro de ligne avant le "!" ?
veux-tu absolument mettre une formule dans ta feuille ou simplement aller chercher une bonne fois la valeur dans l'autre feuille ?
 
Re : Fonction Indirect nom de feuille variable

Exemple:
Je lance la macro
1- Création d'une feuille nommée TRUC1 (Truc1 étant un nom variable) avec dans la case D2 une valeur
2- Ajout dans la feuille "liste" dans la case B3 par exemple la valeur de truc1!D2

Est ce que ca répond à votre question?
 
Re : Fonction Indirect nom de feuille variable

et pouquoi votre code (désolé pour le tutoiement, c'est mon habitude sur le forum) n'utilise pas directement la variable Nom_Feuille (qui contient TRUC1) pour construire la formule INDIRECT et préfère aller chercher dans une cellule de la feuille Liste ?
 
Re : Fonction Indirect nom de feuille variable

Quelques précisions:

Lorsque l'on modifie la valeur de nomfeuille / D2 celle ci doit être automatiquement affectée à la feuille "liste" par exemple en B3
 
Re : Fonction Indirect nom de feuille variable

J'avais tenté au depart de passer directement par nomFeuille, mais apparement, cela ne fonctionnait pas.

Note: J'ai testé la solution du dessus:
la sortie est =INDIRECT("AA7!D2") j'ai des guillemets en trop....
 
Re : Fonction Indirect nom de feuille variable

désolé, donc AA7 est la cellule contenant le nom de la feuille concerné, j'avais pas bien compris.

Essayez :

ActiveCell.FormulaR1C1 ="=INDIRECT(AA" & Numero_Ligne & "&""!D2"")"
 
Re : Fonction Indirect nom de feuille variable

Résultat de la nouvelle solution:

=INDIRECT('AA8'&"!D2")


Je reconnais être un peu perdu sur le fonctionnement de INDIRECT.
 
Re : Fonction Indirect nom de feuille variable

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"
 
Re : Fonction Indirect nom de feuille variable

Question subsidiaire:

1- Si au lieu de "D2" je veux mettre "d" Numero_ligne (étant une variable)
2- Si au lieu de "D2" je veux mettre Case_Numero (étant une variable)

1-
ActiveCell.FormulaR1C1 = "='" & nom_Feuille & "'!A" & Numero_ligne ????????


2-
ActiveCell.FormulaR1C1 = "='" & nom_Feuille & Case_Numero ??????


Note: J'ai testé et j'ai encore mes problèmes de guillemets
 
Re : Fonction Indirect nom de feuille variable

1- oui mais Formula, pas FormulaR1C1 (R1C1 veut dire Mode L1C1, c'est à dire des adresses de cellules du type L1C1 à la place de A1)

2- si Case_Numero contient quelque chose comme "A2"
ActiveCell.Formula = "='" & nom_Feuille & "'!" & Case_Numero
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

D
  • Question Question
Réponses
5
Affichages
216
Didierpasdoué
D
  • Question Question
XL 2021 listbox
Réponses
18
Affichages
646
Réponses
3
Affichages
203
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…