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 :

Ruban Excel, récupérer données de plusieurs editBox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur STC, systèmes de supervision
    Inscrit en
    Juin 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur STC, systèmes de supervision
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 58
    Par défaut Ruban Excel, récupérer données de plusieurs editBox
    Bonjour à tous !

    J'ai un problème pour récupérer les données de deux editBox créées dans mon reuban Excel. J'ai suivit le tuto donné par le site mais çà se passe pas comme je voudrais : mes valeurs restent à 0...

    Voici le code XML intéressant :

    Code xml : 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
    				<group id="CreationEtiquettesNouveau" label="Nouveau tableau">					
    					<box id="Box2" boxStyle="horizontal">
    						<box id="Box22" boxStyle="vertical">
    							<editBox id="editBox222" 
    								screentip="Indiquez ici la hateur que vous voulez donner aux cellules." 
    								sizeString="00000000"
    								maxLength="8"
    								onChange="RecupDonnee222" />
    						</box>
    						<box id="Box23" boxStyle="vertical">
    							<editBox id="editBox232" 
    								screentip="Indiquez ici la largeur que vous voulez donner aux cellules." 
    								sizeString="00000000"
    								maxLength="8" 
    								onChange="RecupDonnee232" />
    						</box>						
    						<box id="Box24" boxStyle="vertical">
    							<button id="BT242" label="Réinitialiser cellules" screentip="Réinitialiser cellules."
    								onAction="Dimensionner"
    								supertip="Permet de réinitialiser toutes les cellules aux dimensions données ci-contre"
    								imageMso="StartAfterPrevious" />
    						</box>						
    					</box>					
    				</group>

    Et le code VBA associé :

    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
    '1er module : 
    Option Explicit
     
    Dim HC As Double
    Dim LC As Double
     
    'On récupère la hauteur des cellules
    Sub RecupDonnee222(control As IRibbonControl, valeur As Double)
        HC = valeur
    End Sub
     
    'On récupère la largeur des cellules
    Sub RecupDonnee232(control As IRibbonControl, valeur As Double)
        LC = valeur
    End Sub
     
    '2e module :
    Sub Dimensionner(control As IRibbonControl)
     
        Msgbox HC
        Msgbox LC
     
    End Sub
    Je pense avoir rigoureusement fait la même chose que dans le tuto (cf. III-f-8) sauf que çà marche pas :-/
    J'ai essayé en mettant les variables HC et LC en Public et aussi de mettre toutes les macros dans le même module (standard) mais rien à faire, je ne vois pas comment m'y prendre...

    Quelqu'un aurait une solution svp?

    Merci d'avance!

  2. #2
    Membre expérimenté
    Homme Profil pro
    Pompier de service
    Inscrit en
    Février 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Pompier de service

    Informations forums :
    Inscription : Février 2014
    Messages : 146
    Par défaut
    Pas tout à fait la même chose que je vois dans le tuto...

    Et si tu essayes de passer ton argument "valeur" en String au lieu de Double, puis de faire un HC = Cdbl(valeur), ça change quelque chose ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur STC, systèmes de supervision
    Inscrit en
    Juin 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur STC, systèmes de supervision
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 58
    Par défaut
    Salut,

    Merci de te pencher sur mon cas mais... Fausse piste!

    Je n'ai pas de message d'erreur au lancement de ma macro et lorsque je met un point d’arrêt sur RecupDonnee222, je vois bien que HC prend la valeur souhaitée. Seulement, quand je met un point d'arrêt sur Dimensionner, je remarque que HC est vide...

    C'est pour çà que j'ai essayé de déclarer mes variables en 'Public' mais çà ne suffit pas...

    Ce qui pourrait marcher, c'est d'appeler RecupDonnee222 dans la macro Dimensionner! Mais je ne vois pas comment faire, à cause du control As IRibbonControl j'ai un jolis message d'erreur Argument is not optional et je ne vois pas quoi répondre à çà...

  4. #4
    Membre expérimenté
    Homme Profil pro
    Pompier de service
    Inscrit en
    Février 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Pompier de service

    Informations forums :
    Inscription : Février 2014
    Messages : 146
    Par défaut
    Re !

    Bon, je viens de reprendre ton exemple complet, et j'ai fait à l'identique, si ce n'est que les 3 sub RecupDonnee222, RecupDonnee232 et Dimensionner ainsi que la déclaration de HC et LC sont dans le même module... et tout fonctionne correctement !

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur STC, systèmes de supervision
    Inscrit en
    Juin 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur STC, systèmes de supervision
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 58
    Par défaut
    Re!

    C'est exacte çà marche aussi pour moi...

    Par contre, j'ai eu à stopper une macro et depuis, çà ne marche plus : il faut que je re-rentre les valeurs dans les editBox!
    Ducoup çà serait quand même bien de pouvoir appeler RecupDonnee222 dans une macro ^^

    En attendant, je vais voir comment actualiser mon editBox...

    merci encore!

    Re-bonjour,

    J'ai deux petites questions:
    Est-il possible d'avoir les editBox du ruban renseignées à l'ouverture du classeur?
    Je n'ai trouvé aucun attribut pour renseigner une valeur par défaut dans le tuto
    Est-il possible de renseigner ces editBox par macro?
    Le chapitre V du tuto pour actualiser les controls ne marche que si on n'a pas arreté VBA en appuyant sur le bouton stop ; donc, çà ne m'aide pas!
    En revanche j'ai trouvé sur un forum comment appeler une fonction du ruban :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub AppelerMacro()
        Dim ctrl As IRibbonControl    
        Call Dimensionner(ctrl)
    End Sub
    C'est utile mais je suis pas plus avancé pour rafraîchir mes petites editBox : j'ai besoin, pour appeler RecupDonnee222, de renseigner un deuxième argument qui est celui que je veux obtenir : HC (ou valeur)...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub AppelerMacro()
        Dim ctrl As IRibbonControl   
        Dim Val As Double 
        Call RecupDonnee222(ctrl, Val)
    End Sub
     
    Sub RecupDonnee222(control As IRibbonControl, Valeur As Double)
        HC = Replace(Valeur, ".", ",")
        'ici "Valeur" ne vaut pas le champs renseigné mais vaut "Val", c'est à dire : rien 
        'Idem pour HC
    End Sub
    Ducoup je suis coincé

    Merci pour les rep!

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonjour,

    Citation Envoyé par Symone Voir le message
    ...
    En revanche j'ai trouvé sur un forum comment appeler une fonction du ruban :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub AppelerMacro()
        Dim ctrl As IRibbonControl    
        Call Dimensionner(ctrl)
    End Sub
    C'est utile mais je suis pas plus avancé pour rafraîchir mes petites editBox : j'ai besoin, pour appeler RecupDonnee222, de renseigner un deuxième argument qui est celui que je veux obtenir : HC (ou valeur)...
    ...
    oui mais il est sur que cela ne t'apporte pas grand chose car Ctrl n'est pas initialisé ... et donc si ta procédure Dimensionner fonctionne c'est juste parce qu'elle n’interagit pas avec ton ruban..


    La question que tu devrais te poser est pourquoi utilise tu le "STOP" VBA qui ré-initialise toutes les variables ?


    Pour tes variables HC et LC , tu pourrai stocker par exemple leur valeurs dans une cellule d'une tes feuilles de calculs ce qui t'éviterais de perdre sur un "STOP" Vba...

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

Discussions similaires

  1. [10g] Récupérer données de plusieurs bases dans un seul script
    Par damienopolis dans le forum PL/SQL
    Réponses: 4
    Dernier message: 13/01/2015, 21h52
  2. Réponses: 3
    Dernier message: 09/04/2012, 15h03
  3. Réponses: 5
    Dernier message: 01/10/2007, 14h16
  4. récupérer données de plusieurs checkbox
    Par themis121 dans le forum Langage
    Réponses: 46
    Dernier message: 28/11/2005, 16h30
  5. [Excel] Récupérer des données d'une base Access
    Par FoxDeltaSierra dans le forum Excel
    Réponses: 8
    Dernier message: 03/09/2005, 10h22

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