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 :

Lecture/Ecriture feuilles Excel


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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 Lecture/Ecriture feuilles excel sous Matlab
    Bonjour à tous,

    J'ai un problème, je veux lire et écrire sur plusieurs feuilles dans un même fichier Excel et quand je fais ActiveSheet=....feuille1 après je mets ActiveSheet=....feuille2 l'opération ne s'effectue pas ça reste sur la première feuille. Est ce que vous pouvez m'aider ? Car je ne peux pas utiliser xlsread et xlswrite parce que je dois lire une plage de cellules bien précise.

    Merci bien

    Cordialement

    Souad

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

    Pourrait-on voir le code en question ?

    À noter que les fonctions xslread et xlswrite prennent les arguments sheet et range qui permettent justement de choisir la feuille et les cellules lues/écrites.

  3. #3
    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
    Merci Winjerome.

    Merci pour cette remarque, ça m’intéresse parce que jusque là j'utilisais xlsread et xlswrite. Je vais regarder ça.

    Voici 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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    % Ouverture de l'application Excel
    Excel = actxserver('Excel.Application');
     
    Excel.Visible = false;
     
    % Chemin du classeur à ouvrir
    xlspath = pwd ;
    xlsfile = 'fich_in.xlsx';
    % Ouverture du classeur
    Workbook = Excel.Workbooks.Open(fullfile(xlspath,xlsfile));
     
     
    % Récupération de la feuille désirée
    ActiveSheet = Excel.Worksheets.Item('Feuille1');
    range1=ActiveSheet.Range('C6').get('Resize',30,1).Value;
     
    ActiveSheet = Excel.Worksheets.Item('Feuille2');
    range2=ActiveSheet.Range('C6').get('Resize',30,1).Value;
     
    % % Fermeture du classeur
    Workbook.Close(false);
     
    % Fermeture de l'application Excel
    Quit(Excel);
    Ah mais en fait la taille de mes tableaux est dynamique j'aimerais mettre dans mon code à la place de 30 et 1 des variables N et M qui sont calculées auparavant. Cela je n'ai pas pu le faire avec xldread et xlswrite.

    comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    range2=ActiveSheet.Range('C6').get('Resize',N,M).Value
    Merci bien

  4. #4
    Invité
    Invité(e)
    Par défaut
    Le code me semble correct, à ceci près que par défaut les feuilles se nomment Feuil1, Feuil2... C'est peut-être ce qui pose problème.

    Pour des range dynamiques, tu peux regarder cette contribution qui converti les indices, valeurs numériques, en adresse Excel.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    depart = [6 3]; % C6
    M = 2; N = 3;
    fin = depart + [N M] - 1;
    num2xls([depart ; fin]) % C6:D8
    Dernière modification par Invité ; 11/07/2014 à 12h18.

  5. #5
    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
    Merci beaucoup Winjerome Je vais faire ça !

    Bonne fin de journée

  6. #6
    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 Winjerome,

    Je n'arrive pas à faire ce que tu m'as dit car je n'ai pas les fonctions num2xls et xls2num. Est ce que tu as d'autres suggéstions ?

    Merci bien.

Discussions similaires

  1. Lecture / Ecriture sur Excell
    Par Khouya dans le forum VBScript
    Réponses: 0
    Dernier message: 16/09/2010, 23h20
  2. {VBA Excel}Probleme sur macro mauvaise lecture de feuille excel
    Par Thomas69 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/08/2007, 15h38
  3. Problème de lecture des cellules dans une feuille Excel
    Par wangjun dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/10/2006, 09h35
  4. [lecture/ecriture] fichier excel
    Par ethno dans le forum C
    Réponses: 4
    Dernier message: 14/04/2006, 19h47
  5. [VBA-E]ouvrir feuille excel en lecture seule
    Par ogenki dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 10/02/2006, 13h36

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