Résolu :Insérer une image en en tête de page en VBA

jacky49

XLDnaute Impliqué
Bonsoir le forum,

j'ouvre une nouvelle discussion car je vais à taton sur mon code et je fais plusieurs essai avant de poster et j'aimerais pouvoir insérer une image en en tête de page à Gauche mais après plusieurs essais infructueux, je post
j'ai ce code mais il me surligne la ligne ci-dessous que j'ai souligné et mis en rouge
merci de votre aide
Code:
Sub PlacementSurLaLigne(ByVal WsName As String)
Dim MaPlage As Range
Dim Derlig As Long

With ThisWorkbook.Worksheets(WsName)
    Derlig = .Range("EL" & .Rows.Count).End(xlUp).Row
Columns("EM:EM").EntireColumn.Hidden = True
Columns("EO:EY").EntireColumn.Hidden = True
     With .PageSetup
        .PrintArea = "EI1:EY" & Derlig
        [COLOR="#FFFF00"][COLOR="#FF0000"][U].LeftHeaderPicture.Filename = "C:\Users\Jacky\Logo.jpg"[/U][/COLOR][/COLOR]
        .CenterHeader = "Times New Roman"
        .CenterHeader = [EN5]
        .RightHeader = "Essai 2"
'        .LeftFooter = ""
        .CenterFooter = ""
'        .RightFooter = ""
    End With
    .PrintOut Copies:=4, Collate:=True
End With
End Sub
 
Dernière édition:

david84

XLDnaute Barbatruc
Re : Insérer une image en en tête de page en VBA

Bonsoir,
issu de l'aide d'Excel (touche F1) :
Code:
L'exemple suivant montre comment ajouter une image intitulée « Sample.jpg » du lecteur C: à la section gauche de l'en-tête. Cet exemple suppose qu'un fichier portant ce nom se trouve bien sur le lecteur C:\.

Visual Basic pour Applications 
Sub InsertPicture()

    With ActiveSheet.PageSetup.LeftHeaderPicture
        .FileName = "C:\Sample.jpg"
        .Height = 275.25
        .Width = 463.5
        .Brightness = 0.36
        .ColorType = msoPictureGrayscale
        .Contrast = 0.39
        .CropBottom = -14.4
        .CropLeft = -28.8
        .CropRight = -14.4
        .CropTop = 21.6
    End With

    ' Enable the image to show up in the left header.
    ActiveSheet.PageSetup.LeftHeader = "&G"

End Sub
Il est également indiqué
Code:
Il est nécessaire que « &G » fasse partie de la chaîne de la propriété LeftHeader afin que l'image s'affiche dans l'en-tête gauche.
Si cela peut t'aider...
A+
 

jacky49

XLDnaute Impliqué
Re : Insérer une image en en tête de page en VBA

Bonjour le forum, David,

Je me suis servi de ce code que j'ai trouvé sur le forum pour faire des essai et lorsque je l'applique de cette façon, il me surligne la 1ère ligne.Donc j'essaie encore de l'adapter de plusieurs manière mais pour le moment sans réussite
Code:
Sub PlacementSurLaLigne(ByVal WsName As String)


merci de votre aide
jacky
 

jacky49

XLDnaute Impliqué
Re : Insérer une image en en tête de page en VBA

Bonsoir,
Voici ce que j'ai essayé de faire
Code:
Sub PlacementSurLaLigne(ByVal WsName As String)
Dim MaPlage As Range
Dim Derlig As Long
 
With ThisWorkbook.Worksheets(WsName)
    Derlig = .Range("EL" & .Rows.Count).End(xlUp).Row
Columns("EM:EM").EntireColumn.Hidden = True
Columns("EO:EY").EntireColumn.Hidden = True
     With .PageSetup.LeftHeaderPicture
        .PrintArea = "EI1:EY" & Derlig
        .Filename = "C:\Utilisateurs\Jacky\Mes Images\Logo.jpg"
        .CenterHeader = "Times New Roman"
        .CenterHeader = [EN5]
        .RightHeader = ""
'        .LeftFooter = ""
        .CenterFooter = ""
'        .RightFooter = ""
.PrintArea = "EI1:EY" & Derlig
    End With
    .PageSetup.LeftHeader = "&G"
    .PrintOut Copies:=4, Collate:=True
End With
End Sub
mais qui ne fonctionne pas, soit ça me surligne la 1ère ligne la ligne ou bien celle-ci
Code:
.PrintArea = "EI1:EY" & Derlig
merci
jacky
 
Dernière édition:

jacky49

XLDnaute Impliqué
Re : Insérer une image en en tête de page en VBA

bonsoir le Forum, David,

je viens d'essayer ce code
Code:
Sub insertionImage_EntetePage()

With ActiveSheet.PageSetup.LeftHeaderPicture
.Filename = "C:\Users\Jacky\Document\Les_Trois_routes.jpg"
.Height = 40 ' redéfinit la largeur de l'image
.Width = 80 ' redéfinit la hauteur de l'image
End With

'Remarque Il est nécessaire que « &G » fasse partie de la chaîne
'de la propriété LeftHeader afin que l'image s'affiche dans l'en-tête gauche
'info issue de l'aide en ligne Excel
ActiveSheet.PageSetup.LeftHeader = "&G"

End Sub
avec le chemin d'accès qui correspond à mon image et cela bug sur cette ligne
Code:
.Filename = "C:\Users\Jacky\Documents\Les_Trois_routes.jpg"
donc c'est surement dans le chemin d'accès mais j'ai essayé aussi celui_ci et cela fait pareil
Code:
.Filename = "C:\Utilisateurs\Jacky\Document\Les_Trois_routes.jpg"
merci
jacky
 
Dernière édition:

david84

XLDnaute Barbatruc
Re : Insérer une image en en tête de page en VBA

Re
si c'est le chemin d'accès qui n'est pas correct, je ne vois pas comment je peux t'aider...place l'image dans le même dossier que le fichier et indique le chemin comme cela pour tester
Code:
.Filename = "ThisWorkbook.Path & "\nomdufichier.jpg"
Si cela fonctionne c'est que tu as fait une erreur dans la recopie du chemin indiqué.
Regarde dans les propriétés du fichier et fait une copie du chemin puis colle-la à la place de ThisWorkbook.Path

A+
 

jacky49

XLDnaute Impliqué
Re : Insérer une image en en tête de page en VBA

Bonjour le forum, david

Donc je viens de refaire un essai avec le code du forum, et la c OK mais des que j'essaie de l'adapter à mon code, cela ne fonctionne pas et j'ai aussi fait comme tu m'as dit david et dans le code du forum, cela fonctionne mais des que je le met dans mon code cela ne fonctionne pas
Code:
Sub PlacementSurLaLigne(ByVal WsName As String)
Dim MaPlage As Range
Dim Derlig As Long


'
With ThisWorkbook.Worksheets(WsName)
    Derlig = .Range("EL" & .Rows.Count).End(xlUp).Row
Columns("EM:EM").EntireColumn.Hidden = True
Columns("EO:EY").EntireColumn.Hidden = True
     With .PageSetup.LeftHeader
        .PrintArea = "EI1:EY" & Derlig
        .Filename = "ThisWorkbook.Path & "\Logo à moi.jpg"
        .CenterHeader = "Times New Roman"
        .CenterHeader = [EN5]
'        .RightHeader = ""
'        .LeftFooter = ""
        .CenterFooter = ""
'        .RightFooter = ""
.PrintArea = "EI1:EY" & Derlig
    End With
    .PageSetup.LeftHeader = "&G"
    .PrintOut Copies:=4, Collate:=True
End With
End Sub
Sub insertionImage_EntetePage()

With ActiveSheet.PageSetup.LeftHeaderPicture
    .Filename = "C:\Documents and Settings\Moi\Dossier\Temp\Image.jpg"
    .Height = 40 '<-- redéfinit la largeur de l'image
    .Width = 80 '<-- redéfinit la hauteur de l'image
End With

ActiveSheet.PageSetup.LeftHeader = "&G" '<-- ajout du code &G

End Sub
il me met la ligne
Code:
.Filename = "ThisWorkbook.Path & "\Logo à moi.jpg"
en erreur et il me surligne en jaune
Code:
PlacementSurLaLigneMouilleron Macro
merci de votre aide
jacky
 
Dernière édition:

jacky49

XLDnaute Impliqué
Re : Insérer une image en en tête de page en VBA

Bonsoir à Tous,

Donc, j'ai réussi en faisant autrement, j'ai donc mon code initial et ensuite en fin de procédure, j'ai ajouté "Call ma macro insertion image" et cela fonctionne mais j'ai un autre petit souci, je voudrais mettre l'image dans l'en-tête de page à Gauche et aussi à Droite et je voulais savoir ou l'ajouté dans le code
Code:
Sub insertionImage_EntetePage()

With ActiveSheet.PageSetup.LeftHeaderPicture
    .Filename = "C:\Users\Jacky\Documents\\Logo à moi.jpg"
'    .Height = 40 '<-- redéfinit la largeur de l'image
'    .Width = 80 '<-- redéfinit la hauteur de l'image
End With

ActiveSheet.PageSetup.LeftHeader = "&G" '<-- ajout du code &G

End Sub
merci
jacky
 

david84

XLDnaute Barbatruc
Re : Insérer une image en en tête de page en VBA

Re
il faut absolument que tu te serves des exemples placés dans l'aide Excel et que tu regardes le code d'un peu plus près...
Ton code pour l'emplacement à droite :
Code:
Sub insertionImage_EntetePage()

'With ActiveSheet.PageSetup.LeftHeaderPicture 'emplacement à gauche
With ActiveSheet.PageSetup.RightHeaderPicture 'emplacement à droite
.Filename = ThisWorkbook.Path & "\monfichier.jpg"
.Height = 40 ' redéfinit la largeur de l'image
.Width = 80 ' redéfinit la hauteur de l'image
End With

'Remarque Il est nécessaire que « &G » fasse partie de la chaîne
'de la propriété LeftHeader afin que l'image s'affiche dans l'en-tête gauche
'info issue de l'aide en ligne Excel
'ActiveSheet.PageSetup.LeftHeader = "&G" 'emplacement à gauche
ActiveSheet.PageSetup.RightHeader = "&G" 'emplacement à droite
End Sub
Il ne te reste plus qu'à l'adapter si tu veux un affichage de l'image des 2 côtés.
A+
 

jacky49

XLDnaute Impliqué
Re : Insérer une image en en tête de page en VBA

Bonsoir le forum, David,

oui, c'est ce j'essaie de faire mais il n' y a pas de bug mais l'image ne s'affiche qu'à gauche, je pensais avoir mis le "bon" code que j'avais fait mais apparement non alors je te le joins et j'essaie le tien
Code:
Sub insertionImage_EntetePage()

With ActiveSheet.PageSetup.LeftHeaderPicture
    .Filename = "C:\Users\Jacky\Documents\Logo à moi.jpg"
'    .Height = 40 '<-- redéfinit la largeur de l'image
'    .Width = 80 '<-- redéfinit la hauteur de l'image
End With
With ActiveSheet.PageSetup.RightHeaderPicture
    .Filename = "C:\Users\Jacky\Documents\Logo à moi.jpg"
'    .Height = 40 '<-- redéfinit la largeur de l'image
'    .Width = 80 '<-- redéfinit la hauteur de l'image
End With
ActiveSheet.PageSetup.LeftHeader = "&G" '<-- ajout du code &G
ActiveSheet.PageSetup.RightHeader = "&D" '<-- ajout du code &D

End Sub
merci
jacky
 

Discussions similaires