diff --git a/app/src/main/java/be/lepl1509group13/workoutwarrior/ListExercicesAdapter.java b/app/src/main/java/be/lepl1509group13/workoutwarrior/ListExercicesAdapter.java
index 624d6a99e1e4be6379e1518949a19db3ab9ad62b..ef09429ebea10ab6efbf4d1e57e01cb0a9c32460 100644
--- a/app/src/main/java/be/lepl1509group13/workoutwarrior/ListExercicesAdapter.java
+++ b/app/src/main/java/be/lepl1509group13/workoutwarrior/ListExercicesAdapter.java
@@ -68,29 +68,31 @@ public class ListExercicesAdapter extends ArrayAdapter<String> {
             ProgramCreationActivity activity = (ProgramCreationActivity) context;
 
             String exercise = values.get(position);
-            String training_days = "";
+            final String[] training_days = {""};
             Drawable delete_cross = context.getResources().getDrawable(R.drawable.cross_mark);
             Drawable pen = context.getResources().getDrawable(R.drawable.edit);
 
             // Get training days for this exercise
             for (Map.Entry<Exercise, ArrayList<String>> set : activity.program.entrySet()) {
                 if (set.getKey().name == exercise) {
-                    training_days = "";
+                    training_days[0] = "";
                     for (String day : set.getValue()) {
-                        training_days += getShortDayName(day) + ", ";
+                        training_days[0] += getShortDayName(day) + " ";
                     }
                 }
             }
-            training_days = training_days.substring(0, training_days.length() - 2);
+            training_days[0] = training_days[0].substring(0, training_days[0].length() - 2);
 
             // Display texts and images in Views
             delete_button.setImageDrawable(delete_cross);
             edit_button.setImageDrawable(pen);
             exercise_name.setText(exercise);
-            training_daysView.setText(training_days);
+            training_daysView.setText(training_days[0]);
 
             // Ecouteur de clics pour chaque élément de la ListView
             edit_button.setOnClickListener(view -> {
+                current_days_checked = new ArrayList<String>();
+                nbre_day = 0;
                 days_exo = new ArrayList<>();
                 for (Map.Entry<Exercise, ArrayList<String>> set : activity.program.entrySet()) {
                     if (set.getKey().name == exercise) {
@@ -209,7 +211,21 @@ public class ListExercicesAdapter extends ArrayAdapter<String> {
                                 key.breakVal = break_time;
                                 key.timer = Math.toIntExact(timer_exo);
                             }
+                            for (Map.Entry<Exercise, ArrayList<String>> set : activity.program.entrySet()) {
+                                if (set.getKey().name == exercise) {
+                                    set.setValue(current_days_checked);
+                                }
+                            }
+                        }
+                        for (Map.Entry<Exercise, ArrayList<String>> set : activity.program.entrySet()) {
+                            if (set.getKey().name == exercise) {
+                                training_days[0] = "";
+                                for (String day : set.getValue()) {
+                                    training_days[0] += getShortDayName(day) + " ";
+                                }
+                            }
                         }
+                        training_daysView.setText(training_days[0]);
                         dialog.dismiss();
                     }
                     else{
@@ -241,8 +257,6 @@ public class ListExercicesAdapter extends ArrayAdapter<String> {
                 name_exercice.setText(name_exo);
 
                 int resId = context.getResources().getIdentifier(img_actual_exo, "drawable", context.getPackageName());
-                System.out.println(img_actual_exo);
-                System.out.println(resId);
                 ImageView image = dialog.findViewById(R.id.exercice_to_modify_image);
                 image.setImageResource(resId);
             });
@@ -353,6 +367,7 @@ public class ListExercicesAdapter extends ArrayAdapter<String> {
                         }
                         //for (CheckBox cb : cb_list) if (!Objects.equals(cb, cb_dimanche)) cb.setChecked(false);
                     }
+                    System.out.println(current_days_checked);
                 }
             };
 }
diff --git a/app/src/main/java/be/lepl1509group13/workoutwarrior/ProgramCreationActivity.java b/app/src/main/java/be/lepl1509group13/workoutwarrior/ProgramCreationActivity.java
index 6a3668f5d000d989d574ae8e92b6abd04a95ee57..4b5a16d4a7dc67712d3f3a1c6893bb15a9716f42 100644
--- a/app/src/main/java/be/lepl1509group13/workoutwarrior/ProgramCreationActivity.java
+++ b/app/src/main/java/be/lepl1509group13/workoutwarrior/ProgramCreationActivity.java
@@ -57,6 +57,7 @@ import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 
@@ -155,29 +156,48 @@ public class ProgramCreationActivity extends AppCompatActivity {
     public void saveProgramListener(){
         Button save_btn = findViewById((R.id.save_button));
         save_btn.setOnClickListener(v -> {
-            convertToProgramByDay();
-
-            try {
-                // recup le nom de programme comme nom de fichier -> nomdeprogramme.ser
-                EditText programNameEditText = findViewById(R.id.program_name);
-                String programName = programNameEditText.getText().toString();
-                String programpath = programName + ".ser";
-
-                // place le HashMap du programme dans nomdeprogramme.ser
-                HashMap<String, ArrayList<Exercise>> entry = programByDay;
-                ExerciseEntry exerciseEntry = new ExerciseEntry(entry);
-                FileOutputStream fileOutputStream = openFileOutput(programpath, Context.MODE_PRIVATE);
-                ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream);
-                objectOutputStream.writeObject(exerciseEntry);
-                objectOutputStream.close();
-                fileOutputStream.close();
-
-                //Tell the mainActivity to refresh, to add the new program
-                setResult(1);
-                Toast.makeText(ProgramCreationActivity.this, "Programme enregistré !",
+
+            String program_name = String.valueOf(R.id.program_name);
+            if(program_name.equals("")){
+                Toast.makeText(ProgramCreationActivity.this, "Veuillez entrer un nom à votre programme !",
                         Toast.LENGTH_SHORT).show();
-            } catch (Exception e) {
-                e.printStackTrace();
+            }
+            else{
+                convertToProgramByDay();
+                boolean all_empty = true;
+                for (ArrayList<Exercise> valeurs : programByDay.values()) {
+                    if (!valeurs.isEmpty()) {
+                        all_empty = false;
+                        break;
+                    }
+                }
+                if(all_empty){
+                    Toast.makeText(ProgramCreationActivity.this, "Veuillez entrer au moins un exercice à votre programme !",
+                            Toast.LENGTH_SHORT).show();
+                }else{
+                    try {
+                        // recup le nom de programme comme nom de fichier -> nomdeprogramme.ser
+                        EditText programNameEditText = findViewById(R.id.program_name);
+                        String programName = programNameEditText.getText().toString();
+                        String programpath = programName + ".ser";
+
+                        // place le HashMap du programme dans nomdeprogramme.ser
+                        HashMap<String, ArrayList<Exercise>> entry = programByDay;
+                        ExerciseEntry exerciseEntry = new ExerciseEntry(entry);
+                        FileOutputStream fileOutputStream = openFileOutput(programpath, Context.MODE_PRIVATE);
+                        ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream);
+                        objectOutputStream.writeObject(exerciseEntry);
+                        objectOutputStream.close();
+                        fileOutputStream.close();
+
+                        //Tell the mainActivity to refresh, to add the new program
+                        setResult(1);
+                        Toast.makeText(ProgramCreationActivity.this, "Programme enregistré !",
+                                Toast.LENGTH_SHORT).show();
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                }
             }
         });
 
@@ -190,6 +210,7 @@ public class ProgramCreationActivity extends AppCompatActivity {
         Button add_exo_button = findViewById(R.id.add_exo_button);
         add_exo_button.setOnClickListener(v -> {
             current_days_checked.clear();
+            nbre_day = 0;
 
             // Récupérer la valeur du champ de texte AutoCompleteTextView
             String exercise_searched = input_exo.getText().toString();