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

MATLAB Discussion :

Contr�le d'Excel par MATLAB via Automation [Tutoriel]


Sujet :

MATLAB

  1. #1
    R�dacteur/Mod�rateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance m�catronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Freelance m�catronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par d�faut Contr�le d'Excel par MATLAB via Automation
    Contr�le d'Excel par MATLAB via Automation

    Contr�le d'Excel par MATLAB via Automation est constitu� des articles suivants :

    1. G�n�ralit�s ;
    2. Connexion ;
    3. Les objets et leur manipulation ;
    4. Gestion des feuilles ;
    5. Les plages de cellules ;
    6. Limites ;
    7. �criture de donn�es et mise en forme ;
    8. Lecture de donn�es.

    Gr�ce � ces articles contenant de nombreux exemples, vous apprendrez � interfacer efficacement Excel et MATLAB sous Windows.

    Ces articles sont principalement destin�s aux d�veloppeurs MATLAB quel que soit leur niveau.

    En plus de l'apprentissage des techniques d'interfa�age, ils peuvent �galement initier le d�veloppeur MATLAB � l'environnement VBA (Excel, Word, PowerPoint�).

    Les d�veloppeurs VBA pourront �galement y trouver des informations utiles afin de se familiariser avec MATLAB.
    Lien : http://briot-jerome.developpez.com/matlab/tutoriels/excel-automation/sommaire/

    N'h�sitez pas � donner vos avis et � apporter des commentaires sur cet article � la suite de ce message

    Vous pouvez �galement noter cet article en utilisant l'outil de notation de cette discussion dans la barre de menu en haut � droite





    Retrouver les meilleurs cours et tutoriels pour apprendre Microsoft Office Excel

  2. #2
    FLB
    FLB est d�connect�
    Mod�rateur
    Avatar de FLB
    Homme Profil pro
    Ing. A�rospatiale
    Inscrit en
    Juin 2003
    Messages
    770
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 37
    Localisation : France

    Informations professionnelles :
    Activit� : Ing. A�rospatiale
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2003
    Messages : 770
    Par d�faut
    Salut Dut,
    merci pour ce riche article!
    Je me permet de partager 2 liens, qui sont annexes au sujet pr�sent�. Ils pointent vers le site undocumentedmatlab.com, par Yair Altman :
    Comment modifier actxserver pour utiliser une instance excel d�j� d�marr�e, qui pourra all�ger vos traitements de nombreuses fiches excels
    Utiliser un �quivalent de xlswrite sous linux ou mac, sans passer par le format csv (par exemple).
    Florent

  3. #3
    Membre �m�rite Avatar de issoram
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sa�ne et Loire (Bourgogne)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Par d�faut
    Merci pour cet article int�ressant, tr�s instructif et bien construit.

    Bonne continuation

  4. #4
    Expert confirm�
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : Formateur en informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Par d�faut

    Le tuto est vraiment bien fait, bien construit et bien d�taill�, bravo.

  5. #5
    Mod�rateur
    Avatar de le fab
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 885
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 50
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 885
    Par d�faut
    lu en diagonale, mais super article !
    faut que je m'y plonge un de ces 4 pour am�liorer la solution b�tarde que j'avais apport� � un probl�me rencontr� lors de la migration en 64 bits
    d'ailleurs � l'�poque j'avais difficilement trouv� de l'aide sur les objet COM sur le net ! (et je ne connaissait pas l'option � R�f�rence du d�veloppeur � dans Excel)

    bref, top!

  6. #6
    R�dacteur/Mod�rateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance m�catronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Freelance m�catronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par d�faut
    Citation Envoy� par Dut Voir le message
    Il faut mettre le chemin absolu et non pas relatif vers le fichier xlsx.

    Donc par ../../../ mais D:\...\...\...\

    J'ai ajout� cette remarque dans le tutoriel : Connexion - Ouvrir un fichier existant

  7. #7
    Membre confirm�
    Inscrit en
    D�cembre 2012
    Messages
    97
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2012
    Messages : 97
    Par d�faut
    Article tr�s clair et vraiment tr�s bien d�taill� avec lequel il a �t� ais� de me faire la main sur le sujet et qui m'a �t� d'un grand secours.

    Un grand bravo et encore merci !

    Edit : petite coquille au Chapitre IV - Comparaison avec xlswrite de l'Ecriture des Donn�es et Mise en Forme :

    Ce code pr�sente troisdeux inconv�nients que nous allons d�velopper dans les chapitres suivants.

  8. #8
    R�dacteur/Mod�rateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance m�catronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Freelance m�catronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par d�faut
    Un 8�me article vient compl�ter la s�rie : Gestion des feuilles

  9. #9
    R�dacteur/Mod�rateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance m�catronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Freelance m�catronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par d�faut
    Citation Envoy� par Adjen Voir le message
    Edit : petite coquille au Chapitre IV - Comparaison avec xlswrite de l'Ecriture des Donn�es et Mise en Forme :
    C'est corrig�


  10. #10
    Invit� de passage
    Femme Profil pro
    �tudiant
    Inscrit en
    Juillet 2013
    Messages
    1
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1
    Par d�faut mise en forme conditionnelle
    Tout d'abord un grand merci pour ce tutoriel qui est vraiment tr�s bien r�alis�!

    Peut �tre qu'une question n'a pas sa place ici, mais je d�sire en poser une � propos de la mise en forme conditionnelle. Je cherche � utiliser une �chelle de couleur. En suivant votre mod�le j'arrive � :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    colsc = range.FormatConditions.Add(xlColorScale);%o� la cst VB xlColorScale=3
    ou encore :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    colsc = range.FormatConditions.AddColorScale(ColorScaleType);  %o� la cst VB ColorScaleType=2 pour une �chelle � 2 couleurs
    maintenant je voudrais inverser cette �chelle qui va du rouge pour les faibles valeurs au jaune pour les grandes valeurs pour un soucis de repr�sentativit�

    j'ai tent� d'utiliser quelque chose comme :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    colsc.ColorScaleCriteria(1).FormatColor.Color = 65535;
    colsc.ColorScaleCriteria(2).FormatColor.Color = 255;
    en m'appuyant sur les codes VB mais sans r�sultat. J'ai le message d'erreur suivant :
    No appropriate method, property, or field FormatColor for class
    Interface.00024494_0000_0000_C000_000000000046.
    Le message parle par lui m�me. FormatColor n'est pas le champs appropri� sous MATLAB. Quel champs ou simplement quelle formulation serait donc appropri�(e)?
    Merci par avance pour vos lumi�res! ^^

  11. #11
    Membre habitu�
    Homme Profil pro
    Ing�nieur
    Inscrit en
    Novembre 2011
    Messages
    12
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Ing�nieur

    Informations forums :
    Inscription : Novembre 2011
    Messages : 12
    Par d�faut
    Merci pour ce tutoriel, que je lis d'ailleurs pour la seconde fois.

    Je me permets juste de signaler un infime d�tail, il manque une simple quote ' section III-B-2 dans le code suivant juste apr�s Feuil3 sur la premi�re ligne.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    >> sheet = Excel.Worksheets.Item('Feuil3);
    >> sheet.Name = 'Mesures';
    Sinon super boulot!

  12. #12
    R�dacteur/Mod�rateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance m�catronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Freelance m�catronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par d�faut
    Citation Envoy� par Basto92 Voir le message
    Je me permets juste de signaler un infime d�tail, il manque une simple quote ' section III-B-2
    C'est corrig�

  13. #13
    Membre habitu�
    Homme Profil pro
    Ing�nieur
    Inscrit en
    Novembre 2011
    Messages
    12
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Ing�nieur

    Informations forums :
    Inscription : Novembre 2011
    Messages : 12
    Par d�faut
    J'ajouterais �galement que pour la section III-A que l'explication de semble pas parfaitement claire, voir m�me peut-�tre fausse. En tous cas, je pense que cela pourrait �tre am�lior�...
    Car, selon moi c'est deux commandes ne permettent pas d'activer une plage de cellule, comme c'est indiqu�.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    range = Excel.ActiveSheet.Range('B3').get('Resize',3,2);
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    range = get(Excel.ActiveSheet.Range('B3'),'Resize',3,2);
    D'apr�s mes tests, il vaudrait mieux compl�ter le code et �crire quelque chose comme ce qui suit pour activ� une plage de cellules.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    range = Excel.ActiveSheet.Range('B3').get('Resize',3,2);
    range.Address
    Excel.ActiveSheet.Range(range.Address).Select
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    range = get(Excel.ActiveSheet.Range('B3'),'Resize',3,2);
    range.Address
    Excel.ActiveSheet.Range(range.Address).Select
    Je ne suis pas sp�cialiste du VBA Excel et je d�couvre, alors je peux me tromper, si quelqu'un peut me confirmer ou m'infirmer en expliquant.


    1�re ajout:

    J'ajoute m�me que pour la section d'apr�s cette ligne de code ne semble elle aussi pas fonctionner.
    Mais le code suivant si.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    range=Excel.ActiveSheet.Cells
    range.Address
    Excel.ActiveSheet.Range(range.Address).Select
    D�sol� pour le double poste, j'ai recharg� la page et cela semble avoir dysfonctionn� et cr�� deux messages.



    2�me ajout:

    Pour simplifier les codes de je propose et clarifier ceux de l'auteur, il faut juste ajouter ".Select" � ceux de l'auteur pour bien s�lectionner un plage de cellules.

  14. #14
    R�dacteur/Mod�rateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance m�catronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Freelance m�catronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par d�faut
    Voici un argument contre le .Select :

    Citation Envoy� par Pierre Fauconnier
    En VBA pour Excel, on n'aime pas trop le SELECT, car il ralentit l'ex�cution du code, puisque la m�thode SELECT "singe" la s�lection d'une cellule par l'utilisateur. Il est de loin pr�f�rable de s'en passer chaque fois que l'on peut, et de travailler avec un objet de type Range.
    C'est pour cela que .Select n'apparait quasiment jamais dans cette s�rie de tutoriels

  15. #15
    Membre habitu�
    Homme Profil pro
    Ing�nieur
    Inscrit en
    Novembre 2011
    Messages
    12
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Ing�nieur

    Informations forums :
    Inscription : Novembre 2011
    Messages : 12
    Par d�faut
    Ah tr�s bien, j'ai sans doute manqu� cette remarque, si elle pr�sente dans le tutoriel. N�anmoins comme souvent il y des images qui montrent la s�lection par exemple en r�sultat afin de checker l'avancement en parall�le du tutoriel sur sa propre machine, et cela porte donc un peu � confusion.

    Je ne vais pas tout relever sur ce forum, mais j'ai noter d'autres lignes de codes propos�es qui malheureusement ne fonctionnement pas lorsque je les ex�cute.
    Peut-�tre un probl�me de versions des logiciels, ou bien des �volutions du VBA... Notament souvent il faut ajouter le mot cl� Workbook, par exemple pour les premi�res commandes du dernier chapitre.

    Exemple de mon code:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Excel = actxserver('Excel.Application');
    Excel.Visible = true;
    xlspath = '...';
    xlsfile = 'data.xlsx';
    Workbook=Excel.Workbooks.Open(fullfile(xlspath,xlsfile));
    
    num = Workbook.ActiveSheet.Range('B2').Value;
    str = Workbook.ActiveSheet.Range('C2').Value;
    bool = Workbook.ActiveSheet.Range('D2').Value;
    
    Workbook.Close(false);
    Excel.Quit;
    delete(Excel)
    clear Excel
    Bref, quoi qu'il en soit ce tuto' est tr�s bien r�alis�, en j'en remercie tout les contributeurs.

  16. #16
    R�dacteur/Mod�rateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance m�catronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Freelance m�catronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par d�faut
    Merci pour tes remarques. Je vais essayer de reprendre cette s�rie de tuto pour �viter ces probl�mes de compr�hension.

    N'h�site pas � m'envoyer tes relev�s d'erreur par MP si tu trouves cela plus simple.

  17. #17
    Membre du Club
    Femme Profil pro
    Ing�nieur validation
    Inscrit en
    Juillet 2014
    Messages
    7
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur validation
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 7
    Par d�faut
    Bonjour,

    Merci pour votre article, il est tr�s bien fait.

    Cordialement

    Souad

  18. #18
    Invit� de passage
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Mars 2016
    Messages
    1
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2016
    Messages : 1
    Par d�faut
    Merci beaucoup de ce tuto clair et complet, il m'a bien aid� !

    M.

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