Je souhaite savoir comment il serait possible lors de la=20
cr=E9ation d'un menu Word en VBA, de lire le fichier=20
contenant un .bmp comme logo de menu
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Geo
Bonjour Jocaste
Bonjour à tous,
Je souhaite savoir comment il serait possible lors de la création d'un menu Word en VBA, de lire le fichier contenant un .bmp comme logo de menu
Je ne connais que le faceId, mais ta question ou du moins la réponse, m'intéresse aussi. Du coup je me demande si on ne peut pas utiliser le .PasteFace pour coller une image sur un CommandBarButton. Faudrait faire ça dans un auto exec.
--
A+
Bonjour Jocaste
Bonjour à tous,
Je souhaite savoir comment il serait possible lors de la
création d'un menu Word en VBA, de lire le fichier
contenant un .bmp comme logo de menu
Je ne connais que le faceId, mais ta question
ou du moins la réponse, m'intéresse aussi.
Du coup je me demande si on ne peut pas utiliser le .PasteFace pour
coller une image sur un CommandBarButton.
Faudrait faire ça dans un auto exec.
Je souhaite savoir comment il serait possible lors de la création d'un menu Word en VBA, de lire le fichier contenant un .bmp comme logo de menu
Je ne connais que le faceId, mais ta question ou du moins la réponse, m'intéresse aussi. Du coup je me demande si on ne peut pas utiliser le .PasteFace pour coller une image sur un CommandBarButton. Faudrait faire ça dans un auto exec.
--
A+
Jocaste
La technique que j'utilise c'est la suivante
Private Sub Create_Menu(MenuName As String) Dim HelpMenu As Object Dim oShape As Shape ' Place le graphique sur le document Set oShape = ActiveDocument.Shapes.AddPicture (FileName:=PathSource + "visiomso.bmp") oShape.Select ' Copie le graphique Selection.CopyAsPicture ' Supprime le graphique du document Selection.Delete ' Copie le graphique sur le premier bouton de la barre de menu
' Spécifie l'endroit où le nouveau menu doit être sauvegardé CustomizationContext = NormalTemplate ' ActiveDocument.AttachedTemplate
' Ajoute menu au Menu Bar Set HelpMenu = CommandBars("Menu Bar").FindControl (ID:0010)
With CommandBars("Menu Bar").Controls .Add(Type:=msoControlPopup, Before:=HelpMenu.Index, Temporary:=True).Caption = MenuName End With --------------------------------------------------------- ' Ajoute les commandes au nouveau menu Call Menu_Manager(MenuName, msoControlButton, False, True, 1362, "Insert Image Visio", "Insert_Image_Visio", "", True)
--------------------------------------------------------- Private Sub Menu_Manager(MenuName As String, TypeButton As Variant, BeginGroup As Boolean, Paste As Boolean, FaceId As Long, _ Caption As String, OnAction As String, TooltipText As String, Enable As Boolean) Dim MenuItem As Object Dim oShape As Shape
With CommandBars("Menu Bar").Controls (MenuName).Controls Set MenuItem = .Add(TypeButton) With MenuItem .BeginGroup = BeginGroup If Paste Then .PasteFace Set oShape = Nothing Else If TypeButton <> msoControlPopup Then .FaceId = FaceId End If End If .Caption = Caption .OnAction = OnAction .TooltipText = TooltipText .Enabled = Enable End With End With End Sub ---------------------------------------------------------- Seulement le problème que j'ai c'est que je dois copier le logo sur le 1er document de la page. Le problème réside dans le fait qu'à partir du windows explorer si je veux ouvrir directement un document la macro se plante. Il faut alors que j'ajoute un document vierge.
Sub AutoExec() If Documents.Count = 0 Then Documents.Add End If End Sub
Je pensais pouvoir lire le logo directement dans le presse papier et ensuite utiliser le reste de mon code pour le placer dans le menu. Ce serait plus propre.
Si vous avez une idée. Merci d'avance pour votre aide.
La technique que j'utilise c'est la suivante
Private Sub Create_Menu(MenuName As String)
Dim HelpMenu As Object
Dim oShape As Shape
' Place le graphique sur le document
Set oShape = ActiveDocument.Shapes.AddPicture
(FileName:=PathSource + "visiomso.bmp")
oShape.Select
' Copie le graphique
Selection.CopyAsPicture
' Supprime le graphique du document
Selection.Delete
' Copie le graphique sur le premier bouton de la barre
de menu
' Spécifie l'endroit où le nouveau menu doit être
sauvegardé
CustomizationContext =
NormalTemplate '
ActiveDocument.AttachedTemplate
' Ajoute menu au Menu Bar
Set HelpMenu = CommandBars("Menu Bar").FindControl
(ID:=30010)
With CommandBars("Menu Bar").Controls
.Add(Type:=msoControlPopup,
Before:=HelpMenu.Index, Temporary:=True).Caption = MenuName
End With
---------------------------------------------------------
' Ajoute les commandes au nouveau menu
Call Menu_Manager(MenuName, msoControlButton, False,
True, 1362, "Insert Image
Visio", "Insert_Image_Visio", "", True)
---------------------------------------------------------
Private Sub Menu_Manager(MenuName As String, TypeButton As
Variant, BeginGroup As Boolean, Paste As Boolean, FaceId
As Long, _
Caption As String, OnAction As
String, TooltipText As String, Enable As Boolean)
Dim MenuItem As Object
Dim oShape As Shape
With CommandBars("Menu Bar").Controls
(MenuName).Controls
Set MenuItem = .Add(TypeButton)
With MenuItem
.BeginGroup = BeginGroup
If Paste Then
.PasteFace
Set oShape = Nothing
Else
If TypeButton <> msoControlPopup Then
.FaceId = FaceId
End If
End If
.Caption = Caption
.OnAction = OnAction
.TooltipText = TooltipText
.Enabled = Enable
End With
End With
End Sub
----------------------------------------------------------
Seulement le problème que j'ai c'est que je dois copier le
logo sur le 1er document de la page.
Le problème réside dans le fait qu'à partir du windows
explorer si je veux ouvrir directement un document la
macro se plante. Il faut alors que j'ajoute un document
vierge.
Sub AutoExec()
If Documents.Count = 0 Then
Documents.Add
End If
End Sub
Je pensais pouvoir lire le logo directement dans le presse
papier et ensuite utiliser le reste de mon code pour le
placer dans le menu. Ce serait plus propre.
Si vous avez une idée.
Merci d'avance pour votre aide.
Private Sub Create_Menu(MenuName As String) Dim HelpMenu As Object Dim oShape As Shape ' Place le graphique sur le document Set oShape = ActiveDocument.Shapes.AddPicture (FileName:=PathSource + "visiomso.bmp") oShape.Select ' Copie le graphique Selection.CopyAsPicture ' Supprime le graphique du document Selection.Delete ' Copie le graphique sur le premier bouton de la barre de menu
' Spécifie l'endroit où le nouveau menu doit être sauvegardé CustomizationContext = NormalTemplate ' ActiveDocument.AttachedTemplate
' Ajoute menu au Menu Bar Set HelpMenu = CommandBars("Menu Bar").FindControl (ID:0010)
With CommandBars("Menu Bar").Controls .Add(Type:=msoControlPopup, Before:=HelpMenu.Index, Temporary:=True).Caption = MenuName End With --------------------------------------------------------- ' Ajoute les commandes au nouveau menu Call Menu_Manager(MenuName, msoControlButton, False, True, 1362, "Insert Image Visio", "Insert_Image_Visio", "", True)
--------------------------------------------------------- Private Sub Menu_Manager(MenuName As String, TypeButton As Variant, BeginGroup As Boolean, Paste As Boolean, FaceId As Long, _ Caption As String, OnAction As String, TooltipText As String, Enable As Boolean) Dim MenuItem As Object Dim oShape As Shape
With CommandBars("Menu Bar").Controls (MenuName).Controls Set MenuItem = .Add(TypeButton) With MenuItem .BeginGroup = BeginGroup If Paste Then .PasteFace Set oShape = Nothing Else If TypeButton <> msoControlPopup Then .FaceId = FaceId End If End If .Caption = Caption .OnAction = OnAction .TooltipText = TooltipText .Enabled = Enable End With End With End Sub ---------------------------------------------------------- Seulement le problème que j'ai c'est que je dois copier le logo sur le 1er document de la page. Le problème réside dans le fait qu'à partir du windows explorer si je veux ouvrir directement un document la macro se plante. Il faut alors que j'ajoute un document vierge.
Sub AutoExec() If Documents.Count = 0 Then Documents.Add End If End Sub
Je pensais pouvoir lire le logo directement dans le presse papier et ensuite utiliser le reste de mon code pour le placer dans le menu. Ce serait plus propre.
Si vous avez une idée. Merci d'avance pour votre aide.
Anacoluthe
Bonjour !
Pas besoin de passer par une insertion dans un document pour lire une image d'un fichier. Utilisez LoadPicture par exemple (vba 6.3)
Anacoluthe « L'image ne peut être étudiée que par l'image. » - Gaston BACHELARD
'Jocaste' nous a écrit ...
La technique que j'utilise c'est la suivante
Private Sub Create_Menu(MenuName As String) Dim HelpMenu As Object Dim oShape As Shape ' Place le graphique sur le document Set oShape = ActiveDocument.Shapes.AddPicture (FileName:=PathSource + "visiomso.bmp") oShape.Select ' Copie le graphique Selection.CopyAsPicture ' Supprime le graphique du document Selection.Delete ' Copie le graphique sur le premier bouton de la barre de menu
' Spécifie l'endroit où le nouveau menu doit être sauvegardé CustomizationContext = NormalTemplate ' ActiveDocument.AttachedTemplate
' Ajoute menu au Menu Bar Set HelpMenu = CommandBars("Menu Bar").FindControl (ID:0010)
With CommandBars("Menu Bar").Controls .Add(Type:=msoControlPopup, Before:=HelpMenu.Index, Temporary:=True).Caption = MenuName End With --------------------------------------------------------- ' Ajoute les commandes au nouveau menu Call Menu_Manager(MenuName, msoControlButton, False, True, 1362, "Insert Image Visio", "Insert_Image_Visio", "", True)
--------------------------------------------------------- Private Sub Menu_Manager(MenuName As String, TypeButton As Variant, BeginGroup As Boolean, Paste As Boolean, FaceId As Long, _ Caption As String, OnAction As String, TooltipText As String, Enable As Boolean) Dim MenuItem As Object Dim oShape As Shape
With CommandBars("Menu Bar").Controls (MenuName).Controls Set MenuItem = .Add(TypeButton) With MenuItem .BeginGroup = BeginGroup If Paste Then .PasteFace Set oShape = Nothing Else If TypeButton <> msoControlPopup Then .FaceId = FaceId End If End If .Caption = Caption .OnAction = OnAction .TooltipText = TooltipText .Enabled = Enable End With End With End Sub ---------------------------------------------------------- Seulement le problème que j'ai c'est que je dois copier le logo sur le 1er document de la page. Le problème réside dans le fait qu'à partir du windows explorer si je veux ouvrir directement un document la macro se plante. Il faut alors que j'ajoute un document vierge.
Sub AutoExec() If Documents.Count = 0 Then Documents.Add End If End Sub
Je pensais pouvoir lire le logo directement dans le presse papier et ensuite utiliser le reste de mon code pour le placer dans le menu. Ce serait plus propre.
Si vous avez une idée. Merci d'avance pour votre aide.
Bonjour !
Pas besoin de passer par une insertion dans un document
pour lire une image d'un fichier.
Utilisez LoadPicture par exemple (vba 6.3)
Anacoluthe
« L'image ne peut être étudiée que par l'image. »
- Gaston BACHELARD
'Jocaste' nous a écrit ...
La technique que j'utilise c'est la suivante
Private Sub Create_Menu(MenuName As String)
Dim HelpMenu As Object
Dim oShape As Shape
' Place le graphique sur le document
Set oShape = ActiveDocument.Shapes.AddPicture
(FileName:=PathSource + "visiomso.bmp")
oShape.Select
' Copie le graphique
Selection.CopyAsPicture
' Supprime le graphique du document
Selection.Delete
' Copie le graphique sur le premier bouton de la barre
de menu
' Spécifie l'endroit où le nouveau menu doit être
sauvegardé
CustomizationContext =
NormalTemplate '
ActiveDocument.AttachedTemplate
' Ajoute menu au Menu Bar
Set HelpMenu = CommandBars("Menu Bar").FindControl
(ID:0010)
With CommandBars("Menu Bar").Controls
.Add(Type:=msoControlPopup,
Before:=HelpMenu.Index, Temporary:=True).Caption = MenuName
End With
---------------------------------------------------------
' Ajoute les commandes au nouveau menu
Call Menu_Manager(MenuName, msoControlButton, False,
True, 1362, "Insert Image
Visio", "Insert_Image_Visio", "", True)
---------------------------------------------------------
Private Sub Menu_Manager(MenuName As String, TypeButton As
Variant, BeginGroup As Boolean, Paste As Boolean, FaceId
As Long, _
Caption As String, OnAction As
String, TooltipText As String, Enable As Boolean)
Dim MenuItem As Object
Dim oShape As Shape
With CommandBars("Menu Bar").Controls
(MenuName).Controls
Set MenuItem = .Add(TypeButton)
With MenuItem
.BeginGroup = BeginGroup
If Paste Then
.PasteFace
Set oShape = Nothing
Else
If TypeButton <> msoControlPopup Then
.FaceId = FaceId
End If
End If
.Caption = Caption
.OnAction = OnAction
.TooltipText = TooltipText
.Enabled = Enable
End With
End With
End Sub
----------------------------------------------------------
Seulement le problème que j'ai c'est que je dois copier le
logo sur le 1er document de la page.
Le problème réside dans le fait qu'à partir du windows
explorer si je veux ouvrir directement un document la
macro se plante. Il faut alors que j'ajoute un document
vierge.
Sub AutoExec()
If Documents.Count = 0 Then
Documents.Add
End If
End Sub
Je pensais pouvoir lire le logo directement dans le presse
papier et ensuite utiliser le reste de mon code pour le
placer dans le menu. Ce serait plus propre.
Si vous avez une idée.
Merci d'avance pour votre aide.
Pas besoin de passer par une insertion dans un document pour lire une image d'un fichier. Utilisez LoadPicture par exemple (vba 6.3)
Anacoluthe « L'image ne peut être étudiée que par l'image. » - Gaston BACHELARD
'Jocaste' nous a écrit ...
La technique que j'utilise c'est la suivante
Private Sub Create_Menu(MenuName As String) Dim HelpMenu As Object Dim oShape As Shape ' Place le graphique sur le document Set oShape = ActiveDocument.Shapes.AddPicture (FileName:=PathSource + "visiomso.bmp") oShape.Select ' Copie le graphique Selection.CopyAsPicture ' Supprime le graphique du document Selection.Delete ' Copie le graphique sur le premier bouton de la barre de menu
' Spécifie l'endroit où le nouveau menu doit être sauvegardé CustomizationContext = NormalTemplate ' ActiveDocument.AttachedTemplate
' Ajoute menu au Menu Bar Set HelpMenu = CommandBars("Menu Bar").FindControl (ID:0010)
With CommandBars("Menu Bar").Controls .Add(Type:=msoControlPopup, Before:=HelpMenu.Index, Temporary:=True).Caption = MenuName End With --------------------------------------------------------- ' Ajoute les commandes au nouveau menu Call Menu_Manager(MenuName, msoControlButton, False, True, 1362, "Insert Image Visio", "Insert_Image_Visio", "", True)
--------------------------------------------------------- Private Sub Menu_Manager(MenuName As String, TypeButton As Variant, BeginGroup As Boolean, Paste As Boolean, FaceId As Long, _ Caption As String, OnAction As String, TooltipText As String, Enable As Boolean) Dim MenuItem As Object Dim oShape As Shape
With CommandBars("Menu Bar").Controls (MenuName).Controls Set MenuItem = .Add(TypeButton) With MenuItem .BeginGroup = BeginGroup If Paste Then .PasteFace Set oShape = Nothing Else If TypeButton <> msoControlPopup Then .FaceId = FaceId End If End If .Caption = Caption .OnAction = OnAction .TooltipText = TooltipText .Enabled = Enable End With End With End Sub ---------------------------------------------------------- Seulement le problème que j'ai c'est que je dois copier le logo sur le 1er document de la page. Le problème réside dans le fait qu'à partir du windows explorer si je veux ouvrir directement un document la macro se plante. Il faut alors que j'ajoute un document vierge.
Sub AutoExec() If Documents.Count = 0 Then Documents.Add End If End Sub
Je pensais pouvoir lire le logo directement dans le presse papier et ensuite utiliser le reste de mon code pour le placer dans le menu. Ce serait plus propre.
Si vous avez une idée. Merci d'avance pour votre aide.