Why is this posuk saying something which is not like the correct halachah?
(25,2) “Speak to the children of Yisrael, and they shall take for Me an offering; from every person whose heart inspires him to generosity, you shall take My offering.”
The Midrash says that when Yisrael said “we shall do and we shall hear”, declaring that they will immediately observe the Torah and only afterwards will they try to understand it, Hashem said to Moshe “they shall take for Me an offering”. This Midrash needs explaining.
It seems that Chazal are coming to resolve a problem with the order of the wording of our posuk which says “they shall take for Me an offering”, meaning that they should take an offering for the sake of Hashem. Because it should have said “they shall take an offering for Me” in the same way that it says in parshas Vayakhel (35,5) “take from yourselves an offering for Hashem”, or the wording of that posuk should have been the same as here so that they are the same in both places.
But we can understand these posukim with the teaching of R. Shimon bar Yochai in Nedarim 10b: From where do we know that one should not say "for Hashem an offering"? From the posuk “when man from among you brings an offering for Hashem”. The Rosh explains that the reason is because after he mentions Hashem’s name he might change his mind about bringing an offering, and thus he will have mentioned the name of Hashem in vain. But the Shelah explains that the reason is because he might die before he completes his declaration, and thus he will have mentioned Hashem’s name in vain. Therefore, he must first mention the offering before he mentions the name of Hashem.
And we can bring a proof to the explanation of the Shelah from our posuk which says “they shall take for Me an offering”, which implies that they should say "for Hashem an offering", something which they should not do according to the teaching of the gemora. But if the reason is like the explanation of the Shelah there is no problem, because we know from Chazal that at the time that Yisrael said “we shall do and we shall hear” Hashem said: Who revealed to My children this secret that the ministering angels use, as it says in “Bless Hashem, His angels, those mighty in strength who do his word, hearkening to the voice of His word” (Tehillim 103:20). And the Midrash teaches that for this reason Hashem told the Angel of Death at that time that he was to have no dominion over Yisrael, but rather they should exist forever like the ministering angels. Likewise, Chazal taught in Avodah Zorah 5a that if they had not sinned they would not have died.
Therefore, since at the time when they said “we shall do and we shall hear” the parsha of Terumah was taught, there was no problem if they mentioned Hashem’s name first and said "for Hashem an offering", because at that time there was no concern that they might die since they were like angels who live for ever. Therefore, it says in our parsha “they shall take for Me an offering”.
But parshas Vayakhel was taught after Moshe had descended from Mount Sinai and Yisrael had already sinned with the golden calf and Hashem had decreed “like men you will die” (Tehillim 82:7), and so it was no longer permissible to mention Hashem’s name first when declaring the bringing of an offering lest they die before they finish their declaration and thus mention Hashem’s name in vain. Therefore, Moshe changed the order and said “take from yourselves an offering for Hashem”, thus teaching them that they should mention the offering before mentioning Hashem’s name, so that the name of Hashem will remain sanctified amongst the children of Yisrael and He will be pleased to accept the offering of their mouths and the giving of their hands.
Thus, with the help of the Midrash the reason for the order of the words in these two places is now clear.