Sur un autre fil, j'ai trouvé (grâce à JB :-) comment attribuer le contenu d'une cellule à l'entête et ou au pied de page:
Dans ThisworkBook (Alt+F11)
Private Sub Workbook_BeforePrint(Cancel As Boolean) ActiveSheet.PageSetup.CenterHeader = [A1] End Sub JB
J'ai accédé à ThisworkBook ... mais une fois copié le code, je ne sais pas quoi en faire !!
Si je regarde l'aperçu, ça ne marche pas. Dois-je créer une macro ?
Cordialement, Pierre F.
Bonsoir,
Dans le classeur joint, j'ai mis une copie d'écran:
http://cjoint.com/?cixb1kjYUW
-Alt+F11 -Double-clic sur ThisWorkBook -Dans le premier menu (général), choisir workbook -Dans le second menu (à droite), choisir BeforePrint
Il doit apparaître:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
End Sub
C'est là qu'il faut coller le code
Cordialement JB
Pierre F.
Bonsoir,
Si, si , cela marche fort bien,
Oui, effectivement, je sais pas pourquoi j'y arrivais pas. Merci. Plus compliqué maintenant:
Le contenu de la cellule que je souhaite mettre dans l'entête se trouve dans une colonne (H) gérée par un filtre automatique (3 contenus poss ibles).
Je souhaiterais donc que dans l'entête apparaisse le contenu de la cellule H de la première ligne, obtenu suite au filtrage et ceci pour chacun des 3 contenus possibles.
Cela peut être H6 (1ère ligne "normale" du tableau) mais selon le fil tre utilisé, cela peut être H22, H154...
Merci d'avance.
Cordialement, pierre F.
Bonsoir,
Si, si , cela marche fort bien,
Oui, effectivement, je sais pas pourquoi j'y arrivais pas.
Merci.
Plus compliqué maintenant:
Le contenu de la cellule que je souhaite mettre dans l'entête se trouve
dans une colonne (H) gérée par un filtre automatique (3 contenus poss ibles).
Je souhaiterais donc que dans l'entête apparaisse le contenu de la
cellule H de la première ligne, obtenu suite au filtrage et ceci pour
chacun des 3 contenus possibles.
Cela peut être H6 (1ère ligne "normale" du tableau) mais selon le fil tre
utilisé, cela peut être H22, H154...
Oui, effectivement, je sais pas pourquoi j'y arrivais pas. Merci. Plus compliqué maintenant:
Le contenu de la cellule que je souhaite mettre dans l'entête se trouve dans une colonne (H) gérée par un filtre automatique (3 contenus poss ibles).
Je souhaiterais donc que dans l'entête apparaisse le contenu de la cellule H de la première ligne, obtenu suite au filtrage et ceci pour chacun des 3 contenus possibles.
Cela peut être H6 (1ère ligne "normale" du tableau) mais selon le fil tre utilisé, cela peut être H22, H154...
Merci d'avance.
Cordialement, pierre F.
LSteph
..ceci peut-être ce que tu souhaites
Private Sub Workbook_BeforePrint(Cancel As Boolean) Dim c As Range, myTxt As String For Each c In [h2:h200].Cells If c.EntireRow.Hidden = False Then myTxt = CStr(c): Exit For Next ActiveSheet.PageSetup.CenterHeader = myTxt End Sub
Bonsoir,
Si, si , cela marche fort bien,
Oui, effectivement, je sais pas pourquoi j'y arrivais pas. Merci. Plus compliqué maintenant:
Le contenu de la cellule que je souhaite mettre dans l'entête se trouve dans une colonne (H) gérée par un filtre automatique (3 contenus possibles).
Je souhaiterais donc que dans l'entête apparaisse le contenu de la cellule H de la première ligne, obtenu suite au filtrage et ceci pour chacun des 3 contenus possibles.
Cela peut être H6 (1ère ligne "normale" du tableau) mais selon le filtre utilisé, cela peut être H22, H154...
Merci d'avance.
Cordialement, pierre F.
..ceci peut-être ce que tu souhaites
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim c As Range, myTxt As String
For Each c In [h2:h200].Cells
If c.EntireRow.Hidden = False Then myTxt = CStr(c): Exit For
Next
ActiveSheet.PageSetup.CenterHeader = myTxt
End Sub
Bonsoir,
Si, si , cela marche fort bien,
Oui, effectivement, je sais pas pourquoi j'y arrivais pas.
Merci.
Plus compliqué maintenant:
Le contenu de la cellule que je souhaite mettre dans l'entête se trouve
dans une colonne (H) gérée par un filtre automatique (3 contenus
possibles).
Je souhaiterais donc que dans l'entête apparaisse le contenu de la
cellule H de la première ligne, obtenu suite au filtrage et ceci pour
chacun des 3 contenus possibles.
Cela peut être H6 (1ère ligne "normale" du tableau) mais selon le filtre
utilisé, cela peut être H22, H154...
Private Sub Workbook_BeforePrint(Cancel As Boolean) Dim c As Range, myTxt As String For Each c In [h2:h200].Cells If c.EntireRow.Hidden = False Then myTxt = CStr(c): Exit For Next ActiveSheet.PageSetup.CenterHeader = myTxt End Sub
Bonsoir,
Si, si , cela marche fort bien,
Oui, effectivement, je sais pas pourquoi j'y arrivais pas. Merci. Plus compliqué maintenant:
Le contenu de la cellule que je souhaite mettre dans l'entête se trouve dans une colonne (H) gérée par un filtre automatique (3 contenus possibles).
Je souhaiterais donc que dans l'entête apparaisse le contenu de la cellule H de la première ligne, obtenu suite au filtrage et ceci pour chacun des 3 contenus possibles.
Cela peut être H6 (1ère ligne "normale" du tableau) mais selon le filtre utilisé, cela peut être H22, H154...
Merci d'avance.
Cordialement, pierre F.
Pierre F.
..ceci peut-être ce que tu souhaites
Private Sub Workbook_BeforePrint(Cancel As Boolean) Dim c As Range, myTxt As String For Each c In [h2:h200].Cells If c.EntireRow.Hidden = False Then myTxt = CStr(c): Exit For Next ActiveSheet.PageSetup.CenterHeader = myTxt End Sub
C'est exactement ça. Mille merci!
Cordialement, Pierre F.
..ceci peut-être ce que tu souhaites
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim c As Range, myTxt As String
For Each c In [h2:h200].Cells
If c.EntireRow.Hidden = False Then myTxt = CStr(c): Exit For
Next
ActiveSheet.PageSetup.CenterHeader = myTxt
End Sub
Private Sub Workbook_BeforePrint(Cancel As Boolean) Dim c As Range, myTxt As String For Each c In [h2:h200].Cells If c.EntireRow.Hidden = False Then myTxt = CStr(c): Exit For Next ActiveSheet.PageSetup.CenterHeader = myTxt End Sub
C'est exactement ça. Mille merci!
Cordialement, Pierre F.
Pierre F.
..ceci peut-être ce que tu souhaites
Private Sub Workbook_BeforePrint(Cancel As Boolean) Dim c As Range, myTxt As String For Each c In [h2:h200].Cells If c.EntireRow.Hidden = False Then myTxt = CStr(c): Exit For Next ActiveSheet.PageSetup.CenterHeader = myTxt End Sub
C'est ça Encore plus compliqué :-)
Le texte que je souhaite voir figurer dans l'entête est en fait constitué de deux parties. - Une partie "fixe" constituée du mot "Salle : " - Une partie variable selon la sélection (en fait, le numéro de la salle) comme extrait par la procédure ci-dessous.
donc une concaténation de deux éléments.
De plus, je souhaiterais que le texte soit "aligné à droite" et non centré (RightHeader ??)
Comment puis-je décrire à la ligne 2 de la procédure...
Dim c As Range, "Salle: "& myTxt As String ??
ou est-ce plus compliqué ? :-)
Ça l'est car quand j'essaie, le VBA me signale une erreur de syntaxe et de compilation!!
Cordialement, Pierre F.
..ceci peut-être ce que tu souhaites
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim c As Range, myTxt As String
For Each c In [h2:h200].Cells
If c.EntireRow.Hidden = False Then myTxt = CStr(c): Exit For
Next
ActiveSheet.PageSetup.CenterHeader = myTxt
End Sub
C'est ça
Encore plus compliqué :-)
Le texte que je souhaite voir figurer dans l'entête est en fait
constitué de deux parties.
- Une partie "fixe" constituée du mot "Salle : "
- Une partie variable selon la sélection (en fait, le numéro de la
salle) comme extrait par la procédure ci-dessous.
donc une concaténation de deux éléments.
De plus, je souhaiterais que le texte soit "aligné à droite" et non
centré (RightHeader ??)
Comment puis-je décrire à la ligne 2 de la procédure...
Dim c As Range, "Salle: "& myTxt As String ??
ou est-ce plus compliqué ? :-)
Ça l'est car quand j'essaie, le VBA me signale une erreur de syntaxe et
de compilation!!
Private Sub Workbook_BeforePrint(Cancel As Boolean) Dim c As Range, myTxt As String For Each c In [h2:h200].Cells If c.EntireRow.Hidden = False Then myTxt = CStr(c): Exit For Next ActiveSheet.PageSetup.CenterHeader = myTxt End Sub
C'est ça Encore plus compliqué :-)
Le texte que je souhaite voir figurer dans l'entête est en fait constitué de deux parties. - Une partie "fixe" constituée du mot "Salle : " - Une partie variable selon la sélection (en fait, le numéro de la salle) comme extrait par la procédure ci-dessous.
donc une concaténation de deux éléments.
De plus, je souhaiterais que le texte soit "aligné à droite" et non centré (RightHeader ??)
Comment puis-je décrire à la ligne 2 de la procédure...
Dim c As Range, "Salle: "& myTxt As String ??
ou est-ce plus compliqué ? :-)
Ça l'est car quand j'essaie, le VBA me signale une erreur de syntaxe et de compilation!!
Cordialement, Pierre F.
lSteph
Bonjour,
(C'est curieux 3ème fois en deux jours que même dans google des messages dits "publiés" disparaissent).
Je reprends ce que déjà envoyé il y a deux heures, c'est ici que cela se passe: '... If c.EntireRow.Hidden = False Then myTxt = "Salle " & CStr(c): Exit For '...
'Cdlt.
lSteph
Bonjour,
(C'est curieux 3ème fois en deux jours que même dans google des
messages dits "publiés" disparaissent).
Je reprends ce que déjà envoyé il y a deux heures,
c'est ici que cela se passe:
'...
If c.EntireRow.Hidden = False Then myTxt = "Salle " & CStr(c): Exit
For
'...
(C'est curieux 3ème fois en deux jours que même dans google des messages dits "publiés" disparaissent).
Je reprends ce que déjà envoyé il y a deux heures, c'est ici que cela se passe: '... If c.EntireRow.Hidden = False Then myTxt = "Salle " & CStr(c): Exit For '...
'Cdlt.
lSteph
LSteph
Il y a vraiment un truc bizarre, avec toutes sortes d'outils à différentes heures et depuis des endroits différents, si celui-ci ne passe toujourts pas tant pis!
C'est plutôt par ici:
If c.EntireRow.Hidden = False Then myTxt = "Salle " & CStr(c): Exit For
'lSteph
..ceci peut-être ce que tu souhaites
Private Sub Workbook_BeforePrint(Cancel As Boolean) Dim c As Range, myTxt As String For Each c In [h2:h200].Cells If c.EntireRow.Hidden = False Then myTxt = CStr(c): Exit For Next ActiveSheet.PageSetup.CenterHeader = myTxt End Sub
C'est ça Encore plus compliqué :-)
Le texte que je souhaite voir figurer dans l'entête est en fait constitué de deux parties. - Une partie "fixe" constituée du mot "Salle : " - Une partie variable selon la sélection (en fait, le numéro de la salle) comme extrait par la procédure ci-dessous.
donc une concaténation de deux éléments.
De plus, je souhaiterais que le texte soit "aligné à droite" et non centré (RightHeader ??)
Comment puis-je décrire à la ligne 2 de la procédure...
Dim c As Range, "Salle: "& myTxt As String ??
ou est-ce plus compliqué ? :-)
Ça l'est car quand j'essaie, le VBA me signale une erreur de syntaxe et de compilation!!
Cordialement, Pierre F.
Il y a vraiment un truc bizarre, avec toutes sortes d'outils à
différentes heures et depuis des endroits différents, si celui-ci ne
passe toujourts pas tant pis!
C'est plutôt par ici:
If c.EntireRow.Hidden = False Then myTxt = "Salle " & CStr(c): Exit For
'lSteph
..ceci peut-être ce que tu souhaites
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim c As Range, myTxt As String
For Each c In [h2:h200].Cells
If c.EntireRow.Hidden = False Then myTxt = CStr(c): Exit For
Next
ActiveSheet.PageSetup.CenterHeader = myTxt
End Sub
C'est ça
Encore plus compliqué :-)
Le texte que je souhaite voir figurer dans l'entête est en fait
constitué de deux parties.
- Une partie "fixe" constituée du mot "Salle : "
- Une partie variable selon la sélection (en fait, le numéro de la
salle) comme extrait par la procédure ci-dessous.
donc une concaténation de deux éléments.
De plus, je souhaiterais que le texte soit "aligné à droite" et non
centré (RightHeader ??)
Comment puis-je décrire à la ligne 2 de la procédure...
Dim c As Range, "Salle: "& myTxt As String ??
ou est-ce plus compliqué ? :-)
Ça l'est car quand j'essaie, le VBA me signale une erreur de syntaxe et
de compilation!!
Il y a vraiment un truc bizarre, avec toutes sortes d'outils à différentes heures et depuis des endroits différents, si celui-ci ne passe toujourts pas tant pis!
C'est plutôt par ici:
If c.EntireRow.Hidden = False Then myTxt = "Salle " & CStr(c): Exit For
'lSteph
..ceci peut-être ce que tu souhaites
Private Sub Workbook_BeforePrint(Cancel As Boolean) Dim c As Range, myTxt As String For Each c In [h2:h200].Cells If c.EntireRow.Hidden = False Then myTxt = CStr(c): Exit For Next ActiveSheet.PageSetup.CenterHeader = myTxt End Sub
C'est ça Encore plus compliqué :-)
Le texte que je souhaite voir figurer dans l'entête est en fait constitué de deux parties. - Une partie "fixe" constituée du mot "Salle : " - Une partie variable selon la sélection (en fait, le numéro de la salle) comme extrait par la procédure ci-dessous.
donc une concaténation de deux éléments.
De plus, je souhaiterais que le texte soit "aligné à droite" et non centré (RightHeader ??)
Comment puis-je décrire à la ligne 2 de la procédure...
Dim c As Range, "Salle: "& myTxt As String ??
ou est-ce plus compliqué ? :-)
Ça l'est car quand j'essaie, le VBA me signale une erreur de syntaxe et de compilation!!
Cordialement, Pierre F.
Pierre F.
Il y a vraiment un truc bizarre, avec toutes sortes d'outils à différentes heures et depuis des endroits différents, si celui-ci n e passe toujourts pas tant pis!
C'est plutôt par ici:
Merci; je vois, maintenant tes deux contributions; il y a 50 min, je n'en voyais aucune.
Cordialement, Pierre F.
Il y a vraiment un truc bizarre, avec toutes sortes d'outils à
différentes heures et depuis des endroits différents, si celui-ci n e
passe toujourts pas tant pis!
C'est plutôt par ici:
Merci; je vois, maintenant tes deux contributions; il y a 50 min, je
n'en voyais aucune.
Il y a vraiment un truc bizarre, avec toutes sortes d'outils à différentes heures et depuis des endroits différents, si celui-ci n e passe toujourts pas tant pis!
C'est plutôt par ici:
Merci; je vois, maintenant tes deux contributions; il y a 50 min, je n'en voyais aucune.
Cordialement, Pierre F.
Pierre F.
Il y a vraiment un truc bizarre, avec toutes sortes d'outils à différentes heures et depuis des endroits différents, si celui-ci n e passe toujourts pas tant pis!
C'est plutôt par ici:
If c.EntireRow.Hidden = False Then myTxt = "Salle " & CStr(c): Exit For
Ça marche super !!!! Merci.
Suite des questions :-)
Si j'ai bien compris, cette procédure s'applique à toutes les feuille s (15) de mon classeur...
...mais il y a 3 feuilles (la première et les 2 dernières) pour lesquelles je souhaiterais une entête différente ("normale") faite simplement avec l'outil classique "entête et pied de page".
Comment faire ??
Cordialement, Pierre F.
Il y a vraiment un truc bizarre, avec toutes sortes d'outils à
différentes heures et depuis des endroits différents, si celui-ci n e
passe toujourts pas tant pis!
C'est plutôt par ici:
If c.EntireRow.Hidden = False Then myTxt = "Salle " & CStr(c): Exit For
Ça marche super !!!! Merci.
Suite des questions :-)
Si j'ai bien compris, cette procédure s'applique à toutes les feuille s
(15) de mon classeur...
...mais il y a 3 feuilles (la première et les 2 dernières) pour
lesquelles je souhaiterais une entête différente ("normale") faite
simplement avec l'outil classique "entête et pied de page".
Il y a vraiment un truc bizarre, avec toutes sortes d'outils à différentes heures et depuis des endroits différents, si celui-ci n e passe toujourts pas tant pis!
C'est plutôt par ici:
If c.EntireRow.Hidden = False Then myTxt = "Salle " & CStr(c): Exit For
Ça marche super !!!! Merci.
Suite des questions :-)
Si j'ai bien compris, cette procédure s'applique à toutes les feuille s (15) de mon classeur...
...mais il y a 3 feuilles (la première et les 2 dernières) pour lesquelles je souhaiterais une entête différente ("normale") faite simplement avec l'outil classique "entête et pied de page".