IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

ICONES PERSONNALISES DANS COMPLEMENT OUTLOOK EN VB .NET


Sujet :

VB.NET

  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2019
    Messages : 18
    Par défaut ICONES PERSONNALISES DANS COMPLEMENT OUTLOOK EN VB .NET
    Bonjour,

    Je travaille actuellement sur la création d'un complément Outlook en VB .NET qui me permettra d'ajouter diverses fonctionnalités directement accessibles depuis l'Outlook des utilisateurs.
    Les icônes imageMso étant un peu tristes, je voudrais pouvoir afficher mes propres icônes dans le ruban que j'ai créé.


    voici le code XML raccourci à titre d'exemple: (Le bouton 12 avec une image MSo et le bouton13 avec un icone personnalisé)

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0" encoding="UTF-8"?>
    <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load" loadImage="GetImage">
    	<ribbon>
    		<tabs>
    			<tab idMso="TabAddIns" label = "Mysoft">
    				<group id="MyGroup" label="TICKETS" imageMso="GroupManageTask" autoScale="true">
    					<button id="button12" label="Créer un ticket" imageMso = "GroupManageTask" size="large" onAction = "Button12_action" />
    					<button id="button13" label="Voir les tickets en cours" getImage="ticket.ico" size="large" onAction = "Button13_action" />
    				</group>
    			</tab>
    		</tabs>
    	</ribbon>
    </customUI>

    Peut-on stocker les icônes personnalisés dans les ressources du projet ?
    A partir de ce code XML, comment afficher afficher mes propres icônes dans le ruban ? Quel serait le code vb .NET pour charger les icônes ?

    Merci d'avance de votre aide !

    Cordialement

    Matou

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 930
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 930
    Par défaut
    De mémoire, parce que ça remonte à loin, l'attribut à utiliser est image et non pas getImage.
    Et si tu veux utiliser les ressources du projet, il faut mettre ton icône en tant que ressource et utiliser le nom sous lequel elle est référencée.

    Ce qui donne ce XML :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    <button id="button13" label="Voir les tickets en cours" image="NomDeLaRessource" size="large" onAction = "Button13_action" />

    Et le code suivant pour lire la ressource :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Properties.Resources.ResourceManager.GetObject(resourceName);
    Edit :
    Regarde ce lien :
    https://bettersolutions.com/csharp/v...gner-icons.htm

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2019
    Messages : 18
    Par défaut Toujours pas
    Bonjour,

    je te remercie de ta réponse. Mon projet est en VB. J'ai bien essayé de transformer en VB le C# du code que tu m'as donné ainsi que celui du site, mais sans succès.

    Je suis toujours au point mort...

    Une idée d'un code en VB ?

    Merci d'avance.

  4. #4
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 930
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 930
    Par défaut
    Le VB.NET et le C#, c'est juste une question syntaxe. Il existe de nombreux sites qui proposent des traductions tellement c'est simple.

  5. #5
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2019
    Messages : 18
    Par défaut
    Tellement simple pour un expert confirmé, mais insoluble pour le commun des mortels...

    J'ai suivi ton conseil et j'ai donc utilisé des sites pour traduire les morceaux de code. Une fois collé dans Visual Studio, cela génère des erreurs que je ne parviens pas à résoudre.

    Aurais-tu ou sais-tu où je pourrais trouver un projet en VB .NET dans lequel le chargement des icônes personnalisés fonctionne?

    Merci d'avance.

  6. #6
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 930
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 930
    Par défaut
    Non, c'est simple car c'est le même langage.
    Ce n'est pas une façon de parler, la différence réside dans la syntaxe.
    Même si VB.Net évolue moins vite que C#, cela reste du .Net et la manière de penser est la même (du moins jusqu'au Framework 4.8)

    Je ne fais pas de VB.Net très souvent alors il m'arrive d'oublier la syntaxe.
    Généralement lorsque je colle mon code C# sur le site ci-dessous, il est correctement transformé en VB.Net
    https://icsharpcode.github.io/CodeConverter/

    De toute manière, le site que je t'ai donné est en VB.Net
    Le code ci-dessous extrait de ce site n'est pas du C# mais bien du VB.Net
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Function GetImage(ByVal control as Office.IRibbonControl) as stdole.IPictureDisp 
       Return BitmapToIPicture.Convert(My.Resources.NAME) 
    End Function
    Si tu as des erreurs, donnes les ici, accompagnées du code qui les provoque.

    Edit :
    En regardant ces différents sites, tu devrais pouvoir déduire, ce qu'il faut faire.

    https://10tec.com/articles/excel-vst...on-button.aspx

    Après je suis parti du principe que c'était un addin VSTO, il faudrait préciser si ce n'est pas le cas.

  7. #7
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2019
    Messages : 18
    Par défaut Toujours pas...
    Bonjour,

    Il s'agit bien d'un add-in VSTO sous Visual Studio 2019. J'ai essayé plusieurs solutions, mais toujours sans succès...

    Je repars donc depuis le début:
    Mon ribbon.xml
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0" encoding="UTF-8"?>
    <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load" loadImage="GetImage">
    	<ribbon>
    		<tabs>
    			<tab idMso="TabAddIns" label = "Mysoft">
    				<group id="MyGroup" label="TICKETS" imageMso="GroupManageTask" autoScale="true">
    					<button id="button12" label="Créer un ticket" imageMso = "GroupManageTask" size="large" onAction = "Button12_action" />
    					<button id="button13" label="Voir les tickets en cours" Image="ticket.bmp" size="large" onAction = "Button13_action" />
    				</group>
    			</tab>
    		</tabs>
    	</ribbon>
    </customUI>

    Dans le fichier ribbon.vb (en dessous de GetCustomUI)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Public Function GetImage(ByVal control As Office.IRibbonControl) As stdole.IPictureDisp
            Return BitmapToIPicture.Convert(My.Resources.NAME)
        End Function
    Dans la fonction GetImage, j'obtiens l'erreur 30456 "NAME n'est pas un membre my.ressources"

    J'ai essayé cette autre syntaxe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Public Function getImage(ImageName As String)
            Return My.Resources.ResourceManager.GetObject(ImageName)
        End Function
    Pas de message d'erreur, mais mes icones n'apparaissent toujours pas.

    Merci d'avance de ton aide!

    J'ai oublié de préciser que je suis sous Outlook 365 au cas où cela aurait une importance.

    Ces icones personnalisées sont très importantes pour mon projet.

  8. #8
    Membre chevronné Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 339
    Par défaut
    Citation Envoyé par Matou17 Voir le message
    Il s'agit bien d'un add-in VSTO sous Visual Studio 2019. J'ai essayé plusieurs solutions, mais toujours sans succès...
    Salut,
    J'ai créé un AddIn pour Excel qui fonctionne aussi en version 365.
    Pour le ruban, j'ai personnalisé les icones avec des images au format PNG.

    J'ai utilisé l'explorateur de solution et l'éditeur de propriétés :
    Nom : ImageInRibbon.png
Affichages : 425
Taille : 39,1 Ko

    En espérant t'avoir aidé.
    Bonne journée.

  9. #9
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2
    Par défaut
    Bonjour,
    Mille excuses si cette réponse est hors sujet car je ne suis pas familier de ces développements.

    J'utilise dans un projet VB nommé "Quel_code_CIM10", des images sous format "bmp" stockées dans les ressources, auxquelles j'accède avec la syntaxe suivante pour l'image "Ght_Image"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            Dim myAssemblyIndicateurs As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly()
            Dim myStreamIndicateurs As System.IO.Stream = Nothing
            myStreamIndicateurs = myAssemblyIndicateurs.GetManifestResourceStream("Quel_code_CIM10.Ght_Image.bmp")
            Dim imageIndicateurs As New Bitmap(myStreamIndicateurs)
            Clipboard.SetImage(imageIndicateurs)
    Bien à vous

  10. #10
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2019
    Messages : 18
    Par défaut
    @r.morel

    Bonjour,

    Je te remercie de ta réponse. J'ai essayé un bandeau avec des icônes personnalisés pour Excel, et ça fonctionne sans problème. Vu dans le tuto que m'avait donné @popo

    Malheureusement, le Custom UI editor ne fonctionne pas avec Outlook.

    Cordialement,

    Matou17

  11. #11
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2019
    Messages : 18
    Par défaut
    Bonjour,

    J'essaye toujours de dépatouiller mon pb d'icônes.

    Dans mon ribbon.XML, j'ai:
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?xml version="1.0" encoding="UTF-8"?>
    <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load" loadImage="Ribbon_LoadImage">

    Dans le ribbon.vb La fonction Ribbon_LoadImage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Public Function Ribbon_LoadImage(ByVal resourceName As String) As Object
            Dim bitmap As System.Drawing.Bitmap = CType(My.Resources.ResourceManager.GetObject(resourceName), System.Drawing.Bitmap)
            Return CType(AxHost.GetIPictureDispFromPicture(bitmap), stdole.IPictureDisp)
        End Function
    Elle me donne le message d'erreur suivant:

    Nom : err.png
Affichages : 410
Taille : 43,2 Ko

    J'avoue de pas y comprendre grand chose, une idée ?

    Merci d'avance

    Matou 17

  12. #12
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2019
    Messages : 18
    Par défaut Problème presque résolu
    Bonjour,

    Après de nombreux essais, j'ai enfin résolu la première partie du problème. J'espère que cela pourra servir à d'autres personnes.

    Voici un code qui fonctionne correctement:

    En ce qui concerne le RIBBON.XML:
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0" encoding="UTF-8"?>
    <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load" loadImage="GetImage">
    	<ribbon>
    		<tabs>
    			<tab idMso="TabAddIns" label = "Mysoft">
    				<group id="MyGroup" label="TICKETS" imageMso="GroupManageTask" autoScale="true">
    					<button id="button12" label="Créer un ticket" imageMso = "GroupManageTask" size="large" onAction = "Button12_action" />
    					<button id="button13" label="Voir les tickets en cours" Image="asterisque" size="large" onAction = "Button13_action" />
    				</group>
    			</tab>
    		</tabs>
    	</ribbon>
    </customUI>

    RIBBON.VB
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Public Function GetImage(ByVal ImageName As String) As System.Drawing.Image
            Return CType(My.Resources.ResourceManager.GetObject(ImageName), System.Drawing.Image)
        End Function
    - Important: il faut d'abord importer les fichiers d'icônes dans les ressources du projet. Les fichiers doivent être eu format .png, et appelés dans le XML sans extension (Image="asterisque")
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    Il me reste le problème suivant:
    - J'ai importé d'autres fichiers png dans les ressources avec les mêmes caractéristiques que l’icône qui fonctionne:
    - taille entre 10 et 20Ko
    - dimensions entre 150x150 et 225x225
    Certains icônes fonctionnent, et d'autres pas avec les mêmes caractéristiques.

    J'ai essayé de nombreux fichiers et j'en ai seulement 4 qui s'affichent correctement.Y aurait-il une manip à faire autre que d'importer un nouveau fichier dans les ressources, genre un traitement à effectuer après dans VS2019?

    Qui aurait une idée ??

    Matou17

  13. #13
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2019
    Messages : 18
    Par défaut
    Le fait d'ajouter un nouvel élement (fichier png) depuis les ressources ne suffit pas pour s'en servir comme icône dans le ruban.

    Pour qu'une image soit utilisable, il faut ajouter dans le projet un élément Ruban(Concepteur visuel) , y créer un bouton et depuis les propriétés du bouton importer le fichier image.

    Mettre le XML à jour avec le nom de l'icône, et cela fonctionne!

    J'ai bien galéré pour trouver la solution, j'espère que ça pourra aider.

    Matou17

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.NET] Ecrire dans EXCEL 2002 depuis VB.net
    Par vijeo dans le forum Windows Forms
    Réponses: 4
    Dernier message: 13/06/2006, 13h09
  2. [vb.net]outlook et vb.net
    Par ghotique dans le forum Windows Forms
    Réponses: 1
    Dernier message: 19/05/2006, 09h24
  3. pb icone aléatoire dans explorateur windows
    Par wello00 dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 02/09/2005, 17h00
  4. [VB.NET] Outlook via VB.NET invisible
    Par geget dans le forum Windows Forms
    Réponses: 5
    Dernier message: 30/08/2004, 08h56
  5. Icone/bouton dans la barre des taches...
    Par dynobremo dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 28/02/2003, 12h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo