The Lifeline has been stranded for days in the Mediterranean without a port to dock at after picking up the migrants in distress off the Libyan coast last week.
Each country will take “a few dozen individuals,” said Macron at a press conference in Rome.
But the French president criticised the German NGO Mission Lifeline saying it had defied “all the rules” by coming to the migrants rescue when the Libyan coastguard was already intervening.
“We cannot permanently accept this situation,” he warned, adding “in the end we are playing into the hands of smugglers by reducing the risks of the journey.”
Macron said that Europe wanted to “strengthen its cooperation with the Libyan coastguards” to “limit the movements” of migrants.
“The ability to close this route is the most effective and also the most humane,” he said.
“Europe can take its share but it cannot take more than its share”, he added.
“These young people leave because they have no hope… We will be there to live up to our principles but without saying that anything is possible and that Europe is a new Eldorado,” Macron said.
The Maltese government has agreed to take in the Lifeline on condition that an agreement to distribute the migrants among EU member countries was reached.
Portugal, France and Italy are among the countries involved in the negotiations.