Tester l'existence d'un onglet dans un classeur

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #5165291
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


Jacques
Le #5165281
Merci !


"JB" 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


Tatanka
Le #5165261
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



MichDenis
Le #5165231
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" 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



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

Serge



"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







Publicité
Poster une réponse
Anonyme