Renommer une feuille en VBA

  • Initiateur de la discussion Initiateur de la discussion david
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

david

Guest
Je 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 renommer
la cellule du nom inexistant=texte(aujourdhui();"aaa") ---->2003
la cellule du nom a attribué=texte(cnum(cell de desus)-1;"@") ---->2002
ces 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
 
Private Sub Workbook_Open()



Dim nomfeuil() As String
Dim nbfeuil As Integer
' barre d'outil______________________________________
Application.CommandBars("BL_Serveur").Visible = True
'renommer les feuilles______________________________
nbfeuil = ActiveWorkbook.Sheets.Count ' nb feuilles ds le classeur
ReDim nomfeuil(1 To nbfeuil) ' redimmensionner le tableau
juste 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 place
A+

For i = 1 To nbfeuil
nomfeuil(i) = ActiveWorkbook.Sheets(i).Name 'tableau de nom
Next i

For t = 1 To nbfeuil 'relire les noms
If Sheet(2).Range("HJ1").Value = nomfeuil(t) Then 'si 2003 est trouvé
For f = 1 To nbfeuil 'on relit pour trouver
If nomfeuil(f) = "encour" Then 'la feuille "encour"
nomfeuil(f) = Sheets(2).Range("hj2").Value 'on lui attribut la valeur "2002"
End If
Next f
Sheets(t).Name = "encour" 'on renomme 2003 en "encour"
End If
Next t

End Sub
 
voici une macro qui te fait ça :

Dans Thisworkbook, tu places cette macro :

Private Sub Workbook_Open()
RenommeFeuilleDate
End Sub

et tu places celle-ci dans un module :

Sub RenommeFeuilleDate()
Dim LaDate As String, Ws As Worksheet
Dim WsAnnee As Worksheet, WsEnCours As Worksheet
LaDate = CStr(Year(Date))
With ThisWorkbook
For Each Ws In .Worksheets
If Ws.Name = LaDate Then
'on a changé d'année
ThisWorkbook.Worksheets("Encours").Name = _
CStr(Val(LaDate) - 1)
Ws.Name = "Encours"
Exit For
End If
Next Ws
End With
End Sub

On 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.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

T
Réponses
2
Affichages
3 K
tao.tix
T
Retour