XL 2010 VBA Modification de l’en-tete

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

BigJose

XLDnaute Nouveau
Bonjour,

premier message sur ce forum.

j’ai un soucie avec l’en tête sur une feuille Excel.

le but est de de récupérer le numéro et la version du doc dans les casses du fichiers Excel.

Le truc étrange c’est que cela fonctionne en mode pas à pas mais pas quand je lance la macro.

Sachant que c’est les derniers lignes de mon programme.

Auriez-vous une idée ?

VB:
With ActiveSheet.PageSetup
    .LeftHeader = "N° : " + CStr(Cells(1, 2).Value) + " Iss : " + CStr(Cells(2, 2).Value)
    .RightHeader = "Page : &P/&N"
    .LeftMargin = Application.InchesToPoints(0.7)
    .RightMargin = Application.InchesToPoints(0.7)
    .TopMargin = Application.InchesToPoints(0.75)
    .BottomMargin = Application.InchesToPoints(0.75)
    .HeaderMargin = Application.InchesToPoints(0.3)
    .FooterMargin = Application.InchesToPoints(0.3)
    .Zoom = 100
    .PrintErrors = xlPrintErrorsDisplayed
    .OddAndEvenPagesHeaderFooter = False
    .DifferentFirstPageHeaderFooter = False
    .ScaleWithDocHeaderFooter = True
    .AlignMarginsHeaderFooter = True
End With
Application.PrintCommunication = True

End Sub
 
Bonjour @BigJose

Edit : Bonjour Gérard

Essaye ceci :

VB:
PrintPreview    'Visualisation
PrintOut        'Lance l'impression

'Application.PrintCommunication = True 'A supprimer

*Merci de ton retour

@Phil69970
Bonjour Phil69970,

J’ai supprimé « Application.PrintCommunication… » mais cela ne change rien.

Le truc étrange c’est que cela fonctionne en mode pas à pas mais je lance la macro développement->Macros->Exécuter cela ne change pas mon entête
 
Bonjour,

As-tu essayé de modifier la ligne ".LeftHeader" comme ceci :
VB:
.LeftHeader = "N° : " + CStr(ActiveSheet.Cells(1, 2).Value) + " Iss : " + CStr(ActiveSheet.Cells(2, 2).Value)

Ou alors en mettant la ligne qui pose problème, après l'activation de la communication avec l'imprimante.
 
En mode pas à pas : ok

Lorsque je lance la macro développement->Macros->Exécuter cela exécute bien la macro mais cela ne met pas à jour l’entête
Oui, on avait déjà compris les deux premières fois. 😁

Ceci dit, c'est juste à l'aperçu ou vraiment à l'impression que ça ne marche pas ?

Et as-tu essayé en mettant le PrintOut dans la même macro juste après la configuration de l'impression ?
 
Merci, le problème est résolue.

J’ai fait un fichier avec juste la partie de code qui me posait soucie et elle fonctionne 🙂

Je me suis rendue compte qu’il y avait cette ligne de code avant la modification de l’entête

Application.PrintCommunication = False

En mettant cette ligne en commentaire, je n’ai plus de soucie.

Cette ligne de code vient de l’enregistrement d’une macro. Je ne sais pas trop à quoi elle sert …
Mais bon, cela marche très bien sans

Merci tous le monde
 
Je me suis rendue compte qu’il y avait cette ligne de code avant la modification de l’entête

Application.PrintCommunication = False

En mettant cette ligne en commentaire, je n’ai plus de soucie.

Cette ligne de code vient de l’enregistrement d’une macro. Je ne sais pas trop à quoi elle sert …
Mais bon, cela marche très bien sans
Moi je l'utilise sinon "ça marche moins bien" au boulot.

A titre d'exemple, voici ma macro :
VB:
Private Sub ParamerterImprimante()

    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .PrintArea = "$B$2:$AK$" & LigTP + 1
        .LeftHeader = ""
        .CenterHeader = ActiveSheet.Range("D8").Value
        .RightHeader = ""
        .LeftFooter = ""
        .CenterFooter = ""
        .RightFooter = ""
        .LeftMargin = Application.InchesToPoints(0.15748031496063)
        .RightMargin = Application.InchesToPoints(0.15748031496063)
        .TopMargin = Application.InchesToPoints(0.354330708661417)
        .BottomMargin = Application.InchesToPoints(0.354330708661417)
        .HeaderMargin = Application.InchesToPoints(0.118110236220472)
        .FooterMargin = Application.InchesToPoints(0.118110236220472)
        .PrintHeadings = False
        .PrintGridlines = False
        .CenterHorizontally = True
        .CenterVertically = True
        .Orientation = MonOrientation       ' xlPortrait    ' xlLandscape
        .Draft = False
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = 1
        .PrintErrors = xlPrintErrorsDisplayed
        .OddAndEvenPagesHeaderFooter = False
        .DifferentFirstPageHeaderFooter = False
        .ScaleWithDocHeaderFooter = True
        .AlignMarginsHeaderFooter = True
        .EvenPage.LeftHeader.Text = ""
        .EvenPage.CenterHeader.Text = ""
        .EvenPage.RightHeader.Text = ""
        .EvenPage.LeftFooter.Text = ""
        .EvenPage.CenterFooter.Text = ""
        .EvenPage.RightFooter.Text = ""
        .FirstPage.LeftHeader.Text = ""
        .FirstPage.CenterHeader.Text = ""
        .FirstPage.RightHeader.Text = ""
        .FirstPage.LeftFooter.Text = ""
        .FirstPage.CenterFooter.Text = ""
        .FirstPage.RightFooter.Text = ""
    End With
    Application.PrintCommunication = True
    ActiveSheet.PageSetup.PrintComments = xlPrintNoComments     ' xlPrintSheetEnd   ' xlPrintNoComments

End Sub

Et, ci-dessous, une partie de capture d'écran du PDF que ça génère.
Le center Header (tout en haut de l'image) est bien rempli avec la date (à ceci près qu'elle est écrite en english...)
Test_impression.png
 
Dernière édition:
@BigJose

Tu rigoles 🤣🤣

Application.PrintCommunication = False

En mettant cette ligne en commentaire, je n’ai plus de soucie.

Je l'avais mentionné des mon 1er post

1645786622604.png


Et ta réponse

Bonjour Phil69970,

J’ai supprimé « Application.PrintCommunication… » mais cela ne change rien.

Et maintenant tu nous sort :🤔

Je me suis rendue compte qu’il y avait cette ligne de code avant la modification de l’entête

Application.PrintCommunication = False

En mettant cette ligne en commentaire, je n’ai plus de soucie.

*Merci de ton retour

@Phil69970
 
@BigJose

Tu rigoles 🤣🤣



Je l'avais mentionné des mon 1er post

Regarde la pièce jointe 1131918

Et ta réponse



Et maintenant tu nous sort :
🤔



*Merci de ton retour

@Phil69970
Phil69970,

Je me suis peux être mal exprimé.

J’avais supprimé :
« Application.PrintCommunication = True » après la modification de l’entête.

Mais il y avait un « Application.PrintCommunication = False » avant la modification de l’entête. Qui n’était pas présent dans les lignes de code que j’avais indiqué.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
85
Réponses
2
Affichages
2 K
Réponses
0
Affichages
1 K
Retour