Excel -VBA -Variable et feuille (le retour...

Fermé
dks31 Messages postés 14 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 21 août 2018 - 24 nov. 2003 à 23:48
 Urmarcht - 9 janv. 2004 à 10:27
Bonjour à tous,

Suite à un premier message, je n'ai pas eu la solution à mon probleme. Alors le revoici avec quelques precisions; vu que la premiere fois je n'avais pas ete tres explicite.

Voici mon problème: Je crée une feuille qui se nomme en fonction d'une
variable.
Là où j'ai du mal c'est que je n'arrive plus à selectionner cette feuille
dans mes autres macro. Je ne sais pas comment ecrire ma ligne de commande en
tenant compte de son nom (variable). J'ai essayé:

Sheets MaVariable.Select (marche pas) puis,
Sheets (MaVariable).Select (Idem) enfin,
Sheets ("MaVariable").Select (Grrrr......)

mais ça ne marche pas. Please, Help !

Pour que ça soit plus clair, voici mon code:

Public MaVariable As String

Private Sub CommandButton1_Click()

'On defini la valeur des differentes variables; ici ce qui a été entré
'dans les TexBox du UserForm2.

MaVariable = UserForm2.TextBox1

'On test si quelque chose a été saisi dans le 1er TextBox du Userform2.
If Classe_3°1 <> "" Then

'On crée une nouvelle feuille (Add) et on la selectionne
Sheets.Add.Select

'On renomme cette feuille avec la variable de la premiere TextBox.
ActiveSheet.Name = MaVariable

'On va copier le feuille "Model" et on la copie dans la nouvelle feuille.
Sheets("Model").Select
Cells.Select
ActiveSheet.Copy

'ET C'EST LA QUE JE N'ARRIVE PLUS A SELECTIONNER LA NOUVELLE FEUILLE
'AVEC SON NOM VARIABLE !

Sheets MaVariable.Select
Cells.Select
ActiveSheet.Paste


Merci de votre aide. :-)
A voir également:

5 réponses

G.David Messages postés 768 Date d'inscription vendredi 21 novembre 2003 Statut Membre Dernière intervention 1 juin 2020 203
1 déc. 2003 à 08:10
j'avais pose un problem sur excel-downloads il y a quelque temps (et ça fait un paquet de messages) je l'ai retrouvé je te copie tous les commentaires; en fin tu as la réponse que Ti m'a donnée si elle peut te servir.
Auteur: david (81.80.156.---)Date: 09-10-03 08:24Je voudrais renommer une feuille à l'ouverture d'un classeur .La feuille est une archive annuelle "Encour" sur la quelle pointe plusieurs macros. Au changement d'année la feuille doit se renommer 2003 et la Feuille 2004 doit prendre le nom "encour"Je dois tester l'existance de cette feuille . Si elle est differente du nom qu'elle doit porter la renommerla cellule du nom inexistant=texte(aujourdhui();"aaa") ---->2003la cellule du nom a attribué=texte(cnum(cell de desus)-1;"@") ---->2002ces valeurs texte si la première valeur est le nom d'une feuille on renome la feuille "encours" en "2002" puis la feuille nomme "2003" en "encours"a chaque changement d'année la feuille est archivé .Ceci concerne un carnet de BL .Merci a tous G.David

Répondre à ce message

Re: Renommer une feuille en VBA
Auteur: david (81.80.156.---)Date: 09-10-03 09:29Private Sub Workbook_Open()Dim nomfeuil() As StringDim nbfeuil As Integer' barre d'outil______________________________________Application.CommandBars("BL_Serveur").Visible = True'renommer les feuilles______________________________nbfeuil = ActiveWorkbook.Sheets.Count ' nb feuilles ds le classeurReDim nomfeuil(1 To nbfeuil) ' redimmensionner le tableaujuste 9 tasses de cafés plus tard voici ma ponte je vous teins au courant a partir de la reprise du nouvel an si cele marche. Désolé d'avoir pris de la placeA+For i = 1 To nbfeuilnomfeuil(i) = ActiveWorkbook.Sheets(i).Name 'tableau de nomNext iFor t = 1 To nbfeuil 'relire les nomsIf Sheet(2).Range("HJ1").Value = nomfeuil(t) Then 'si 2003 est trouvéFor f = 1 To nbfeuil 'on relit pour trouverIf nomfeuil(f) = "encour" Then 'la feuille "encour"nomfeuil(f) = Sheets(2).Range("hj2").Value 'on lui attribut la valeur "2002"End IfNext fSheets(t).Name = "encour" 'on renomme 2003 en "encour"End IfNext tEnd Sub

Répondre à ce message

Re: Renommer une feuille en VBA
Auteur: Ti (---.w80-12.abo.wanadoo.fr)Date: 09-10-03 09:43voici une macro qui te fait ça :Dans Thisworkbook, tu places cette macro :Private Sub Workbook_Open()RenommeFeuilleDateEnd Subet tu places celle-ci dans un module :Sub RenommeFeuilleDate()Dim LaDate As String, Ws As WorksheetDim WsAnnee As Worksheet, WsEnCours As WorksheetLaDate = CStr(Year(Date))With ThisWorkbookFor Each Ws In .WorksheetsIf Ws.Name = LaDate Then'on a changé d'annéeThisWorkbook.Worksheets("Encours").Name = _CStr(Val(LaDate) - 1)Ws.Name = "Encours"Exit ForEnd IfNext WsEnd WithEnd SubOn suppose que ta feuille 2004 existe déjà. Au changement d'année, ta feuille 2004 sera renommée automatiquement, et la feuille EnCours deviendra 2003. Et ainsi de suite en 2005, pour peu que la feuille 2005 existe déjà au nouveau changement d'année.

Répondre à ce message

Re: Renommer une feuille en VBA
Auteur: david (81.80.156.---)Date: 09-10-03 11:34Sympa
0
Chacalou13 Messages postés 402 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 16 juillet 2012 19
2 déc. 2003 à 22:25
Salut,

Si MaVariable est un string, Sheets(MaVariable).Select devrait suffire !
Sinon force le du style:
NewVariable="MaVariable" puis ensuite
Sheets(MaVariable).Select
Si ca marche pas, c'est que l'erreur ne vient peut-être pas de là

Grève de la signature
0
Salut,

Merci pour ta reponse, je vais regarder à ça rapidement en "forçant", puisque l'autre j'ai dejà essayé.

Et quand tu me dis que ça peut venir d'autre chose, tu ne vois pas d'erreur particulière pouvant expliquer ce probleme ?
0
Sub renseigne_mois()
Dim moisencours As Object
Dim convert As String

If Range("Mois_en_cours") = Empty Or Err <> 0 Then

MsgBox "Saisissez le mois de traitement !"
Else
Set moisencours = Range("Mois_en_cours")
convert = moisencours
    'Application.Run "test"
Workbooks.Open FileName:= _
        "lechemindemonfichieraouvrir.xls"
    Sheets(convert).Select
End If
End Sub

C'est moche certe, mais ça a le mérite de fonctionner...
Mois_en_cours est une cellule nomée dans mon tableau.
sheets(xxxx).Select attend une variable de type string et Range(xxxx) attens une variable de type Object. Donc j'ai pas trouvé d'autre solution que convert = moisencours...
En espérant que ça t'aide...
0
G.David Messages postés 768 Date d'inscription vendredi 21 novembre 2003 Statut Membre Dernière intervention 1 juin 2020 203
26 nov. 2003 à 17:09
essaye sur excel-download c'est une mine pour les problèmes par contre le site est un peu chargé en fréquentation
A+ G.David
-1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonsoir à tous,

Merci pour vos reponses.
C'est gentil comme conseil, G.David mais j'ai dejà cherché un peu partout; et je continue...
Si tu as une info un peu plus precise (une page du site par exemple) je suis preneur, sinon, ça ne m'avance pas des masses...
Merci quand meme.

J'attend avec impatience le ch'tit coup de main de filaliabdou !!!
J'espere que tu auras le tps ce WE. Je craque !!!
Merci pour ton message qui m'a permi de patienter un peu...
A bientot j'espere.
-1