Excel Formule comportant le nom d'une feuille
INFSON
Messages postés
23
Statut
Membre
-
Mike-31 Messages postés 18405 Date d'inscription Statut Contributeur Dernière intervention -
Mike-31 Messages postés 18405 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour
J'ai dans la "feuil1" de mon classeur une colonne E comportant la liste des noms de feuille de mon classeur
je souhaiterai récupérer dans la feuille 1 en regard de chaque ligne la valeur de la cellule B2 de chacune des feuilles sans avoir à taper
chaque fois le nom de la feuille dans la formule =nom de feuille!B2
Est-il possible de faire ça sans passer par du code VBA ?
Merci d'avance
J'ai dans la "feuil1" de mon classeur une colonne E comportant la liste des noms de feuille de mon classeur
je souhaiterai récupérer dans la feuille 1 en regard de chaque ligne la valeur de la cellule B2 de chacune des feuilles sans avoir à taper
chaque fois le nom de la feuille dans la formule =nom de feuille!B2
Est-il possible de faire ça sans passer par du code VBA ?
Merci d'avance
5 réponses
-
Bonsoir,
essaye comme cela
=INDIRECT(A2&"!"&"B2")
en colonne A à partir de A2 le nom de ton premier onglet
-
Bonjour
Merci mais ça ne fonctionne pas
j'ai essayé en VBA
Sub test()
Dim i As Variant
'position nement en colonne C
ActiveCell.Select
'récupération de la valeur de l'onglet en colonne E
i = ActiveCell.Offset(0, 2).Value
'affectation de cette valeur à la cellule selectionnée en colonne C
ActiveCell.Value = [i!B2]
End Sub
ça plante également à ce niveau ActiveCell.Value = [i!B2]
Cordialement -
Re,
je viens de retester ma formule qui fonctionne parfaitement;
si tu as colonne E à partir de E2 la liste des noms de tes onglets il n'y a pas de problème sauf si les noms saisis colonne E et le nom des onglets ne sont pas parfaitement identiques
et la formule est bien=INDIRECT(E2&"!"&"B2")
si tu n'arrives pas à adapter, le mieux serait de mettre à disposition un exemple de ton fichier et le problème sera le même s'il y a une différence entre les deux rapports
autrement la ligne de commande en VBA est toute simpleSub test() ActiveCell.Offset(0, 2).Value = Sheets(ActiveCell.Value).[B2] End Sub
ou tu fais une boucleFor Each cel In Range("E2:E4") cel.Offset(0, 2).Value = Sheets(cel.Value).[B2] Next cel
et si tu veux prévoir des onglets qui n'existent pas encoreOn Error Resume Next For Each cel In Range("E2:E20") cel.Offset(0, 2).Value = Sheets(cel.Value).[B2] Next cel
on pourrait également faire un code qui s'adapterait à la colonne, tu vois que les solutions sont multiples
-
Bonjour
Effectivement la fonction =INDIRECT(F2&"!"&"B2") fonctionne
Merci pour cette fonction que est déjà une excellente solution
J'ai testé le vba ça fonctionne aussi
J'ai adapté pour correspondre à mon souhait de voir le résultat en colonne B de l'onglet Sommalre
( par ailleurs mes noms d'onglets sont en fait dans colonne F et non E )
Ci-dessous le fichier test dans lequel j'ai mis le code
fichier c-joint
https://www.cjoint.com/c/KHFrT0AqAT4
Grand merci pour ton aide efficace
Cordialement -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Re,
Récupère ton fichier, j'ai mis le code test2 directement dans les propriétés d'un bouton ActiveX, clic sur le bouton et les dates colonne B s'actualiseront
https://www.cjoint.com/c/KHFuzUqMYyF
j'ai également corrigé le code test1 et test2