XL 2010 VBA Modification de l’en-tete

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
 

BigJose

XLDnaute Nouveau
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
 

TooFatBoy

XLDnaute Barbatruc
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.
 

BigJose

XLDnaute Nouveau
J’ai remplacé la formule par une chaîne de caractère « toto » et j’ai le même soucie.

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
 

TooFatBoy

XLDnaute Barbatruc
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 ?
 

Phil69970

XLDnaute Barbatruc
Re

1)Chez moi la macro que tu avais fourni ne lançait pas l'impression d’où mon post pour réglé ce problème

2) Fait une copie d'écran de ce que tu as en mode pas à pas chez moi j'ai ceci

1645784079988.png


@Phil69970
 

BigJose

XLDnaute Nouveau
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
 

TooFatBoy

XLDnaute Barbatruc
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:

Phil69970

XLDnaute Barbatruc
@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

XLDnaute Nouveau
@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é.
 

Discussions similaires