cs_marly
Messages postés4Date d'inscriptionmercredi 15 novembre 2000StatutMembreDernière intervention28 février 2008
-
28 févr. 2008 à 02:08
yvan777
Messages postés4Date d'inscriptiondimanche 3 février 2008StatutMembreDernière intervention29 février 2008
-
29 févr. 2008 à 10:08
Bonjour,
je souhaiterais faire une fonction qui récupère en entrée le nom d'un onglet existant et qui renomme cet onglet avec un nouveau nom (également passé en paramètres). Voici le code de ma fonction :
Function ChangerNom(AncienNom As String, NouveauNom As String) As String
Sheets(AncienNom).Name = NouveauNom
ChangerNom = NouveauNom
End Function
Je ne comprends pas pourquoi ca ne marche pas, pouvez vous m'aider?
Merci.
cs_marly
Messages postés4Date d'inscriptionmercredi 15 novembre 2000StatutMembreDernière intervention28 février 2008 28 févr. 2008 à 15:21
Oui ca marche comme ca effectivement mais j'aimerais lancer le renommage d'onglet en passant directement les paramètres (AncienNom et NouveauNom) à la macro (Est ce possible???) ou a la fonction que je lancerais depuis nimportequelle cellule.
Car comme c'est codé plus haut, cela oblige a coder en dur soit les noms d'onglet a renommer, soit l'emplacement des 2 cellules dans lesquelles on va inscrire les 2 noms.
yvan777
Messages postés4Date d'inscriptiondimanche 3 février 2008StatutMembreDernière intervention29 février 2008 29 févr. 2008 à 10:08
Salut,
Au niveau de ta feuille faire un Worksheet_Change tel que :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim AncienNom As String
Dim NouveauNom As String
AncienNom = Range("$B$2").Value
If Target.Address = "$C$2" Then
NouveauNom = Target.Value
Sheets(AncienNom).Name = NouveauNom
End If
End Sub
Dans un module creer la fonction NomFeuille
Function NomFeuille()
Application.Volatile
NomFeuille = Application.Caller.Parent.Name
End Function
Dans mon exemple la cellule B2 comporte la formule suivante =NomFeuille()
Dans la cellule C2 tu entres ton nouveau nom et voila.