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

VBA, nommer nouvelle page et message si déjà existant

5 réponses
Avatar
Le G
Salut à tous !

Dans VBA, j'utilise une feuille souche que je copie et renomme en fonction
du champ "Fle" d'un UserForm. Comment détecter si ce nom de feuille existe
déjà, arrêter ma macro et générer un messgage d'avertissement ?

Pour le moment, je n'ai que :

Fle = ActiveSheet.Name

et si le nom existe déjà, ma macro "plante" !

Merci d'avance

5 réponses

Avatar
Daniel.C
Bonjour.
2 façons de faire :

On Error Resume Next
Sheet(fle).Select
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Name = fle
End If
On Error GoTo 0
ou :

Existe = False
For Each sh In Sheets
If sh.Name = fle Then
Existe = True
Exit For
End If
net sh
If Existe = False Then ActiveSheet.Name = fle

Daniel


Salut à tous !

Dans VBA, j'utilise une feuille souche que je copie et renomme en fonction
du champ "Fle" d'un UserForm. Comment détecter si ce nom de feuille existe
déjà, arrêter ma macro et générer un messgage d'avertissement ?

Pour le moment, je n'ai que :

Fle = ActiveSheet.Name

et si le nom existe déjà, ma macro "plante" !

Merci d'avance


Avatar
Le G
Hello !

Merci pour ta réponse !

J'ai remarqué que mon poste n'était pas exact (actuel = ActiveSheet.Name =
Fle),
mais j'ai quand même tenté ca :

*******************************************************
'Msg en cas de page déjà existante
ActiveSheet.Name = Fle
On Error Resume Next
If Err.Number <> 0 Then
Err.Clear
MsgBox "La semaine " & ("I1") & " de l'année " & ("K1") & "existe
déjà ! veuillez corriger votre saisie.", vbExclamation, "Message Erreur"
End If
On Error GoTo 0
*******************************************************
Seulement, à la ligne "ActiveSheet.Name = Fle", ca vient en erreur... Et
c'est à ce moment là que j'aimerais générer le MsgBox et annuler l'erreur.

"Daniel.C" a écrit :

Bonjour.
2 façons de faire :

On Error Resume Next
Sheet(fle).Select
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Name = fle
End If
On Error GoTo 0
ou :

Existe = False
For Each sh In Sheets
If sh.Name = fle Then
Existe = True
Exit For
End If
net sh
If Existe = False Then ActiveSheet.Name = fle

Daniel


> Salut à tous !
>
> Dans VBA, j'utilise une feuille souche que je copie et renomme en fonction
> du champ "Fle" d'un UserForm. Comment détecter si ce nom de feuille existe
> déjà, arrêter ma macro et générer un messgage d'avertissement ?
>
> Pour le moment, je n'ai que :
>
> Fle = ActiveSheet.Name
>
> et si le nom existe déjà, ma macro "plante" !
>
> Merci d'avance





Avatar
Daniel.C
Pas vu mon erreur ?
Modifie :

On Error Resume Next
ActiveSheet.Name = Fle
If Err.Number <> 0 Then
Err.Clear
MsgBox "La semaine " & ("I1") & " de l'année " & ("K1") &
"existe
déjà ! veuillez corriger votre saisie.", vbExclamation, "Message
Erreur"
End If
On Error GoTo 0

Daniel


Hello !

Merci pour ta réponse !

J'ai remarqué que mon poste n'était pas exact (actuel = ActiveSheet.Name =
Fle),
mais j'ai quand même tenté ca :

*******************************************************
'Msg en cas de page déjà existante
ActiveSheet.Name = Fle
On Error Resume Next
If Err.Number <> 0 Then
Err.Clear
MsgBox "La semaine " & ("I1") & " de l'année " & ("K1") & "existe
déjà ! veuillez corriger votre saisie.", vbExclamation, "Message Erreur"
End If
On Error GoTo 0
*******************************************************
Seulement, à la ligne "ActiveSheet.Name = Fle", ca vient en erreur... Et
c'est à ce moment là que j'aimerais générer le MsgBox et annuler l'erreur.

"Daniel.C" a écrit :

Bonjour.
2 façons de faire :

On Error Resume Next
Sheet(fle).Select
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Name = fle
End If
On Error GoTo 0
ou :

Existe = False
For Each sh In Sheets
If sh.Name = fle Then
Existe = True
Exit For
End If
net sh
If Existe = False Then ActiveSheet.Name = fle

Daniel


Salut à tous !

Dans VBA, j'utilise une feuille souche que je copie et renomme en fonction
du champ "Fle" d'un UserForm. Comment détecter si ce nom de feuille existe
déjà, arrêter ma macro et générer un messgage d'avertissement ?

Pour le moment, je n'ai que :

Fle = ActiveSheet.Name

et si le nom existe déjà, ma macro "plante" !

Merci d'avance









Avatar
Le G
Après avoir cherché un peu, ca donne ca :

************************************************************
'Msg en cas de page déjà existante
On Error Resume Next
Sheets("Souche (2)").Select
If Err.Number <> 0 Then
Err.Clear
ActiveSheet.Name = Fle
End If
On Error GoTo MSG

MSG:
MsgBox "La semaine " & (TB_Semaine) & " de l'année " & (TB_Année) & "
existe déjà ! Veuillez recommencer votre saisie.", vbExclamation, "Message
Erreur"
*********************************************************

Seulement, la feuille ne se renome plus, et le MsgBox apparaît à chaque fois !

Help..... ;o)

"Le G" a écrit :

Hello !

Merci pour ta réponse !

J'ai remarqué que mon poste n'était pas exact (actuel = ActiveSheet.Name =
Fle),
mais j'ai quand même tenté ca :

*******************************************************
'Msg en cas de page déjà existante
ActiveSheet.Name = Fle
On Error Resume Next
If Err.Number <> 0 Then
Err.Clear
MsgBox "La semaine " & ("I1") & " de l'année " & ("K1") & "existe
déjà ! veuillez corriger votre saisie.", vbExclamation, "Message Erreur"
End If
On Error GoTo 0
*******************************************************
Seulement, à la ligne "ActiveSheet.Name = Fle", ca vient en erreur... Et
c'est à ce moment là que j'aimerais générer le MsgBox et annuler l'erreur.

"Daniel.C" a écrit :

> Bonjour.
> 2 façons de faire :
>
> On Error Resume Next
> Sheet(fle).Select
> If Err.Number <> 0 Then
> Err.Clear
> ActiveSheet.Name = fle
> End If
> On Error GoTo 0
> ou :
>
> Existe = False
> For Each sh In Sheets
> If sh.Name = fle Then
> Existe = True
> Exit For
> End If
> net sh
> If Existe = False Then ActiveSheet.Name = fle
>
> Daniel
>
>
> > Salut à tous !
> >
> > Dans VBA, j'utilise une feuille souche que je copie et renomme en fonction
> > du champ "Fle" d'un UserForm. Comment détecter si ce nom de feuille existe
> > déjà, arrêter ma macro et générer un messgage d'avertissement ?
> >
> > Pour le moment, je n'ai que :
> >
> > Fle = ActiveSheet.Name
> >
> > et si le nom existe déjà, ma macro "plante" !
> >
> > Merci d'avance
>
>
>


Avatar
Le G
Oups, oublie mon dernier poste, ils s'est croisé avec le tiens !

Effectivement, ca marche super comme ca !
Et effectivement, ca fais moins mal aux yeux... Merci beaucoup...

"Daniel.C" a écrit :

Pas vu mon erreur ?
Modifie :

On Error Resume Next
ActiveSheet.Name = Fle
If Err.Number <> 0 Then
Err.Clear
MsgBox "La semaine " & ("I1") & " de l'année " & ("K1") &
"existe
déjà ! veuillez corriger votre saisie.", vbExclamation, "Message
Erreur"
End If
On Error GoTo 0

Daniel


> Hello !
>
> Merci pour ta réponse !
>
> J'ai remarqué que mon poste n'était pas exact (actuel = ActiveSheet.Name =
> Fle),
> mais j'ai quand même tenté ca :
>
> *******************************************************
> 'Msg en cas de page déjà existante
> ActiveSheet.Name = Fle
> On Error Resume Next
> If Err.Number <> 0 Then
> Err.Clear
> MsgBox "La semaine " & ("I1") & " de l'année " & ("K1") & "existe
> déjà ! veuillez corriger votre saisie.", vbExclamation, "Message Erreur"
> End If
> On Error GoTo 0
> *******************************************************
> Seulement, à la ligne "ActiveSheet.Name = Fle", ca vient en erreur... Et
> c'est à ce moment là que j'aimerais générer le MsgBox et annuler l'erreur.
>
> "Daniel.C" a écrit :
>
>> Bonjour.
>> 2 façons de faire :
>>
>> On Error Resume Next
>> Sheet(fle).Select
>> If Err.Number <> 0 Then
>> Err.Clear
>> ActiveSheet.Name = fle
>> End If
>> On Error GoTo 0
>> ou :
>>
>> Existe = False
>> For Each sh In Sheets
>> If sh.Name = fle Then
>> Existe = True
>> Exit For
>> End If
>> net sh
>> If Existe = False Then ActiveSheet.Name = fle
>>
>> Daniel
>>
>>
>>> Salut à tous !
>>>
>>> Dans VBA, j'utilise une feuille souche que je copie et renomme en fonction
>>> du champ "Fle" d'un UserForm. Comment détecter si ce nom de feuille existe
>>> déjà, arrêter ma macro et générer un messgage d'avertissement ?
>>>
>>> Pour le moment, je n'ai que :
>>>
>>> Fle = ActiveSheet.Name
>>>
>>> et si le nom existe déjà, ma macro "plante" !
>>>
>>> Merci d'avance
>>
>>
>>