Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Renommer onglet

14 réponses
Avatar
JRC-QSA
Bonjour à toutes/tous.
Dans une macro, je crée une nouvelle feuille.
Y'a-t-il une boite de dialogue genre "rename thumbnail" à appeler dans cette
macro pour obliger l'utilisateur à donner un nom immédiatement à cette
feuille nouvelle et quelle en est la syntaxe ?
Merci d'avance.
JRC

4 réponses

1 2
Avatar
JRC-QSA
Euh, un problème rémanent.
En applicant le code ci-dessous, la message box ne marche pas si on entre un
nom de feuille déjà existant et je ne comprends pas pourquoi.

Salutations

JRC.



"garnote" a écrit :

Tentative pour rendre la chose plus souple.
Mais je me méfie, michdenis est dans les parages ;-)

Sub Essai()
Sheets.Add
10:
nom = Application.InputBox(Prompt:="Écrire le nouveau nom", _
Title:="Nommer une feuille", Type:=2)
If nom = False Or nom = "" Then Exit Sub
For Each F In ThisWorkbook.Worksheets
If F.Name = nom Then
rep = MsgBox("Le nom " & nom & " existe déjà. Voulez-vous entrer un autre nom ?", vbYesNo)
If rep = vbYes Then
GoTo 10
Else
Exit Sub
End If
End If
Next F
ActiveSheet.Name = nom
End Sub

Serge



"garnote" a écrit dans le message de news:
> Bonsoir,
>
> Ceci te convient-il ?
>
> Sub Essai()
> Sheets.Add
> ActiveSheet.Name = Application.InputBox(Prompt:="Écrire le nouveau nom", _
> Title:="Nommer une feuille", Type:=2)
> End Sub
>
>
> Serge
>
>
> "JRC-QSA" a écrit dans le message de news:
>
>> Bonjour à toutes/tous.
>> Dans une macro, je crée une nouvelle feuille.
>> Y'a-t-il une boite de dialogue genre "rename thumbnail" à appeler dans cette
>> macro pour obliger l'utilisateur à donner un nom immédiatement à cette
>> feuille nouvelle et quelle en est la syntaxe ?
>> Merci d'avance.
>> JRC
>
>





Avatar
JRC-QSA
Désolé, mon message était mal situé dans la chronologie
..................................................................................
Euh, un problème rémanent.
En applicant le code ci-dessous, la message box ne marche pas si on entre un
nom de feuille déjà existant et je ne comprends pas pourquoi.

Salutations

JRC.


"LSteph" a écrit :

.... inputbox
>>> ... et quelle en est la syntaxe ?

Elle est comme presque toujours fort bien expliquée dans l'aide
on ne va donc pas remettre en moins bien que dans le texte.

LSteph a écrit :
> Bonjour,
>
> Au début de ta macro une variable pour stocker le nom
> un inputbox peut faire l'affaire
> tant qu'il n'a pas donné un nom valide tu ne crée pas la feuille.
>
> @+
>
> --
> lSteph
>
>
> JRC-QSA a écrit :
>> Bonjour à toutes/tous.
>> Dans une macro, je crée une nouvelle feuille.
>> Y'a-t-il une boite de dialogue genre "rename thumbnail" à appeler dans
>> cette macro pour obliger l'utilisateur à donner un nom immédiatement à
>> cette feuille nouvelle et quelle en est la syntaxe ?
>> Merci d'avance.
>> JRC



Avatar
lSteph
Bonjour,
Dans un classeur une seule feuille doit avoir son propre nom!

Option Explicit


Function shN_Existe(shN As String) As Boolean
On Error GoTo Err_NameSh
shN_Existe = False
shN_Existe = Not ActiveWorkbook.Worksheets(shN) Is Nothing
Exit Sub
Err_NameSh:
MsgBox "le nom existe déjà"
End Function
Function ShN_Bad(shN) As Boolean
Dim i As Long
For i = 1 To Len(shN)
Select Case Mid(shN, i, 1)
Case "[", "]", ":", "", "/", "*", "?"
ShN_Bad = True
MsgBox "Chr " & Mid(shN, i, 1) & " non autorisé"
Exit Function
End Select
Next
End Function

Sub CreatSh()
Dim myN As String, tstgood As Boolean
tstgood = False
Do
tstgood = True
myN = Left(InputBox("Entrez un nom pour la feuille, 30 chr seront
pris: "), 30)
If shN_Existe(myN) Or ShN_Bad(myN) Then tstgood = False
Loop While Not tstgood
With Sheets
.Add after:=.Item(.Count)
End With
ActiveSheet.Name = myN
End Sub

'lSteph

On 17 oct, 10:13, JRC-QSA wrote:
Désolé, mon message était mal situé dans la chronologie.
......................................................................... ..........
Euh, un problème rémanent.
En applicant le code ci-dessous, la message box ne marche pas si on entre un
nom de feuille déjà existant et je ne comprends pas pourquoi.

Salutations

JRC.

"LSteph" a écrit :

> .... inputbox
> >>> ... et quelle en est la syntaxe ?

> Elle est comme presque toujours fort bien expliquée dans l'aide
> on ne va donc pas remettre en moins bien que dans le texte.

> LSteph a écrit :
> > Bonjour,

> > Au début de ta macro une variable pour stocker le nom
> > un inputbox peut faire l'affaire
> > tant qu'il n'a pas donné un nom valide tu ne crée pas la feuille.

> > @+

> > --
> > lSteph

> > JRC-QSA a écrit :
> >> Bonjour à toutes/tous.
> >> Dans une macro, je crée une nouvelle feuille.
> >> Y'a-t-il une boite de dialogue genre "rename thumbnail" à appeler dans
> >> cette macro pour obliger l'utilisateur à donner un nom immédiate ment à
> >> cette feuille nouvelle et quelle en est la syntaxe ?
> >> Merci d'avance.
> >> JRC


Avatar
lSteph
..oupsss il y avait une erreur

Option Explicit

Function shN_Existe(shN As String) As Boolean
Dim i As Integer
On Error GoTo Err_NameSh
shN_Existe = False
For i = 1 To Sheets.Count
shN_Existe = (UCase(Sheets(i).Name) = UCase(shN))
If shN_Existe Then MsgBox "le nom existe déjà": Exit For
Next
Exit Function
Err_NameSh:
shN_Existe = False
End Function
Function ShN_Bad(shN) As Boolean
Dim i As Long
For i = 1 To Len(shN)
Select Case Mid(shN, i, 1)
Case "[", "]", ":", "", "/", "*", "?"
ShN_Bad = True
MsgBox "Chr " & Mid(shN, i, 1) & " non autorisé"
Exit Function
End Select
Next
End Function

Sub CreatSh()
Dim myN As String, tstgood As Boolean
tstgood = False
Do
tstgood = True
myN = Left(InputBox("Entrez un nom pour la feuille, 30 chr seront
pris: "), 30)
If shN_Existe(myN) Or ShN_Bad(myN) Then tstgood = False
Loop While Not tstgood
With Sheets
.Add after:=.Item(.Count)
End With
ActiveSheet.Name = myN
End Sub


On 17 oct, 12:42, lSteph wrote:
Bonjour,
Dans un classeur une seule feuille doit avoir  son propre  nom!

Option Explicit

Function shN_Existe(shN As String) As Boolean
    On Error GoTo Err_NameSh
     shN_Existe = False
     shN_Existe = Not ActiveWorkbook.Worksheets(shN) Is Nothing
     Exit Sub
Err_NameSh:
MsgBox "le nom existe déjà"
End Function
Function ShN_Bad(shN) As Boolean
Dim i As Long
For i = 1 To Len(shN)
Select Case Mid(shN, i, 1)
Case "[", "]", ":", "", "/", "*", "?"
ShN_Bad = True
MsgBox "Chr " & Mid(shN, i, 1) & " non autorisé"
Exit Function
End Select
Next
End Function

Sub CreatSh()
Dim myN As String, tstgood As Boolean
tstgood = False
Do
tstgood = True
myN = Left(InputBox("Entrez un nom pour la feuille, 30 chr seront
pris: "), 30)
If shN_Existe(myN) Or ShN_Bad(myN) Then tstgood = False
Loop While Not tstgood
With Sheets
.Add after:=.Item(.Count)
End With
ActiveSheet.Name = myN
End Sub

'lSteph

On 17 oct, 10:13, JRC-QSA wrote:

> Désolé, mon message était mal situé dans la chronologie.
> ....................................................................... ............
> Euh, un problème rémanent.
> En applicant le code ci-dessous, la message box ne marche pas si on ent re un
> nom de feuille déjà existant et je ne comprends pas pourquoi.

> Salutations

> JRC.

> "LSteph" a écrit :

> > .... inputbox
> > >>> ... et quelle en est la syntaxe ?

> > Elle est comme presque toujours fort bien expliquée dans l'aide
> > on ne va donc pas remettre en moins bien que dans le texte.

> > LSteph a écrit :
> > > Bonjour,

> > > Au début de ta macro une variable pour stocker le nom
> > > un inputbox peut faire l'affaire
> > > tant qu'il n'a pas donné un nom valide tu ne crée pas la feuill e.

> > > @+

> > > --
> > > lSteph

> > > JRC-QSA a écrit :
> > >> Bonjour à toutes/tous.
> > >> Dans une macro, je crée une nouvelle feuille.
> > >> Y'a-t-il une boite de dialogue genre "rename thumbnail" à appele r dans
> > >> cette macro pour obliger l'utilisateur à donner un nom immédia tement à
> > >> cette feuille nouvelle et quelle en est la syntaxe ?
> > >> Merci d'avance.
> > >> JRC


1 2