Ouvrir feuille d'un autre classeur en fonction de la valeur d'une cellule

Bonjour, et merci par avance pour votre aide,

J'ai un fichier Excel (en PJ), Lorsque j'appui sur "MARQUET", une page avec un choix de numéro de semaine s'ouvre. Lorsque je choisis un numéro de semaine, juste en dessous, j'ai des nom qui s'affiche (via une fonction INDEX; EQUIV). Les noms s'affiche pour le moment grâce a la semaine 29 (pour l'exemple). Dans un autre classeur Excel, il y a 52 feuille correspondant aux 52 semaines de l'année. Je souhaiterai lorsque je choisis la semaine 3 par exemple, que Excel exécute la fonction dans la feuille correspondant à la semaine 3 de l'autre classeur avec les 52 semaines

.

Pour le moment ma fonction prend en compte uniquement la semaine 29 ainsi que la feuille 29 de l'autre classeur et ça marche bien.

J'espère avoir été assez clair dans l'explication.

Je vous remercie à tous

Bonjour Sebmika974

Tu devras le faire via VBA, pas le choix

Voici le code à mettre dans ta feuille "N°SEMAINE ABD"

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim sForm As String, Semaine As String
  If Target.Address = "$G$8" Then
    ' Récupérer la semaine sélectionnée en supprimant l'espace
    Semaine = Replace(Range("G8").Value, " ", "")
    ' Important, désdactiver les évènements avant modification
    Application.EnableEvents = False
    ' Formule à inscrire pour le BEX
    sForm = "=SI(G8='\\atlas.edf.fr\CO\974sd-sei\Operateur-Reseau.007\DEM-Exploit.007\SUIVI EXPLOITATION\PLANNING EQUIPE BEX\2020\[Planning 2020 BEX HTB v1 EXEMPLE.xlsx]###'!$I$4;INDEX('\\atlas.edf.fr\CO\974sd-sei\Operateur-Reseau.007\DEM-Exploit.007\SUIVI EXPLOITATION\PLANNING EQUIPE BEX\2020\[Planning 2020 BEX HTB v1 EXEMPLE.xlsx]###'!$C$6:$D$28;EQUIV('N°SEMAINE ABD '!$E$2;'\\atlas.edf.fr\CO\974sd-sei\Operateur-Reseau.007\DEM-Exploit.007\SUIVI EXPLOITATION\PLANNING EQUIPE BEX\2020\[Planning 2020 BEX HTB v1 EXEMPLE.xlsx]###'!$D$6:$D$28;0);1);"""")"
    ' Inscrire la formule
    Range("B15").FormulaLocal = Replace(sForm, "###", Semaine)
    '
    ' Formule pour la maintenance
    sFrom = "=SI(G8='\\atlas.edf.fr\CO\974sd-sei\Operateur-Reseau.007\DEM-Htb.008\EQUIPE MAINTENANCE HTB\PLANNING\PLANNING EQUIPE\[Copie de Planning 2020 HTB v1.xlsx]###'!$J$4;INDEX('\\atlas.edf.fr\CO\974sd-sei\Operateur-Reseau.007\DEM-Htb.008\EQUIPE MAINTENANCE HTB\PLANNING\PLANNING EQUIPE\[Copie de Planning 2020 HTB v1.xlsx]###'!$D$6:$E$26;EQUIV('N°SEMAINE ABD '!$E$2;'\\atlas.edf.fr\CO\974sd-sei\Operateur-Reseau.007\DEM-Htb.008\EQUIPE MAINTENANCE HTB\PLANNING\PLANNING EQUIPE\[Copie de Planning 2020 HTB v1.xlsx]###'!$E$6:$E$26;0);1);"""")"
    ' Inscrire la formule
    Range("C15").FormulaLocal = Replace(sForm, "###", Semaine)
    ' Réactiver les évènements
    Application.EnableEvents = True
  End If
End Sub

@+

Bonjour et merci beaucoup pour cette solution. Je pourrai tester ça dès lundi (j'ai oublié mon PC bureau). Je vous tiens informé bonweekend!

Bonjour Sebmika974

Tu devras le faire via VBA, pas le choix

Voici le code à mettre dans ta feuille "N°SEMAINE ABD"

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim sForm As String, Semaine As String
  If Target.Address = "$G$8" Then
    ' Récupérer la semaine sélectionnée en supprimant l'espace
    Semaine = Replace(Range("G8").Value, " ", "")
    ' Important, désdactiver les évènements avant modification
    Application.EnableEvents = False
    ' Formule à inscrire pour le BEX
    sForm = "=SI(G8='\\atlas.edf.fr\CO\974sd-sei\Operateur-Reseau.007\DEM-Exploit.007\SUIVI EXPLOITATION\PLANNING EQUIPE BEX\2020\[Planning 2020 BEX HTB v1 EXEMPLE.xlsx]###'!$I$4;INDEX('\\atlas.edf.fr\CO\974sd-sei\Operateur-Reseau.007\DEM-Exploit.007\SUIVI EXPLOITATION\PLANNING EQUIPE BEX\2020\[Planning 2020 BEX HTB v1 EXEMPLE.xlsx]###'!$C$6:$D$28;EQUIV('N°SEMAINE ABD '!$E$2;'\\atlas.edf.fr\CO\974sd-sei\Operateur-Reseau.007\DEM-Exploit.007\SUIVI EXPLOITATION\PLANNING EQUIPE BEX\2020\[Planning 2020 BEX HTB v1 EXEMPLE.xlsx]###'!$D$6:$D$28;0);1);"""")"
    ' Inscrire la formule
    Range("B15").FormulaLocal = Replace(sForm, "###", Semaine)
    '
    ' Formule pour la maintenance
    sFrom = "=SI(G8='\\atlas.edf.fr\CO\974sd-sei\Operateur-Reseau.007\DEM-Htb.008\EQUIPE MAINTENANCE HTB\PLANNING\PLANNING EQUIPE\[Copie de Planning 2020 HTB v1.xlsx]###'!$J$4;INDEX('\\atlas.edf.fr\CO\974sd-sei\Operateur-Reseau.007\DEM-Htb.008\EQUIPE MAINTENANCE HTB\PLANNING\PLANNING EQUIPE\[Copie de Planning 2020 HTB v1.xlsx]###'!$D$6:$E$26;EQUIV('N°SEMAINE ABD '!$E$2;'\\atlas.edf.fr\CO\974sd-sei\Operateur-Reseau.007\DEM-Htb.008\EQUIPE MAINTENANCE HTB\PLANNING\PLANNING EQUIPE\[Copie de Planning 2020 HTB v1.xlsx]###'!$E$6:$E$26;0);1);"""")"
    ' Inscrire la formule
    Range("C15").FormulaLocal = Replace(sForm, "###", Semaine)
    ' Réactiver les évènements
    Application.EnableEvents = True
  End If
End Sub

@+

Bonjour,

J'ai testé votre code et je l'ai inséré dans VISUAL BASIC/Feuil8(N° SEMAINE ABD). En essayant de faire fonctionner le fichier rien ne se passe. J'ai mis en Pj mon fichier simplifié (sans formule avec adresse sur reseau) ainsi que les deux planing (BEX et MAINTENANCE) Pourriez vous s'il vous plait m'expliquer le fonctionnement de votre code s'il vous plait?

Je vous remercie par avance.

Re,

Il n'y a absolument aucun code dans la feuille "N°SEMAINE ABD" du fichier "visibilite...."

Le fonctionnement de mon code est ultra simple, je remplace le nom de la feuille dans les formules existantes des cellules B15 et C15

Les "###" sont remplacés par le choix fait dans la cellule G8 du 1er fichier

@+

Re,

Il n'y a absolument aucun code dans la feuille "N°SEMAINE ABD" du fichier "visibilite...."

Le fonctionnement de mon code est ultra simple, je remplace le nom de la feuille dans les formules existantes des cellules B15 et C15

Les "###" sont remplacés par le choix fait dans la cellule G8 du 1er fichier

@+

Bonjour, Je suis vraiment désolé mais je ne comprend pas le fonctionnement du code. Et j'ai vraiment essayé de le comprendre. Voici le fichier avec le code (désolé pour l'ancien message).

Pourquoi Récupérer la semaine sélectionnée en supprimant l'espace? Dans les plannings, les N° de semaine à comparer avec l'intervenant a un espace (ex: S 37) par contre les feuilles nommé par numéro de semaine ne possède pas d'espace "ex: S37). Pouvez vous s'il vous plait faire un exemple avec les 3 fichiers mis en Pj précédament? Il y a les deux planning "MAINTENANCE" et "BEX" ainsi que le fichier "VISIBILITE INTERVENANT (avec les formule simplifié pour les planning en Pj)".

Je vous remercie par avance

Re,

Navré, mais si vous ne comprenez rien à rien, je ne pourrais pas vous aider d'avantage

Mais d'autres membres répondrons certainement, bonne chance

Re,

Navré, mais si vous ne comprenez rien à rien, je ne pourrais pas vous aider d'avantage

Mais d'autres membres répondrons certainement, bonne chance

J'ai enfin compris, par contre lorsque la macro s'exécute, le code sous "MAINTENANCE" change et devient le même que sous "BEX"...

Rechercher des sujets similaires à "ouvrir feuille classeur fonction valeur"