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

Contribuez Discussion :

image stockée en binaire dans le classeur pour affichage dans le ruban


Sujet :

Contribuez

  1. #1
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut image stockée en binaire dans le classeur pour affichage dans le ruban
    Bonjour à tous,

    un petit classeur pour démo, trop de code.

    Dans ce classeur, vous pouvez stocker des images (jpeg, gif, png, ico, etc.) sur une feuille en binaire et modifier l'image d'un bouton du ruban avec les données de cette feuille.

    Utilisation de GDIplus

    Lorsque vous changer l'item du dropDown, l'image du bouton change aussi.

    Lorsque vous ajouter une image:

    une boite de dialogue standard "Ouvrir" s'affiche

    une fois le fichier choisi, un UserForm est créé.

    dans ce userform, vous pouvez afficher l'image en cochant la case correspondante. Si l'image d'origine est plus grande que celle affichée, une petite loupe s'affiche, cette loupe n'est pas dans le classeur, elle est crée à partir d'un tableau (cf le tableau tabZoom). En cliquant sur l'image, elle est affichée à sa taille d'origine ou adaptée aux dimensions de l'écran.

    Une fois l'image chargée, vous devrez peut être fermer et rouvrir le classeur. Je n'ai pas trouvé de solution pour éviter cet inconvénient. Le ruban ce décharge et je ne vois pas comment le recharger (LoadCustomUI ne fonctionne pas sur Excel).

    Une fois rouvert, vous pouvez afficher votre image sur le bouton.

    Vous pouvez aussi adapter un texte pour le screentip et le supertip.
    Ces infos sont stockées sur la feuille donnée.

    Le classeur est "uploadé" au format 2007 pour ne pas perdre le ruban.



    Le code xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
     
    <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad ="GetmonRubanDyna">
        <ribbon startFromScratch ="false" >
            <tabs >
                <tab id="fred65200" label ="fred65200">
                    <group id ="gr01" label ="Image" keytip="BB">
     
                        <button id="btnDyna"
                            size ="large"
                            showLabel="true"
                            showImage="true"
                            tag="AfficherInfos"
                            getImage="GetImages"
                            getLabel="GetLabels"
                            getScreentip="GetScreentips"
                            getSupertip="GetSupertips"
                        ></button>
     
                        <dropDown id ="ddDyna"
                            visible ="true"
                            enabled="true"
                            showLabel ="true"
                            label ="Choisir"
                            screentip ="Choisir une image"
                            supertip ="Utilisez ce dropDown pour choisir l'image à afficher sur le bouton de droite.  En bas deux boutons pour ajouter ou retirer des images.  Ne placez pas d'image trop lourde. Pour le "fun", j'ai testé avec une image de 945 Ko. Ça fonctionne mais j'ai eu le temps de me faire un café... :-)"
                            keytip="I"
                            showItemLabel ="true"
                            showItemImage ="true"
     
                            getSelectedItemIndex="DropDownSelectedItemIndex"
                            getItemCount="NbItemDropDown"
                            getItemLabel="DropDownLabel"
                            getItemImage="DropDownImage"
                            getItemScreentip="DropDownScreentip"
                            getItemSupertip="DropDownSupertip"
     
                            onAction="DropDownChange"
                        >
                            <button id ="btn01"
                                label = "Ajouter"
                                imageMso ="Redo"
                                keytip = "CC"
                                tag="AjouterImage"
                                onAction ="ButtonOnAction"
                            ></button>
     
                            <button id ="btn02"
                                label = "Supprimer"
                                imageMso="Undo"
                                keytip = "S"
                                tag="SupprimerImage"
                                onAction ="ButtonOnAction"
                            ></button>
     
                        </dropDown>
     
                        <separator id="sep3" />
     
                        <toggleButton id="TglBtnInfo"
                            label="Info"
                            keytip="!"
                            showLabel="false"
                            getImage="getImages"
                            onAction="ToogleButtonOnAction"
                            screentip="À propos..."
                        ></toggleButton>
     
                        <button id="BtnInfo"
                            keytip = "?"
                            label="fred65200 pour developpez.com"
                            supertip="Envoyer un email à fred65200"
                            imageMso="ObjectsSelect"
                            size="large"
                            getVisible="GetVisible"
                            tag ="Info"
                            onAction="ButtonOnAction"
                        ></button>
    <!-- pour afficher une info supplémentaire -->
                        <dialogBoxLauncher>
     
                            <button id="grpPrincipal_dlB"
                                screentip="Qu'est ce qu'on s'amuse avec la version 2007."
                                supertip="Ligne 1 Ligne 2 Ligne 3 on utilise   pour sauter une ligne (le Chr(13) du xml)."
                            ></button>
     
                        </dialogBoxLauncher>
                    </group>
                </tab>
            </tabs>
        </ribbon>
    </customUI>
    Cordialement


    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    Bravo Fred pour cette très belle démo

  3. #3
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    Merci

Discussions similaires

  1. [XL-2010] Macro Parcourir pour ouvrir classeur / copier données dans autre classeur
    Par rom22950 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/08/2014, 15h54
  2. Réponses: 0
    Dernier message: 08/05/2014, 14h06
  3. Réponses: 6
    Dernier message: 17/03/2011, 14h12
  4. Réponses: 2
    Dernier message: 19/03/2008, 11h58
  5. Réponses: 5
    Dernier message: 04/05/2006, 15h38

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