nom de feuille

biomed

XLDnaute Junior
Bonjour a toutes et a toutes
Pourriezvous m'expliquer comment nommer une cellule en fonction du nom de la feuille cree automatiquement
je m'explique:
Dans un classeur, j'ai un bouton qui me lance un userform pour creer une feuille en la nommant, j'aurais aime que dans une cellule, le nom de la feuille apparaisse lors de sa creation
Merci d'avance :)
 
H

Herve62

Guest
Salut

C'est tres simple :
Dans cet exemple j'ai crée un bouton

Private Sub CommandButton1_Click()
lig = 1
For i = 1 To Sheets.Count ' nombre de feuilles du classeur
celA = 'A' & lig
Range(celA).Value = Sheets(i).Name ' la cellule A1 au depart prend
' la valeur du nom de la feuille
lig = lig + 1
Next i
End Sub

c'est juste un exemple que tu dois adapter dans ton code, l'instruction
principale est 'sheets(i).name
J'ai mis la cellule en variable mais tu peux la mettre en dur si elle est fixe
Herve
 
B

biomed

Guest
bonjour a tous
je ne comprend pas ce qui ce passe car j'ai essaye les 2 codes proposes et cela ne fonctionne pas
pouvez-vous m'aider
je vous joint le code dans lequel je voudrais inclure cette fonction, peut etre que cela viens de la
merci d'avance
le code:

Sub NouvelleFeuille()

Dim Sh As Worksheet
Dim Reponse As String
Dim MonNom As String
Dim BonNom As Boolean
Dim LeString
LeString = ':\\/?*[]'

Do
BonNom = True
Reponse = InputBox('Quel nom désirez-vous donner au' _
+ vbCrLf + 'nouveau Générateur?', _
'DESIGATION DU DM ', MonNom)
If Reponse <> '' Then
'Vérifier que le nom n'existe pas déjà...
For a = 1 To ActiveWorkbook.Worksheets.Count
If UCase(Reponse) = UCase(Worksheets(a).Name) Then
supp = MsgBox( _
'Vous possédez une feuille portant déjà ce nom,' _
+ vbCrLf + vbCrLf + _
'Désirez-vous la remplacer?.', vbYesNo + vbOKOnly, _
'Nom existant déjà')
If supp = vbYes Then
Application.DisplayAlerts = False
Worksheets(Reponse).Delete
Application.DisplayAlerts = True
Exit For
Else
BonNom = False
MonNom = Reponse
Exit For
End If
End If
Next

'Vérifier que le nombre de caractères du nom ne dépassent 31...
If Len(Reponse) > 31 Then
MsgBox 'Le nombre de caractères (' & _
Len(Reponse) & ') de votre nom dépasse' _
+ vbCrLf + ' celui permis (31) par excel.', _
vbCritical + vbInformation, 'Nom trop long'
BonNom = False
MonNom = Reponse
End If

'Vérifier l'emploi de caractères interdits...dans le nom
For a = 1 To Len(LeString)
If InStr(1, Reponse, Mid(LeString, a, 1), vbTextCompare) > 0 Then
MsgBox 'Les caractères suivants: ' & _
LeString & ' sont interdits' _
+ vbCrLf + 'dans le nom d'une feuille.', _
vbCritical + vbOKOnly, 'Caractère interdit'
BonNom = False
MonNom = Reponse
Exit For
End If
Next
Else
Exit Sub
End If
Loop Until BonNom = True
Worksheets('Model1').Copy After:=Worksheets(Worksheets.Count)
Set Sh = ActiveSheet
Sh.Name = Reponse

End Sub
 
B

BIOMED

Guest
rebonjour
plus besoin de code car en cherchant bien sur le forum, j'ai trouvé cette formule: =STXT(CELLULE('nomfichier';A1);TROUVE(']';CELLULE('nomfichier';A1))+1;32)
et cela fonctionne a merveille
merci
 

Discussions similaires