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 :

Ecrire des noms de fichiers sur Excel [Débutant]


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 85
    Points : 34
    Points
    34
    Par défaut Ecrire des noms de fichiers sur Excel
    Bonjour à tous !

    Je souhaite vous solliciter pour un petit soucis.

    En résumé, j'ai un tableur excel que je remplis par Matlab. Après une multitude de calcul je souhaite avoir un seul résultat R dans cette boucle if :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
       if K==1
        elseif K==2
        elseif K==3
        elseif K==4
            FFLFacoH=readfis('FFLFacoH');
            R=evalfis([x1,x2],FFLFacoH);
        end
    Ce résultat R je le transmet sur mon fichier excel avec cette boucle if :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        if R>6
            range61=sprintf('%c%d:%c%d','A'+0,1+n,'A'+0,1+n);
            Excel.Worksheets.Item(3).Range(range61).Value=name;
        elseif 4.11<=R<=6
            range62=sprintf('%c%d:%c%d','A'+1,1+n,'A'+1,1+n);
            Excel.Worksheets.Item(3).Range(range62).Value=name;
        elseif R<4.11
            range63=sprintf('%c%d:%c%d','A'+2,1+n,'A'+2,1+n);
            Excel.Worksheets.Item(3).Range(range63).Value=name;
        end
    Ces deux bouts de code se trouve dans cette boucle n :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    for n=1:numel(list)
        filename=list(n).name;
        fid=fopen(filename,'r');
        data = strrep(fread(fid, [1 inf], '*char'), ',', '.'); 
        fclose(fid);
        T = textscan(data,'%f%f%f%f%f%f%f', 'CollectOutput', 1);
        for i=5:1:7
            Tmp=T{1}(5:end,i);
            [A(n,i) B(n,i)]=max(Tmp);
            y(n,i)=max(max(T{1}(5:end,i))).*0.1;
            P1(n,i)=find(Tmp(B(n,i)+1:end)<y(n,i),1,'first');
            P2(n,i)=find(Tmp(1:B(n,i))<y(n,i),1,'last');
            ENERGIE(n,i)=trapz(Tmp(P2(n,i):P1(n,i)+B(n,i)));
            RMS(n,i-4)=sqrt(mean(T{1}(P2(n,i):P1(n,i)+B(n,i),i-4).^2));
            La(n,i-4)=20*log10(RMS(n,i-4)/10^-6);
            Lv(n,i-4)=20*log10(RMS(n,i-4)/10^-9);
        end
        La(n,4:7)=0;
        Lv(n,4:7)=0;
        EFFORTT(n)=max(T{1}(5:end,4));
        EFFORTT=EFFORTT';
        DONNEE(n,:)=[mean(Lv(n,1:3)),mean(La(n,1:3)),mean(A(n,5:7)),mean(ENERGIE(n,5:7)),EFFORTT(n)];
    
        [pathstr, name, ext]=fileparts(filename);
        range = sprintf('%c%d','A'+0,4+n);
        range2 = sprintf('%c%d:%c%d','A'+1,5,'A'+5,4+n);
        Excel.Worksheets.Item(1).Range(range).Value=name;
        Excel.Worksheets.Item(1).Range(range2).Value=DONNEE;
    
        x1=DONNEE(1:end,2);
        x2=DONNEE(1:end,3);
        if K==1
        elseif K==2
        elseif K==3
        elseif K==4
            FFLFacoH=readfis('FFLFacoH');
            R=evalfis([x1,x2],FFLFacoH);
        end
        if R>6
            range61=sprintf('%c%d:%c%d','A'+0,1+n,'A'+0,1+n);
            Excel.Worksheets.Item(3).Range(range61).Value=name;
        elseif 4.11<=R<=6
            range62=sprintf('%c%d:%c%d','A'+1,1+n,'A'+1,1+n);
            Excel.Worksheets.Item(3).Range(range62).Value=name;
        elseif R<4.11
            range63=sprintf('%c%d:%c%d','A'+2,1+n,'A'+2,1+n);
            Excel.Worksheets.Item(3).Range(range63).Value=name;
        end
    end
    Donc en gros, à chaque itération je calcul un R, et pour chaque R je place le nom du fichier dans la colonne A,B ou C de mon tableur.

    Et j'obtiens ceci pour le moment :

    Tissus conformes aux critères	Tissus à remesurer ou vérifier manuellement	Tissus non conformes
    	                              045639 T01 02 1028710	
    	                              783375 1 Bas 01
    Mon problème est multiple en fait :

    1) Mes 2 noms sont dans la deuxième colonne or j'ai obtenu un R=0.2606 pour le premier et un R=5 pour le deuxième. Je devrais dans ce cas avoir mon premier nom dans la dernière colonne avec R<4.11 !

    2) Je souhaiterais aussi éviter d'avoir des espaces entres les noms à écrire sur le tableur mais je n'ai pas trouvé un "range" adéquate ! Auriez-vous des idées ?

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    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 302
    Points : 53 165
    Points
    53 165
    Par défaut
    La syntaxe de la comparaison suivante est fausse :
    Il faut utiliser :

    Tu peux aussi simplifier les tests en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if R>6
     
    elseif R<4.11
     
    else
     
    end
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 85
    Points : 34
    Points
    34
    Par défaut
    Alors j'ai essayé tes 2 méthodes.

    La première m'affiche ce message d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ??? Operands to the || and && operators must be convertible to logical scalar values.
     
    Error in ==> esa at 86
        elseif R>=4.11 && R<=6
    Et la deuxième m'affiche le même résultat qu'avant, c'est à dire qu'il place dans la mauvaise case le nom dont R<4.11.

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    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 302
    Points : 53 165
    Points
    53 165
    Par défaut
    Que contient la variable R ?
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 85
    Points : 34
    Points
    34
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >> R
     
    R =
     
        0.2606
        5.0000
    C'est un vecteur colonne qui se remplit à chaque itération !

  6. #6
    Membre averti
    Femme Profil pro
    Ingénieur informatique scientifique
    Inscrit en
    Mai 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique scientifique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2010
    Messages : 313
    Points : 301
    Points
    301
    Par défaut
    Bonjour,
    c'est donc normal que tu obtiennes une erreur, tu ne peux pas comparer un vecteur colonne (qui contient plusieurs valeurs) avec un nombre!
    Il faut que tu fasses une boucle sur chaque élément de R.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 85
    Points : 34
    Points
    34
    Par défaut
    Justement, je l'ai intégré dans ma boucle "for".

    C'est bien pour ça que je comprend pas pourquoi il m'affiche ce résultat.

  8. #8
    Membre averti
    Femme Profil pro
    Ingénieur informatique scientifique
    Inscrit en
    Mai 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique scientifique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2010
    Messages : 313
    Points : 301
    Points
    301
    Par défaut
    Justement, je l'ai intégré dans ma boucle "for".
    A moins que j'ai mal compris, ta boucle "for" ne tourne pas par rapport à ta variable R...
    tu fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    R=evalfis([x1,x2],FFLFacoH);
    Qui te donne un vecteur colonne, puis directement
    Il faut que tu fasses une seconde boucle "for" sur ta variable R, quelque chose comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    R=evalfis([x1,x2],FFLFacoH);
        for j = 1:length(R)
            if R(j)>6
                range61=sprintf('%c%d:%c%d','A'+0,1+n,'A'+0,1+n);
                Excel.Worksheets.Item(3).Range(range61).Value=name;
            elseif 4.11<=R(j)<=6
                range62=sprintf('%c%d:%c%d','A'+1,1+n,'A'+1,1+n);
                Excel.Worksheets.Item(3).Range(range62).Value=name;
            elseif R(j)<4.11
                range63=sprintf('%c%d:%c%d','A'+2,1+n,'A'+2,1+n);
                Excel.Worksheets.Item(3).Range(range63).Value=name;
            end
       end

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 85
    Points : 34
    Points
    34
    Par défaut
    Ça y est j'ai trouvé en fait. Il fallait simplement utiliser R(n). Je l'avais déjà utilisé mais je n'avais pas eu les bons résultats. Là j'ai eu les bons, aucune idée de la manip que j'ai fait la dernière fois pour ne pas avoir le même !!

    Merci quand même

    Par contre est ce que quelqu'un aurait une solution (certainement changer mon range) pour mon problème n°2 ??

  10. #10
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    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 302
    Points : 53 165
    Points
    53 165
    Par défaut
    Citation Envoyé par Tom dB Voir le message
    Par contre est ce que quelqu'un aurait une solution (certainement changer mon range) pour mon problème n°2 ??
    Commence par prendre l'habitude de ne poser qu'une seule question par discussion. Les serveurs de DVP sont dimensionnés pour supporter le flot de vos nombreuses questions

    Qu'appelles-tu "espaces" ?
    Il serait judicieux de nous fournir une capture d'écran, ça serait nettement plus parlant
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 85
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par Dut Voir le message
    Commence par prendre l'habitude de ne poser qu'une seule question par discussion. Les serveurs de DVP sont dimensionnés pour supporter le flot de vos nombreuses questions
    OK pas de soucis


    Je vous ai joins le screen en bas.

    Ici j'ai un exemple avec 2 fichiers. Donc j'ai 2 noms qui sont bien placées sauf que je voudrais supprimer les cases vides ! Je n'ai pas vraiment d'idée de ce qu'il faut changer dans mon code pour arriver à ça !
    Images attachées Images attachées  

  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 302
    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 302
    Points : 53 165
    Points
    53 165
    Par défaut
    Si je comprends bien, tu voudrais que le contenu de la cellule B3 soit plutôt écrit dans la cellule B2, c'est ça ?
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 85
    Points : 34
    Points
    34
    Par défaut
    Exact !

    Et par exemple si j'ai un 3ème fichier, ben il va apparaitre soit en A4,B4 ou C4 ! Or je voudrais qu'il soit dans avec ces 2 premiers fichiers soit en A2, soit en B3 (vu qu'il y aura B2 de remplit) soit en C3 (vu que C2 remplit) !

    Et ainsi de suite !

  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 302
    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 302
    Points : 53 165
    Points
    53 165
    Par défaut
    Jette un œil à la propriété End de l'objet Range.
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  15. #15
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 85
    Points : 34
    Points
    34
    Par défaut
    Ouais intéressant !
    Mais il me faudrait dans ce cas la première cellule vide !

  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 302
    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 302
    Points : 53 165
    Points
    53 165
    Par défaut
    Tu peux faire un cas particulier pour la cellule B2 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if isnan(ActiveSheet.Range('B2').Value)
       range = ActiveSheet.Range('B2');   
    else
       range = ActiveSheet.Range('B1').End('xlDown').get('Offset', 1, 0);
    end
     
    % Ecrire dans range
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  17. #17
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 85
    Points : 34
    Points
    34
    Par défaut
    Je reçois un message d'erreur lorsque je rentre ta commande.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ??? Error: Object returned error code: 0x800A03EC
     
    Error in ==> esa at 95
            Excel.Worksheets.Item(3).Range(range62).Value=name;
    Que doit faire exactement la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >> range62 = Excel.Worksheets.Item(3).Range('B1').End('xlDown').get('Offset', 1, 0);
    ???

    Si elle ne peut pas se faire pour les 3 colonnes je ne pourrais pas l'utiliser

  18. #18
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    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 302
    Points : 53 165
    Points
    53 165
    Par défaut
    Alors normalement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    range = Excel.Worksheets.Item(3).Range('B1').End('xlDown')
    doit te renvoyer l'objet Range correspondant à la dernière cellule non vide en partant de B1 dans la colonne B.

    Vérifie avec

    Puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    range.get('Offset', 1, 0);
    devrait décaler l'adresse de l'objet Range à la cellule située juste en dessous.
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  19. #19
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 85
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par Dut Voir le message
    Alors normalement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    range = Excel.Worksheets.Item(3).Range('B1').End('xlDown')
    doit te renvoyer l'objet Range correspondant à la dernière cellule non vide en partant de B1 dans la colonne B.

    Vérifie avec

    Puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    range.get('Offset', 1, 0);
    devrait décaler l'adresse de l'objet Range à la cellule située juste en dessous.
    Avec ta première ligne j'ai la case B3 (je voudrais B2) et quand j'utilise le get après range, j'ai ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    >> range.get('Offset', 1, 0)
     
    ans =
     
    	Interface.Microsoft_Excel_11.0_Object_Library.Range

  20. #20
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    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 302
    Points : 53 165
    Points
    53 165
    Par défaut
    Que contient la colonne B ?
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2007] Problématique de recherches et de copie sur des noms de fichiers
    Par stroutz dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 26/06/2013, 16h00
  2. LogRotate basé sur des noms de fichiers
    Par pitchalov dans le forum Vos Contributions VBScript
    Réponses: 0
    Dernier message: 24/02/2010, 17h51
  3. [bash] Boucle sur des noms de fichiers à espaces
    Par Le Furet dans le forum Linux
    Réponses: 8
    Dernier message: 16/12/2009, 07h59
  4. test sur des noms de fichiers php
    Par argonath dans le forum Langage
    Réponses: 5
    Dernier message: 27/09/2009, 21h47
  5. Réponses: 4
    Dernier message: 30/12/2008, 11h30

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