Utilisation variable pr appelé une feuille

Résolu/Fermé
Stef - 8 févr. 2006 à 18:41
choubaka Messages postés 39375 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 14 avril 2024 - 9 févr. 2006 à 13:19
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
A voir également:

4 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
8 févr. 2006 à 20:08
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.
0
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
0
choubaka Messages postés 39375 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 14 avril 2024 2 100
9 févr. 2006 à 11:32
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 ...

0
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
0
choubaka Messages postés 39375 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 14 avril 2024 2 100
9 févr. 2006 à 12:26
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



0
Salut,

Nickel ça fonctionne au poil.

MERCI
Stef
0
choubaka Messages postés 39375 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 14 avril 2024 2 100
9 févr. 2006 à 13:19
ben voilà ... ;-)
0