Excel Formule comportant le nom d'une feuille

Fermé
INFSON Messages postés 19 Date d'inscription lundi 17 août 2020 Statut Membre Dernière intervention 1 avril 2023 - 24 août 2021 à 19:16
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 - 31 août 2021 à 22:29
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
A voir également:

5 réponses

Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 111
Modifié le 24 août 2021 à 19:56
Bonsoir,

essaye comme cela

=INDIRECT(A2&"!"&"B2")


en colonne A à partir de A2 le nom de ton premier onglet
0
INFSON Messages postés 19 Date d'inscription lundi 17 août 2020 Statut Membre Dernière intervention 1 avril 2023
29 août 2021 à 18:46
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
0
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 111
Modifié le 29 août 2021 à 19:29
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 simple
Sub test()
ActiveCell.Offset(0, 2).Value = Sheets(ActiveCell.Value).[B2]
End Sub

ou tu fais une boucle
For 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 encore
On 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
0
INFSON Messages postés 19 Date d'inscription lundi 17 août 2020 Statut Membre Dernière intervention 1 avril 2023
Modifié le 31 août 2021 à 19:48
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 111
31 août 2021 à 22:29
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
0