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

Macros et VBA Excel Discussion :

Call back xml et vba


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté Avatar de CODYCO
    Homme Profil pro
    Webplanneur
    Inscrit en
    Avril 2009
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webplanneur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 217
    Par défaut Call back xml et vba
    Bonjour à tous!

    De nouveau je sollicite votre aide, bien entendu apres avoir fait moulte recherche sur notre fofo préféré et nénette.

    Voila j'ai adapté mon code vba 2003 en 2010.
    Sous 2003 je créer une barre d'outils personnel, adapté avec le ruban sous xml pour 2010. jusque là tout va bien.

    Sauf que sous vba 2003 certain de mes boutons avaient l'attribut .enable= false en fonction de la navigation et reprenez l'attribut "True" à certain moment ceci afin de guider l'utilisateur.

    Sous 2010 cette attribut ce gere dès le xml avec "getenable" et via le callback coreespondant.

    Mais voila j'ai un peu de mal avec ces codes vba, je ne vois pas trop comment changer l'attribut du bouton pendant l'éxecution globale de mon code sans passer par callback Sub correspondant au bouton.

    J'ai le meme probleme avec une label.edit dont je veux modifier le label dynamiquement pendant le déroulement de ma macro. Je m'en sert pour afficher des infos de déroulement et d'avancement. J'ai bien trouver le getlabel mais meme soucis.

    Merci de vos lumières...

  2. #2
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 113
    Par défaut
    Salut

    Le mieux je pense est de déclarer une variable de porté Module ( tu places les déclarations dans un module)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Public Bouton1Enabled as Boolean
    Public objRuban As IRibbonUI
    Tu devrais déjà avoir le callback Load
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'Callback for customUI.onLoad
    Sub RubanCharge(ribbon As IRibbonUI) 'le nom varie en fonction de ton choix dans le code xml
    Set objRuban = ribbon
    End Sub
    Ensuite dans le Callback du bouton1 tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Bouton1_Enabled(control As IRibbonControl, ByRef returnedVal)
        returnedVal = Bouton1Enabled
    End Sub

    Ensuite dans ton code, pour modifier l'etat du bouton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    '[...] Ton code
    Bouton1enabled = False
    'Tu rafraîchi le ruban
    objRuban.InvalidateControl "Bouton1"
     
    '[...]Suite de ton code
    Fait un essai comme ça.

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  3. #3
    Membre expérimenté Avatar de CODYCO
    Homme Profil pro
    Webplanneur
    Inscrit en
    Avril 2009
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webplanneur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 217
    Par défaut enfin
    Je te remercie pour ton unique réponse, je veux bien comprendre que le mariage du xml et vba ne pasionne pas encore les foules mais bientot tout le monde devra s'y coller sous peine de rester sous 2003 à vie.

    Je comprend déjà mieux ton explication que toutes celles que j'ai pu trouver sur le net.

    Je test ca dès demain matin au bureau... et reviendrais pour un merci ou de plus ample renseignement.

  4. #4
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 113
    Par défaut
    Salut
    Si des fois tu ne l'avais pas trouvé il y a ce très bon tutoriel de Silkyroad au sujet du ruban.
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  5. #5
    Membre expérimenté Avatar de CODYCO
    Homme Profil pro
    Webplanneur
    Inscrit en
    Avril 2009
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webplanneur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 217
    Par défaut ARf
    Qwazerty merci égallement,

    Oui je suis allé voir le tuto qui m'a en grande partie fomé sur l'ensemble.
    Cependant je n'obtiens pas le résultat attendu, je te donne les morceau de code pour etre plus claire...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
    <!-- Indiquez True pour masquer tous les autres onglets standards-->
    <ribbon startFromScratch="true">
     
    <tabs>
      <!-- Crée un onglet personnalisé: -->
      <!-- Utilisez insertAfterMso="NomOngletPrédéfini" pour préciser l'emplacement de l'onglet-->
      <tab id="Navigation" label="Navigation" visible="true">
     
    	<!-- Crée un groupe -->  
        <group id="Barre_Info" label="Barre Information">
    	<labelControl id="info" getLabel="ValeurInfo" />
        </group>
    Ca c'est la partie de mon 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
     
    Option Explicit
    Public info As Booléan
    Public MonRuban As IRibbonUI
     
    Sub RubanCharge(ribbon As IRibbonUI)
    Set MonRuban = ribbon
    info = "Veuillez importez votre fichier CSV à l'aide du bouton IMPORT" 'étant le message de départ que je veux afficher et ensuite modifié...
    MonRuban.InvalidateControl "info"
    End Sub
     
    'Callback for info getLabel
    Sub ValeurInfo(control As IRibbonControl, ByRef returnedVal)
    returnedVal = info
    End Sub
     
    'et cette partie étant celle qui déclenche mon action et doit aussi rafraichir le label de la barre info...
    'Callback for Import onAction
    Sub Import(control As IRibbonControl)
    Call ImportCSV
    info = "test la modif affichage"
    'Tu rafraîchi le ruban
    MonRuban.InvalidateControl "info"
    End Sub
    et pour le moment je n'y parviens pas...

  6. #6
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 113
    Par défaut
    Salut
    Ha ben non dans le cas du label il te faut une variable de type string

    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
    Option Explicit
    Public info As String 'Attention Boolean ne prend pas d'accent ;)
    Public MonRuban As IRibbonUI
     
    Sub RubanCharge(ribbon As IRibbonUI)
    Set MonRuban = ribbon
    info = "Veuillez importez votre fichier CSV à l'aide du bouton IMPORT" 'étant le message de départ que je veux afficher et ensuite modifié...
    MonRuban.InvalidateControl "info"
    End Sub
     
    'Callback for info getLabel
    Sub ValeurInfo(control As IRibbonControl, ByRef returnedVal)
    returnedVal = info
    End Sub
     
    'et cette partie étant celle qui déclenche mon action et doit aussi rafraichir le label de la barre info...
    'Callback for Import onAction
    Sub Import(control As IRibbonControl)
    Call ImportCSV
    info = "test la modif affichage"
    'Tu rafraîchi le ruban
    MonRuban.InvalidateControl "info"
    End Sub
    Essai comme ça
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

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

Discussions similaires

  1. Traiter un fichier xml sous vba 2003
    Par Zenerox dans le forum VBA Access
    Réponses: 2
    Dernier message: 17/06/2008, 10h34
  2. Réponses: 2
    Dernier message: 12/09/2007, 11h23
  3. [PHP-JS] call back php
    Par silver.spike dans le forum Langage
    Réponses: 1
    Dernier message: 09/03/2007, 16h36
  4. Lire un fichier XML avec VBA
    Par Mouse dans le forum Général VBA
    Réponses: 1
    Dernier message: 15/06/2006, 19h56
  5. [C#][2.0] Client Call back
    Par dLab dans le forum ASP.NET
    Réponses: 3
    Dernier message: 20/02/2006, 16h08

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