SetActive not working?

I want to make a weapon visible after a specific number of kills

In my Start class, I have :

   GameObject weapon_rocket = GameObject.Find("weapon_rocket");

   weapon_rocket.SetActive(false);

This makes the weapon invisible. But when I want to make it visible again, in my SwitchWeapon class it does not work for some reson.

public void SwitchWeapon ()
{

	GameObject Player = GameObject.Find("Player");
	
	game = (GameManager)GameObject.FindObjectOfType (typeof(GameManager));
	
	GameManager gameManager = Player.GetComponent<GameManager> ();

  if (game.Killed >= 1) {
		weapon_rocket.SetActive(true);
                    CurrentWeapon = 3;
	}

You declare a gameObject variable in any script, like the player inventory script or similar, and assign it the weapon gameobject. Then you can always access it without having to find it, regardless if it is active or not.