EN TETE FEUILLE PAR UN SOMMAIRE

Mel18

XLDnaute Nouveau
Bonjour,

Novice dans Excel, besoin d'aide.

Je créé un fichier
Dans la première page "Sommaire" ==> celle sert à renvoyer aux autres pages
Et mes pages de travail aprés.

Je voudrais pouvoir sur les pages de travail ("hors sommaire"), que cela me mette automatiquement dans l'entête de chaque feuilles ce que j'ai mis dans mon tableau sommaire
c'est à dire à droite la référence de la feuille et au milieu le nom de la feuille indiquée dans le tableau sommaire dans la colonne B (en faisant une recherche...)

Je mets ma feuille d'essai en pièce jointe.

Merci de votre aide.

Bonne fin de journée et WE.
 

Pièces jointes

  • ESSAI.xlsm
    15.7 KB · Affichages: 46

Dranreb

XLDnaute Barbatruc
Bonjour.
Si j'ai mieux compris, dans Feuil1 (SOMMAIRE) :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim T(), L&
T = Me.[A3].CurrentRegion.Value
For L = 2 To UBound(T)
    With ThisWorkbook.Worksheets(L).PageSetup
        .LeftHeader = T(L, 1)
        .CenterHeader = T(L, 2)
        .RightHeader = T(L, 3)
        End With: Next L
End Sub
Ou bien :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim L&: L = Target.Row: If L < 4 Then Exit Sub
Select Case Target.Column
   Case 1: ThisWorkbook.Worksheets(L - 2).PageSetup.LeftHeader = Target.Value
   Case 2: ThisWorkbook.Worksheets(L - 2).PageSetup.CenterHeader = Target.Value
                 ThisWorkbook.Worksheets(L - 2).Name = Target.Value
   Case 3: ThisWorkbook.Worksheets(L - 2).PageSetup.RightHeader = Target.Value
   End Select
End Sub
 
Dernière édition:

Mel18

XLDnaute Nouveau
Bonjour,
une proposition en pj si j'ai bien compris
Cordialement
Bonjour, Merci à vous mais je voudrais que ca me mette les éléments dans l'en tête de la feuille.

Bonjour.
Si j'ai mieux compris, dans Feuil1 (SOMMAIRE) :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim T(), L&
T = Me.[A3].CurrentRegion.Value
For L = 2 To UBound(T)
    With ThisWorkbook.Worksheets(L).PageSetup
        .LeftHeader = T(L, 1)
        .CenterHeader = T(L, 2)
        .RightHeader = T(L, 3)
        End With: Next L
End Sub
Ou bien :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim L&: L = Target.Row: If L < 4 Then Exit Sub
Select Case Target.Column
   Case 1: ThisWorkbook.Worksheets(L - 2).PageSetup.LeftHeader = Target.Value
   Case 2: ThisWorkbook.Worksheets(L - 2).PageSetup.CenterHeader = Target.Value
                 ThisWorkbook.Worksheets(L - 2).Name = Target.Value
   Case 3: ThisWorkbook.Worksheets(L - 2).PageSetup.RightHeader = Target.Value
   End Select
End Sub


Merci pour votre réponse, mais cela ne fonctionne pas, et comme je suis une débutante, je n'arrive pas à voir ce qui cloche...
:-(

Merci à tous
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Joignez le classeur que je voie comment vous l'avez appliqué.
Je ne peux pas savoir par exemple, si vous ne l'auriez pas mis dans un module standard au lieu de le mettre dans le module objet attaché à l'objet Worksheet de la rubrique Microsof Excel Objets nommé Feuil1, lequel représente la feuille SOMMAIRE.
 

Discussions similaires

Statistiques des forums

Discussions
312 075
Messages
2 085 080
Membres
102 772
dernier inscrit
bluetesteur