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

  1. #1
    Candidat au 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
    Points : 3
    Points
    3
    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
    Candidat au 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
    Points : 3
    Points
    3
    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
    Candidat au 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
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup Winjerome Je vais faire ça !

    Bonne fin de journée

  6. #6
    Candidat au 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
    Points : 3
    Points
    3
    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.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Oui ça je m'en doute que tu ne le as pas vu que c'est moi qui les ai codées
    Bouton vert dans mon lien pour les récupérer

  8. #8
    Candidat au 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
    Points : 3
    Points
    3
    Par défaut
    Ah ! Merci Désolée !

    Bonne journée

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 352
    Points
    352
    Par défaut
    a noter que tu peux accèder aux feuilles par leur numero dans le classeur
    si tu veux accèder a la feuille 1 tu peux utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet = Excel.Worksheets.Item(1);

  10. #10
    Candidat au 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
    Points : 3
    Points
    3
    Par défaut
    Ah merci Je vais essayer ça aussi merci gpcbitnik38

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