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

Interfaces Graphiques Discussion :

Enregistrer une structure sur Excel [Débutant]


Sujet :

Interfaces Graphiques

  1. #1
    Membre à l'essai
    Homme Profil pro
    Nantes
    Inscrit en
    Août 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Nantes
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2014
    Messages : 11
    Points : 10
    Points
    10
    Par défaut Enregistrer une structure sur Excel
    Bonjour,
    Je suis de retour

    Je tente cette fois-ci de récuperer tous les paramètres d'essai pour les stocker dans un fichier excel.
    Je peux le faire un par un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xlswrite(char(filename),str2double(get(data.Essai1_Tair_ext,'string')),'Paramètres',a1);
    Mais les noms des variables changent d'un essai à l'autre, j'aimerais donc les récupérer automatiquement.
    Voici ce que j'ai pu avancer pour le moment :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    names=fieldnames(data) % Fonctionne
    for i=1:length(names) % Fonctionne
        if ????=uicontrol % C'est là que je bloque car j'ai dans data j'ai mes uitab figure et tout type de uicontrol
            if !!!!='text'
                xlswrite(char(filename),get(data.(char(names(i))),'string'),'Paramètres',sprintf(a%d,i)); % Erreur car ce ne sont pas tous des 'strings'
            elseif !!!!='popupmenu'
                a=get(data.(char(names(i))),'string')
                b=get(data.(char(names(i))),'value') % Erreur car ce ne sont pas tous des 'popupmenu'
                xlswrite(char(filename),a(b),'Paramètres',sprintf(a%d,i)); 
            end
        end
    end

    Je suis certain que vous avez la solution à cette question. Ma recherche dans les archives matlab (12000 posts ) a été infructueuse.

    Par avance merci !
    Mathieu

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Je penserais à get(le_handle_de_l_uicontrol_en_question, 'style') pour obtenir 'text' ou 'popupmenu', (en faisant attention à la comparaison de chaines de caractères) mais le premier if n'est pas du tout clair sur ce qu'il est censé faire

    À noter qu'en boucle, on préfère utiliser la fonction xlswrite1 pour des questions de performance.
    Et char(names(i)) peut être remplacé par names{i} (avec des accolades).

  3. #3
    Membre à l'essai
    Homme Profil pro
    Nantes
    Inscrit en
    Août 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Nantes
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2014
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Merci jerome pour ta réponse,
    Pour être plus clair le premier "if" me sert justement à enlever les handles qui n'ont pas de 'style' .
    Pour exemple j'ai certains cas comme celui-ci dans mon 'data' et il risque de me renvoyer une erreur du genre ('style' unknown for this handle), un try fera peut-etre l'affaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    uitab(hTabGroup,'title','Accueil','tag','uitab1');
    Effectivement j'aurais du mettre strcmp dans l'exemple, bien vu
    Je ne connaissais pas le name{i}, cela va me simplifier un peu le code.
    Par contre chaque pas de temps de ma boucle dure 3h donc ce n'est pas un soucis de temps, mais merci pour l'info sur xlswrite1 cela me sera surement utile pour d'autres programmes.

    Je teste cela dès que ma simulation se termine et je vous tiens au courant

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Fundhor Voir le message
    Pour être plus clair le premier "if" me sert justement à enlever les handles qui n'ont pas de 'style' .
    Autrement dit, ceux qui ne sont pas du type uicontrol
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if strcmp(get(data.(names{i}), 'Type'), 'uicontrol')

  5. #5
    Membre à l'essai
    Homme Profil pro
    Nantes
    Inscrit en
    Août 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Nantes
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2014
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Testé ce matin.
    Je mets le code pour ceux que ça interessera.
    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
     
        names=fieldnames(data);
        for i=1:length(names)
            if strcmp(get(data.(char(names(i))), 'Type'), 'uicontrol')
                if strcmp(get(data.(char(names(i))), 'style'),'edit')==1
                    %miam=get(data.(char(names(i))),'string')
                    xlswrite(char(newfilename2),get(data.(char(names(i))),'string'),'Paramètres',sprintf('a%d',i))
                elseif strcmp(get(data.(char(names(i))), 'style'),'popupmenu')==1
                    a=get(data.(char(names(i))),'string');
                    b=get(data.(char(names(i))),'value'); % Erreur car ce ne sont pas tous des 'popupmenu'
                    %a(b)
                    xlswrite(char(newfilename2),a(b),'Paramètres',sprintf('a%d',i)); 
                end
            end
        end
    Le name{i} n'est pas passé mais pour le reste c'est tout bon, MERCI !!!
    Mes "edit" s'écrivent sur autant de case qu'ils ont de caractères mais c'est du détail et je trouverai sans problème la solution (char ou quelquechose dans le genre).
    Quoiqu'il en soit je peux avancer. très bien !


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

Discussions similaires

  1. VB6 - Definir le format d une cellule sur Excel
    Par Zaal dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 12/07/2006, 14h22
  2. Réponses: 2
    Dernier message: 19/05/2006, 18h42
  3. [VBA-E]Filtre via une macro sur Excel
    Par jamal.b dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/04/2006, 15h35
  4. Sortie d'une facture sur excel
    Par ShortcutZ dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/01/2006, 17h07
  5. Réponses: 3
    Dernier message: 21/10/2005, 09h54

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