The little program was just an example. You changed in way, that doesnt answer my question. The two variables in Button are both local defined. If possible, this shoudnt be changed. But if there is no such solution, I put the value of the local "zahl2" in the global "zahl3", then it works.
test[zahl_] := Module[
{zahl1, zahl2},
zahl1 = 5;
zahl2 = 10;
zahl3 = zahl2;
Print[Button[zahl1, CopyToClipboard[zahl2]]];
Print[Button[zahl1, CopyToClipboard[zahl3]]];
Return[zahl];
];