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

Tester l'existence d'un onglet dans un classeur

5 réponses
Avatar
Jacques
Bonjour,

Je voudrais tester l'existence d'un onglet dans un classeur pour éviter de
donner le même nom (et faire échouer ainsi la macro) à une nouvelle feuille.

Comment faire?

Merci

5 réponses

Avatar
JB
Bonjour,

Function ExisteFeuille(f As String) As Boolean
Application.Volatile
On Error Resume Next
temp = Sheets(UCase(f)).[A1]
ExisteFeuille = (Err = 0)
End Function

Sub essai()
If Not ExisteFeuille("xxxx") Then
Sheets.Add
ActiveSheet.Name = "xxxx"
End If
End Sub

ou

Function ExisteFeuille2(f As String) As Boolean
i = 1
For i = 1 To Sheets.Count
If UCase(f) = UCase(Sheets(i).Name) Then
ExisteFeuille2 = True
End If
Next i
End Function

JB



On 16 fév, 16:23, "Jacques" <none> wrote:
Bonjour,

Je voudrais tester l'existence d'un onglet dans un classeur pour éviter de
donner le même nom (et faire échouer ainsi la macro) à une nouvelle feuille.

Comment faire?

Merci


Avatar
Jacques
Merci !


"JB" a écrit dans le message de groupe de
discussion :

Bonjour,

Function ExisteFeuille(f As String) As Boolean
Application.Volatile
On Error Resume Next
temp = Sheets(UCase(f)).[A1]
ExisteFeuille = (Err = 0)
End Function

Sub essai()
If Not ExisteFeuille("xxxx") Then
Sheets.Add
ActiveSheet.Name = "xxxx"
End If
End Sub

ou

Function ExisteFeuille2(f As String) As Boolean
i = 1
For i = 1 To Sheets.Count
If UCase(f) = UCase(Sheets(i).Name) Then
ExisteFeuille2 = True
End If
Next i
End Function

JB



On 16 fév, 16:23, "Jacques" <none> wrote:
Bonjour,

Je voudrais tester l'existence d'un onglet dans un classeur pour éviter de
donner le même nom (et faire échouer ainsi la macro) à une nouvelle
feuille.

Comment faire?

Merci


Avatar
Tatanka
Peut-être aussi :

Sub Nouveau_Nom()
Dim F As Worksheet
nom = "Iyotake"
For Each F In ActiveWorkbook.Worksheets
If F.Name = nom Then x = 1
Next F
If x = 1 Then
MsgBox "Nom déjà utilisé."
Else
Sheets.Add
ActiveSheet.Name = nom
End If
End Sub

Serge


"Jacques" <none> a écrit dans le message de news: uNAnZ$
Bonjour,

Je voudrais tester l'existence d'un onglet dans un classeur pour éviter de
donner le même nom (et faire échouer ainsi la macro) à une nouvelle feuille.

Comment faire?

Merci



Avatar
MichDenis
Dans le genre :

Sub Nouveau_Nom()
Dim F As Worksheet
On error resume next
set F = Worksheet("Iyotake")
if err<> 0 then
err= 0
Worksheets.add.name = "Iyotake"
else
Msgbox "Feuille déjà présente."
exit sub
end if
End sub




"Tatanka" a écrit dans le message de news:
uIbW%
Peut-être aussi :

Sub Nouveau_Nom()
Dim F As Worksheet
nom = "Iyotake"
For Each F In ActiveWorkbook.Worksheets
If F.Name = nom Then x = 1
Next F
If x = 1 Then
MsgBox "Nom déjà utilisé."
Else
Sheets.Add
ActiveSheet.Name = nom
End If
End Sub

Serge


"Jacques" <none> a écrit dans le message de news: uNAnZ$
Bonjour,

Je voudrais tester l'existence d'un onglet dans un classeur pour éviter de
donner le même nom (et faire échouer ainsi la macro) à une nouvelle feuille.

Comment faire?

Merci



Avatar
Tatanka
Il faudrait changer
If F.Name = nom Then x = 1
pour
If UCase(F.Name) = UCase(nom) Then x = 1

Serge



"Tatanka" a écrit dans le message de news: uIbW%
Peut-être aussi :

Sub Nouveau_Nom()
Dim F As Worksheet
nom = "Iyotake"
For Each F In ActiveWorkbook.Worksheets
If F.Name = nom Then x = 1
Next F
If x = 1 Then
MsgBox "Nom déjà utilisé."
Else
Sheets.Add
ActiveSheet.Name = nom
End If
End Sub

Serge


"Jacques" <none> a écrit dans le message de news: uNAnZ$
Bonjour,

Je voudrais tester l'existence d'un onglet dans un classeur pour éviter de
donner le même nom (et faire échouer ainsi la macro) à une nouvelle feuille.

Comment faire?

Merci