creating a warning dialog that wait until the user press ok, if the user press x the execution stops

54 views (last 30 days)
Im writing a code that creates xlsx file (using writetable function)
I want that if thier is a xlsx file with the same name a warning alert will pop and tell the user: their are files with the same name, are you sure you want to override them? If the user press ok -> the execution of the code continues. If the user press X (get out from the warning dialog window) the execition of the code stops.
in the title : "Wait for Button Press" they say that the following code should work:
f = figure('Position',[500 500 400 300]);
c = uicontrol('String','Continue','Callback','uiresume(f)');
uiwait(f)
disp('Program execution has resumed');
But it does not work. The uiwait, wait untii the user close the figure and not until the user press OK.
I want to do the following:
  1. user press OK -> execution continues
  2. user get out from the warning dialog window -> execution stops
It sounds very simple to me, but somehow I don't succeed to do it,
Someone did something similar?

Accepted Answer

Simon Chan
Simon Chan on 14 May 2023
One possible way is to use function uniconfirm.
fig = uifigure;
selection = uiconfirm(fig,'Overwrite existing excel file','File Operation');
switch selection
case 'OK'
disp('Code to write data into excel file');
case 'Cancel'
return
end
close(fig);

More Answers (1)

Jon
Jon on 11 May 2023
Does the behavior demonstrated in my example below do what you want?
for k = 1:10
if k ==3 % condition simulating duplicate file found, just for example
% Display confirmation for file overwrite
selection = questdlg('Overwrite duplicate file?','Duplicate File',...
'Overwrite','Exit','Exit');
if strcmp(selection,'Exit')
break
end
end
% display iteration (just to show something is happening
disp(k)
end
  1 Comment
gili Maimon
gili Maimon on 14 May 2023
Hey Thank you very much!
the problem with this solution that the code after the for loop runs after the user press Exit, and only the code inside the loop do not run because of "break" function.
Do you know a function that will stop execution completly after the user will press Exit? thanl you!
I ruther not insert the full script (that locate anther the for loop) inside an if statment

Sign in to comment.

Categories

Find more on Migrate GUIDE Apps in Help Center and File Exchange

Products


Release

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!