oui bien sur
j'ai essaiyé de creer un fichier excel nommé monfichier dans le repertoire spécifié mais toujours meme pb rien ne se passe quand je clique sur le button resultat
oui bien sur
j'ai essaiyé de creer un fichier excel nommé monfichier dans le repertoire spécifié mais toujours meme pb rien ne se passe quand je clique sur le button resultat
Est-ce que ce fichier est bien crée ?
As-tu tenté de l'ouvrir directement sous Windows ?
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)
oui moi j'ecris l'instruction aprés end
et
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 function varargout = calculer_Callback(h, eventdata, handles, varargin) L = get(handles.L,'String'); H = get(handles.H,'String'); L= str2double(L); H = str2double(H); Qnbr=get(handles.Qnbr,'String'); Qnbr= str2double(Qnbr); nbrL=0; chL=0; chuteL=0; K=1; for i=1:2*Qnbr nbrL=nbrL+H; chL=600-nbrL; M(i,1)=nbrL; M(i,2)=chL; if chL<H if i==2*Qnbr K=K; else K=K+1; end nbrL=0; chuteL=chuteL+chL; M(i,3)=K; M(i,3)=chuteL; end % xlswrite(filename,M) end % filename='C:\MATLAB6p1\work\work2603oui\monfichier.xls'; % xlswrite('filename',M); filename='monfichier.xls'; xlswrite('C:\MATLAB6p1\work\work2603oui\monfichier.xls',M);
comme résultat
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 function varargout = resultat_Callback(h, eventdata, handles, varargin) %WINOPEN ('filename'); WINOPEN ('C:\MATLAB6p1\work\work2603oui\monfichier.xls') %dos('monfichier.xls')Undefined function or variable 'WINOPEN'.
non moi j'ai essaiyé de le créer manuellement çàd à partir de excel j'ai crée un fichier nommé "monfichier" et je le sauvegarde dans le repertoire spécifié
je fais ça seulement pour voir si il sera remplir par les données quand j'excute
mais rien ne se passe il reste vide
Euh... tu as la version 6.1 de Matlab !
Tu ne possèdes ni XLSWRITEni WINOPEN
![]()
Donc la seule solution, c'est d'utiliser un controle ActiveX : Are there any examples that show how to use the ActiveX automation interface to connect MATLAB to Excel?
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)
oui j'ai cette version![]()
j'ai lu la documentation de activex mais c'est tres tres lourd![]()
est ce que la version 6.5 ca marche avec winopen et xlswrite
si non je vais commencer de nouveau par ce activex
finalement j'ai reussi à afficher les resultats
mais ils sont pas comme j'ai voulu
moi je veux un tableux de 4 colonnes ei i lignes
j'ai fait un exemple dont :
Qnbr =2 çàd i =4
et H=180
les resultats sont comme suit:
je sais pas comment je change nombre de lignes du colonne oui mais lignes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 190 410 0 0 380 220 0 0![]()
voila le 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
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85 function varargout = calculer_Callback(h, eventdata, handles, varargin) L = get(handles.L,'String'); H = get(handles.H,'String'); L= str2double(L); H = str2double(H); Qnbr=get(handles.Qnbr,'String'); Qnbr= str2double(Qnbr); nbrL=0; chL=0; chuteL=0; K=1; for i=1:2*Qnbr nbrL=nbrL+H; chL=600-nbrL; M(i,1)=nbrL; M(i,2)=chL; if chL<H if i==2*Qnbr K=K; else K=K+1; end nbrL=0; chuteL=chuteL+chL; M(i,3)=K; M(i,4)=chuteL; end end % filename='C:\MATLAB6p1\work\work2603oui\monfichier.xls'; % xlswrite('C:\MATLAB6p1\work\work2603oui\monfichier.xls',M); % % Open Excel, add workbook, change active worksheet, % get/put array, save, and close % First open an Excel Server Excel = actxserver('Excel.Application'); set(Excel, 'Visible', 1); % Insert a new workbook Workbooks = Excel.Workbooks; Workbook = invoke(Workbooks, 'Add'); % Make the second sheet active Sheets = Excel.ActiveWorkBook.Sheets; sheet2 = get(Sheets, 'Item', 2); invoke(sheet2, 'Activate'); % Get a handle to the active sheet Activesheet = Excel.Activesheet; % Put a MATLAB array into Excel ActivesheetRange = get(Activesheet,'Range','A1:D2'); set(ActivesheetRange, 'Value',M); % Get back a range. It will be a cell array, % since the cell range can % contain different types of data. %Range = get(Activesheet, 'Range', 'A1:B2'); %B = Range.value; % Convert to a double matrix. The cell array must contain only scalars. %B = reshape([B{:}], size(B)); % Now save the workbook invoke(Workbook, 'SaveAs', 'myfile.xls'); % To avoid saving the workbook and being prompted to do so, % uncomment the following code. % Workbook.Saved = 1; % invoke(Workbook, 'Close'); % Quit Excel invoke(Excel, 'Quit'); % End process delete(Excel);
C'est un problème d'algorithme... pas de Matlab.
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)
oui oui pour changer nombre de ligne et colonnes je dois changer dans cette instruction
les colonnes de A à D donc 4 c'est bien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ActivesheetRange = get(Activesheet,'Range','A1:D6');
mais les lignes je veux au lieu de 6 metter i
mais matlab n'admet pas cette ecriture D(i) quand je la mets le fichier restera vide
![]()
Désolé, je n'avais pas compris que ta question portait sur ce bout de code![]()
Tu fais ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 R=sprintf('A%d:D%d',1,size(M,1)); ActivesheetRange = get(Activesheet,'Range',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)
vraiment je te remercie
oui tous ça marche
je continue mon derangementje veux améliorer mon interface s'il te plait est ce que je peux modifier les ,noms de champs en excel au lieu de A affiche "nbrL" , B affiche chL , C affiche "K" et D affiche "chuteL" ou bien tracer un tableau et dedans afficher les resultats qui sont affichées maintenant
C'est hors sujet par rapport à Matlab, c'est plus du VB.
Comme je l'ai déjà dis précédemment (ici), il faut chercher les fonctions dans l'aide Excel à : Référence Visual Basic Microsoft Excel
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)
merci j'ai trouvé ce truc dans votre discussion
mais le pb la version ou je travail n'admet pas xlswirte
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 hmf={'Nijenbanning'} xlswrite('Résultats',hmf,'Feuil1','B3');
en activex je sais pas comment
s'il veut plait j'ai un question
mes resultats sont affichées dans "feuli1" de excel ça c'est bon pour les resultats du ma premiere algorithme
ma question c'est comment je peux designer la 2eme feuille pour afficher les resultats du 2eme algorithme ....
merci d'avance
bonjour
s'il veut plait est ce quelqu'un peut m'aider
je veux afficher une autres resultats soit dans la meme feuller de excel soit dans une autre
mais j'ai pas arrivée![]()
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager