Question Excel renvoi de feuille à feuille

carlos33 Messages postés 72 Date d'inscription vendredi 25 avril 2008 Statut Membre Dernière intervention 15 juin 2010 - 30 avril 2010 à 09:23
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 - 30 avril 2010 à 10:31
Bonjour,

Je cherche à créer un outil de suivi sur Excel.

Pour cela, je dispose de données comptables concernant chaque mois (de janvier à décembre).
Est-ce possible de faire une formule qui vienne choisir une feuille dont le nom se trouve dans une cellule ?
Je m'explique :
- sur la feuille 'Tableau 1', en cellule B4, j'ai la formule ='Janvier'!A1
- dans une autre cellule sur la feuille Tableau 1, je choisis le mois (exemple : une liste déroulante en cellule B1, qui propose les 12 mois)
- Ainsi, lorsque je choisirai le mlomis de février dans la cellule B1, j'obtiendrai la formule ='Février'!A1.

Merci d'avance !

6 réponses

bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
30 avril 2010 à 09:31
Salut,

oui!

en B4 tu ecris :

=Indirect(B1&"!A1")

si cela ne fonctionne pas tu peux essayer autrement :

=Indirect("'"&B1&"'!A1")

A+
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
30 avril 2010 à 09:39
Salut
Oui, il faut simplement que tu fasses un petit programme lié au choix du mois et que tu ailles modifier chaque formule des cellules concernées, exemple :
Private Sub ComboBox1_Change()
    Dim leMois As String
    Dim maCellule As Range
    Dim sTemp As String
    Dim r As Long
    ' Arrêt des reclaculs automatiques
    Application.Calculation = xlManual
    leMois = ComboBox1.Text
    For Each maCellule In Range("A1:D43")   ' à définir
        sTemp = maCellule.Formula
        ' Remplacement du mois dans la formule du genre ='Janvier'!A1
        ' Recherche emplacement du 2ème apostrophe '
        r = InStr(4, sTemp, "'", vbTextCompare)
        If r > 0 Then
            maCellule.Formula = "='" & leMois & Mid$(sTemp, r)
        End If
    Next
    ' Relance calculs automatiques
    Application.Calculation = xlAutomatic
    Calculate
End Sub

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
30 avril 2010 à 09:40
La solution de bigfish semble plus adaptée (et moins complexe)

PS : Bien mettre des espaces devant et derrière les signes de concaténation &
0
rv83toulon Messages postés 68 Date d'inscription mercredi 2 mars 2011 Statut Membre Dernière intervention 25 avril 2013
30 avril 2010 à 09:41
Salut, le forum ou bien un exemple en vba sur l'événement Change de la feuil :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address [B1].Address Then [B4] "=" & [B1] & "!A1"
End Sub


@+
0

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

Posez votre question
carlos33 Messages postés 72 Date d'inscription vendredi 25 avril 2008 Statut Membre Dernière intervention 15 juin 2010
30 avril 2010 à 10:24
Merci de vos réponses.

Je pensais pouvoir adapter vos réponses à mon exemple simplifié mais je n'y arrive pas.
Ma formule est la suivante :
SOMMEPROD((GAUCHE('Janvier'!A2:A1000;4)"7071")*('Janvier'!F2:F1000))
et je voudrais changer juste Janvier par un autre mois situé dans une autre cellule.
Je n'y arrive pas avec e que vous avez dit.

Merci !
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
30 avril 2010 à 10:31
Re,

la prochaine fois pose une question qui correspond à ton besoin !

SOMMEPROD((GAUCHE(Indirect("'"&B1&"'!A2:A1000");4)"7071")*Indirect("'"&B1&"'!F2:F1000")

A+
0
Rejoignez-nous