Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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 ?

 

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 ?
 

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
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...)
 
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



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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…