Utilisation variable pr appelé une feuille

Résolu
Saltu à tous,

Je bloque sur un truc dans ma mcaro, merci d'avance pour votre coup de main :

Après création d'une nouvelle feuille, un TextBox utilisateur récupère le nom que le user a saisit.
Ex : R00001

Comme ceci :
Sheets("Sheet1").Name = txtValeur.Value

Ensuite, je récupère TxtValeur dans une variable :
NoFEUIL = txtValeur.Value

Plus bas dans mon code, je dois sélectionner la feuille mais en utilisant la variable et pas le nom de la feuille:
Sheets(NoFEUIL).Select

Impossible de trouver le moyen de faire marcher cette commande, si qqun a une idée --> MERCI C COOL !!

Stef

4 réponses

  1. Modérateur
    Salut,

    Tu es sur que t'as feuille s'appelle "Sheet1"?

    Si tu as excel en français je crois que c'est plutôt
    Sheets("Feuil1").Name = txtValeur.Value
    et avec ça tout va bien.
    1. Salut,
      Merci pour la réponse mais mon problème n'est tjr pas résolu.

      J'utilise Excel en anglais, c'est pourquoi le nom de ma feuille est "Sheet1".

      J'ai déjà renommer ma feuille avec le nom que l'utilisateur à saisi dans le texBox, donc pour la commande :
      Sheets("Sheet1").Name = txtValeur.Value
      (txtValeur est égale à R00001)

      Je met ensuite la R00001 dans une variable
      nomFEUIL = txtValeur.Value

      Pas de souci ça fonctionne.
      Donc le nom de ma feuille est égale à R00001 pas de souci.

      Mais plus bas dans ma macro, je veux selectionner la dite feuille
      en utilisant la variable nomFEUIL et pas directement la valeur "R00001" et c'est ça qui ne fonctionne pas.

      J'ai essayé ceci :
      Sheets(NomFEUIL).Select
      Sheets("Cstr(NomFEUIL)).Select


      Mais ça plante!!

      Merci d'avance à tous ceux qui aurainet une idée fumante :)

      Stef
      1. Modérateur
        salut

        j'ai plus ou moins la même macro que toi ...

        La "fameuse variable", je l'ai déclaré en début du module

        Dim CurrentMonth As String
        
        
        Sub DoUpDate()
        '
        
        
        
        
            .......
        
        
            
            CurrentMonth = "Jan"
            Call UpDatesheet


        ici j'ai mis volontairement "jan" en clair pour l'exemple ... Plus bas, il y a la fonction qui va utiliser la variable

        private sub UpDateSheet
        
        .......
        
        Sheets("Sheet1").Name = CurrentMonth
        Sheets(CurrentMonth).Select
            Range("A2").Select
            ActiveSheet.Paste
        
        ......
        End sub


        mais je pense qu'il est important de donner la valeur à ta variable avant de faire quoi que ce soit ...

        1. Salut Choubaka,

          Merci pour ta réponse ça m'apermit de comprendre le problème mais pas encore de le résoudre.

          En faite le mode d'utilisation des variable pour nommer et appeler les feuilles fonctionne bien. Merci encore c'est nickel!

          Un autre problème est soulevé :
          Ma varable NomFEUIL est définie par l'utilisateur dans un formulaire (Forms) et quand le formulaire est fermé, c'est le module2 de la macro qui continue.

          Comment passer la valeur de la variable NomFEUIL entre les ces deux modules ??
          Car j'ai vu que dans le module2 de ma macro, NomFEUIL est vide...

          Merci si tu as une idée
          Stef
        2. Modérateur
          rien ne t'empêche de créer une fonction publique dans tes modules prenant en argument la variable ... Cette fonction pourra être appelée par ton formulaire et pourrait par exemple mettre à jour la variable contenue dans le module...

          Public Sub UpdateNomFeuilleMod1( $nomFeuille As String)

          CurrentMonth = $nomFeuille

          End sub

        3. Salut,

          Nickel ça fonctionne au poil.

          MERCI
          Stef